Hướng dẫn python compare 2 csv files - python so sánh 2 tệp csv

import pandas as pd
import sys
import csv

def dataframe_difference(df1: pd.DataFrame, df2: pd.DataFrame, csvfile, which=None):
    """Find rows which are different between two DataFrames."""
    comparison_df = df1.merge(
        df2,
        indicator=True,
        how='outer'
    )
    if which is None:
        diff_df = comparison_df[comparison_df['_merge'] != 'both']
    else:
        diff_df = comparison_df[comparison_df['_merge'] == which]
    diff_df.to_csv(csvfile)
    return diff_df


if __name__ == '__main__':
    df1 = pd.read_csv(sys.argv[1], sep=',')    
    df2 = pd.read_csv(sys.argv[2], sep=',')

    df1.sort_values(sys.argv[3])
    df2.sort_values(sys.argv[3])
    #df1.drop(df1.columns[list(map(int, sys.argv[4].split()))], axis = 1, inplace = True)
    #df2.drop(df2.columns[list(map(int, sys.argv[4].split()))], axis = 1, inplace = True)

    print(dataframe_difference(df1, df2, sys.argv[5]))

Để sử dụng chạy::

python3 script.py file1.csv file2.csv some_common_header_to_sort_each_file output_file.csv

Trong trường hợp bạn muốn bỏ bất kỳ cột nào từ sự so sánh, phần chưa về df.drop và chạy

python3 script.py file1.csv file2.csv some_common_header_to_sort_each_file "x y z..." output_file.csv

Trong đó x,y,z là các số cột để thả, chỉ mục bắt đầu từ 0.

Pandas là thư viện Python tốt nhất để tạo và điều khiển DataFrame. Bạn có thể đọc các tệp CSV, thao tác chúng và cũng xuất tệp CSV cuối cùng sau khi thao tác. Giả sử bạn có hai tệp CSV và muốn so sánh cả hai tệp. Bạn sẽ làm như thế nào? Trong toàn bộ hướng dẫn này, bạn sẽ tìm hiểu cách so sánh hai tệp CSV trong Python bằng cách sử dụng các phương pháp khác nhau.how to compare two CSV files in python using pandas using various methods.

Trong phần này, bạn sẽ biết tất cả các bước cần thiết để so sánh hai tệp CSV trong Python bằng Pandas. Chỉ cần làm theo tất cả các bước để hiểu rõ hơn.

Bước 1: Tạo tệp CSVS mẫu

Bước đầu tiên là tạo các tệp CSV mẫu cho phương thức. Đầu tiên tôi sẽ tạo hai khung dữ liệu mẫu và sau đó xuất mỗi DataFrame sang tệp CSV. Nó sẽ sử dụng để đọc tệp CSV và so sánh chúng.

Thực hiện các dòng mã bên dưới để tạo hai tệp CSVS mẫu.

import pandas as pd
data1 = {"country":["India","USA","UK","Germany"],"dial_code":[91,1,44,49]}
df1 = pd.DataFrame(data1)
df1.to_csv("data1.csv",index=None)
data2 = {"country":["India","USA","UK","Germany","Australia","China"],"dial_code":[91,1,44,49,61,86]}
df2 = pd.DataFrame(data2)
df2.to_csv("data2.csv",index=None)
print(df1,"\n")
print(df2)

Đầu ra

Hướng dẫn python compare 2 csv files - python so sánh 2 tệp csv
SPREAMFRAME CREATION để so sánh giữa chúng

Bước 2: Đọc & NBSP; Các tập tin CSV

Bước thứ hai là đọc các tệp CSV đã tạo. Bạn có thể đọc tệp CSV bằng phương thức pandas read_csv (). Chỉ cần chuyển tên tệp của tệp CSV. Nó sẽ chuyển đổi dữ liệu tệp CSV thành DataFrame để thao tác.

Chạy các dòng mã bên dưới để đọc các tệp CSV của bạn.

import pandas as pd
df1 = pd.read_csv("data1.csv")
df2 = pd.read_csv("data2.csv")
print(df1,"\n")
print(df2,"\n")

Đầu ra

  country  dial_code
0    India         91
1      USA          1
2       UK         44
3  Germany         49 

     country  dial_code
0      India         91
1        USA          1
2         UK         44
3    Germany         49
4  Australia         61
5      China         86 

Bước 3: Thực hiện phương pháp để so sánh hai tệp CSV trong Python bằng Pandas

Bây giờ các tệp CSV đã được đọc. Hãy để so sánh cả hai tệp. Bạn sẽ tìm hiểu các phương pháp khác nhau để so sánh với các tệp CSV trong Python.

Phương pháp 1: Sử dụng phương thức isin ()

Gói Pandas có hàm isin () cho phép bạn kiểm tra xem có bản ghi trong cả hai tệp CSV hay không. Nếu nó tìm thấy sau đó trả về true khác trả về sai. Sau đó, chúng ta có thể nhận được các giá trị bằng cách sử dụng DF [Hồi Boolean_result,]. df[“boolean_result”].

Thực hiện các dòng mã bên dưới để so sánh hai tệp CSV.

# method 1 isin() metthod
import pandas as pd
df1 = pd.read_csv("data1.csv")
df2 = pd.read_csv("data2.csv")
c_result = df1[df1.apply(tuple,1).isin(df2.apply(tuple,1))]
print(c_result)

Đầu ra

Hướng dẫn python compare 2 csv files - python so sánh 2 tệp csv
So sánh hai tệp CSV bằng phương thức isin ()

Ở đây tôi cũng đang sử dụng phương thức application () để so sánh từng bản ghi hàng với mỗi tệp CSV.

Phương pháp 2: So sánh các tệp CSV bằng phương thức Merge ()

Pandas cũng có một hàm hợp nhất () hữu ích trong việc so sánh hai tệp CSV. Nó thực hiện tham gia bên trong, tham gia bên ngoài hoặc cả hai tham gia trên các cột. Bạn chỉ cần vượt qua các khung dữ liệu bạn muốn so sánh dưới dạng danh sách bên trong phương thức hợp nhất (). Hàm sẽ so sánh và trả về DataFrame.

Chạy các dòng mã bên dưới để so sánh các tệp CSV.

# method 2 merge() method
import pandas as pd
df1 = pd.read_csv("data1.csv")
df2 = pd.read_csv("data2.csv")
c_result_m = pd.merge(df1,df2)
print(c_result_m)

Đầu ra

Hướng dẫn python compare 2 csv files - python so sánh 2 tệp csv
So sánh hai tệp CSV bằng phương thức isin ()

Ở đây tôi cũng đang sử dụng phương thức application () để so sánh từng bản ghi hàng với mỗi tệp CSV.

Phương pháp 2: So sánh các tệp CSV bằng phương thức Merge ()

Pandas cũng có một hàm hợp nhất () hữu ích trong việc so sánh hai tệp CSV. Nó thực hiện tham gia bên trong, tham gia bên ngoài hoặc cả hai tham gia trên các cột. Bạn chỉ cần vượt qua các khung dữ liệu bạn muốn so sánh dưới dạng danh sách bên trong phương thức hợp nhất (). Hàm sẽ so sánh và trả về DataFrame.

Chạy các dòng mã bên dưới để so sánh các tệp CSV.

So sánh hai tệp CSV bằng phương thức Merge ()

Sự kết luận

Pandas là gói Python tốt nhất để thao tác các bộ dữ liệu lớn. Nếu bạn có các tệp CSV thì bạn có thể so sánh chúng bằng các phương thức trên.

Tôi hy vọng bạn đã thích hướng dẫn này. Nếu bạn có bất kỳ đề xuất hoặc muốn bao gồm một số phương thức trong hướng dẫn này thì bạn có thể liên hệ với chúng tôi để biết thêm thông tin.

Làm cách nào để so sánh dữ liệu giữa hai tệp CSV trong Python?

Làm cách nào để so sánh hai tệp CSV trong Python và trả về sự khác biệt ?..
Bước 1: Tạo tệp CSVS mẫu. Bước đầu tiên là tạo các tệp CSV mẫu cho phương thức ..
Bước 2: Đọc các tệp CSV. Bước thứ hai là đọc các tệp CSV đã tạo ..
Bước 3: Triển khai phương thức để so sánh hai tệp CSV trong Python bằng Pandas ..

Làm cách nào để so sánh hai tệp trong Python?

Approach..
Mở cả hai tệp ở chế độ đọc ..
Danh sách lưu trữ các chuỗi ..
Bắt đầu so sánh cả hai tệp với phương thức trợ giúp của giao lộ () cho các chuỗi chung ..
So sánh cả hai tệp cho sự khác biệt bằng cách sử dụng trong khi vòng lặp ..
Đóng cả hai tệp ..

Làm cách nào để so sánh hai cột trong các tệp CSV khác nhau trong Python?

Bạn phải làm việc trên các cột.Đọc cả hai cột của tệp CSV của bạn (không có tiêu đề) thành 2 Python Set S ...
Sử dụng '\ t' làm dấu phân cách của bạn, vì tệp của bạn được phân định bởi các tab, không phải dấu phẩy ..
Nhận tất cả các mục từ cả hai danh sách dưới dạng một bộ, sau đó nhận giao điểm của hai bộ ..
In chúng ..

Làm cách nào để so sánh hai tệp CSV trong Beyond so sánh?

Duyệt hệ thống tập tin của bạn, sau đó, bên phải và chọn so sánh.Hai tập tin sẽ mở ra một phiên so sánh ngoài.. The two files should open up a Beyond Compare session.