9
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi có hai tệp CSV đều bao gồm hai cột.
Cái đầu tiên có ID sản phẩm và số thứ hai có số sê -ri.
Tôi cần tra cứu, tất cả các số sê -ri từ CSV đầu tiên và tìm các trận đấu, trên CSV thứ hai. Báo cáo kết quả, sẽ có số sê -ri phù hợp và ID sản phẩm tương ứng từ mỗi CSV, trong một cột riêng mà tôi cố gắng sửa đổi mã dưới đây, không gặp may.
Làm thế nào bạn sẽ tiếp cận điều này?
import pandas as pd
A=set[pd.read_csv["c1.csv", index_col=False, header=None][0]] #reads the csv, takes only the first column and creates a set out of it.
B=set[pd.read_csv["c2.csv", index_col=False, header=None][0]] #same here
print[A-B] #set A - set B gives back everything thats only in A.
print[B-A] # same here, other way around.
Đã hỏi ngày 23 tháng 2 năm 2017 lúc 14:12Feb 23, 2017 at 14:12
1
Tôi nghĩ bạn cần
A = pd.DataFrame[{'product id': [1455,5452,3775],
'serial number':[44,55,66]}]
print [A]
B = pd.DataFrame[{'product id': [7000,2000,1000],
'serial number':[44,55,77]}]
print [B]
print [pd.merge[A, B, on='serial number']]
product id_x serial number product id_y
0 1455 44 7000
1 5452 55 2000
3:A = pd.DataFrame[{'product id': [1455,5452,3775],
'serial number':[44,55,66]}]
print [A]
B = pd.DataFrame[{'product id': [7000,2000,1000],
'serial number':[44,55,77]}]
print [B]
print [pd.merge[A, B, on='serial number']]
product id_x serial number product id_y
0 1455 44 7000
1 5452 55 2000
Đã trả lời ngày 23 tháng 2 năm 2017 lúc 14:32Feb 23, 2017 at 14:32
JEZRAELJEZRAELjezrael
763K85 Huy hiệu vàng1215 Huy hiệu bạc1150 Huy hiệu Đồng85 gold badges1215 silver badges1150 bronze badges
2
Thử cái này:
A = pd.read_csv["c1.csv", header=None, usecols=[0], names=['col']].drop_duplicates[]
B = pd.read_csv["c2.csv", header=None, usecols=[0], names=['col']].drop_duplicates[]
# A - B
pd.merge[A, B, on='col', how='left', indicator=True].query["_merge == 'left_only'"]
# B - A
pd.merge[A, B, on='col', how='right', indicator=True].query["_merge == 'right_only'"]
Đã trả lời ngày 23 tháng 2 năm 2017 lúc 14:34Feb 23, 2017 at 14:34
Bạn có thể chuyển đổi DF thành các tập hợp, sẽ bỏ qua chỉ mục trong khi so sánh dữ liệu, sau đó sử dụng SET SOMMETRIC_DIFFERTY
ds1 = set[[ tuple[values] for values in df1.values.tolist[]]]
ds2 = set[[ tuple[values] for values in df2.values.tolist[]]]
ds1.symmetric_difference[ds2]
print df1 ,'\n\n'
print df2,'\n\n'
print pd.DataFrame[list[ds1.difference[ds2]]],'\n\n'
print pd.DataFrame[list[ds2.difference[ds1]]],'\n\n'
DF1
id Name score isEnrolled Comment
0 111 Jack 2.17 True He was late to class
1 112 Nick 1.11 False Graduated
2 113 Zoe 4.12 True NaN
DF2
id Name score isEnrolled Comment
0 111 Jack 2.17 True He was late to class
1 112 Nick 1.21 False Graduated
2 113 Zoe 4.12 False On vacation
Đầu ra
0 1 2 3 4
0 113 Zoe 4.12 True NaN
1 112 Nick 1.11 False Graduated
0 1 2 3 4
0 113 Zoe 4.12 False On vacation
1 112 Nick 1.21 False Graduated
Đã trả lời ngày 23 tháng 2 năm 2017 lúc 14:34Feb 23, 2017 at 14:34
Bạn có thể chuyển đổi DF thành các tập hợp, sẽ bỏ qua chỉ mục trong khi so sánh dữ liệu, sau đó sử dụng SET SOMMETRIC_DIFFERTYShijo
DF12 gold badges17 silver badges30 bronze badges
Bài đăng này giải thích cách so sánh hai tệp CSV và in ra sự khác biệt trong Python.compare two CSV files and print out differences in Python.
Mục lục:
Bắt đầu nào.
Ví dụ Dữ liệu & Thư viện bổ trợ
Trước tiên chúng tôi phải nhập thư viện Pandas:
import pandas as pd # Load pandas
Hơn nữa, hãy xem xét dữ liệu ví dụ dưới đây:
data1 = pd.DataFrame[{'x1':range[0, 6], # Create first pandas DataFrame 'x2':['x', 'y', 'x', 'x', 'y', 'x'], 'x3':range[2, 8]}] print[data1] # Print first pandas DataFrame
data2 = pd.DataFrame[{'x1':range[3, 8], # Create second pandas DataFrame 'x2':['x', 'x', 'x', 'y', 'y'], 'x3':range[5, 10]}] print[data2] # Print second pandas DataFrame
Đầu ra của cú pháp lập trình Python trước đó được hiển thị trong Bảng 1 và 2: Chúng tôi đã tạo hai khung dữ liệu gấu trúc với cùng một cột nhưng các giá trị khác nhau.
Hãy để Viết các khung dữ liệu gấu trúc này vào hai tệp CSV riêng biệt:
A = pd.DataFrame[{'product id': [1455,5452,3775],
'serial number':[44,55,66]}]
print [A]
B = pd.DataFrame[{'product id': [7000,2000,1000],
'serial number':[44,55,77]}]
print [B]
print [pd.merge[A, B, on='serial number']]
product id_x serial number product id_y
0 1455 44 7000
1 5452 55 2000
0Sau khi cú pháp Python trước đó được thực thi, bạn sẽ tìm thấy nhiều tệp CSV trong thư mục làm việc hiện tại của mình. Hai tệp này sẽ được sử dụng làm cơ sở cho ví dụ sau.
Ví dụ: So sánh hai tệp CSV và in ra sự khác biệt
Cú pháp lập trình Python sau đây cho thấy cách so sánh và tìm sự khác biệt giữa các khung dữ liệu gấu trúc trong hai tệp CSV trong Python.
Chính xác hơn, chúng tôi đang tìm kiếm các hàng tồn tại trong khung dữ liệu gấu trúc thứ hai, nhưng không phải trong khung dữ liệu đầu tiên.
Trong bước đầu tiên của ví dụ này, chúng tôi đang nhập hai DataFrames Pandas:
A = pd.DataFrame[{'product id': [1455,5452,3775],
'serial number':[44,55,66]}]
print [A]
B = pd.DataFrame[{'product id': [7000,2000,1000],
'serial number':[44,55,77]}]
print [B]
print [pd.merge[A, B, on='serial number']]
product id_x serial number product id_y
0 1455 44 7000
1 5452 55 2000
1Tiếp theo, chúng tôi đang sử dụng một vòng lặp để kiểm tra từng dòng trong tệp CSV thứ hai nếu nó tồn tại trong tệp CSV đầu tiên. Hơn nữa, chúng tôi đang tạo một tệp CSV mới chứa tất cả các hàng chỉ tồn tại trong tệp CSV thứ hai.
Làm thôi nào:
A = pd.DataFrame[{'product id': [1455,5452,3775],
'serial number':[44,55,66]}]
print [A]
B = pd.DataFrame[{'product id': [7000,2000,1000],
'serial number':[44,55,77]}]
print [B]
print [pd.merge[A, B, on='serial number']]
product id_x serial number product id_y
0 1455 44 7000
1 5452 55 2000
2Bảng 3 cho thấy đầu ra của cú pháp Python trước đó - một tập dữ liệu cho thấy sự khác biệt giữa khung dữ liệu Pandas thứ nhất và thứ hai.
Xin lưu ý rằng mã của hướng dẫn này một phần dựa trên chủ đề Overflow Stack này. Bạn có thể có một cái nhìn ở đó để biết thêm chi tiết về cách so sánh các bộ dữ liệu khác nhau được lưu trữ trong các tệp CSV trong Python.
Video & tài nguyên hơn nữa
Hãy xem video sau đây trên kênh YouTube thống kê. Tôi minh họa cú pháp lập trình Python của bài viết này trong video.
Video YouTube sẽ sớm được thêm vào.
Ngoài ra, bạn có thể đọc một số hướng dẫn liên quan trên trang web này. Một lựa chọn các bài báo được liệt kê ở đây.
- Xử lý các khung dữ liệu bằng thư viện Pandas trong Python
- So sánh hai khung dữ liệu gấu trúc trong Python
- Tìm sự khác biệt giữa hai cột của Pandas DataFrame
- So sánh các tiêu đề của hai khung gộp của gấu trúc trong Python
- Kiểm tra xem hai khung dữ liệu gấu trúc có bằng nhau trong Python không
- Đọc tệp CSV dưới dạng Pandas DataFrame trong Python
- Chỉ đọc một số cột nhất định của tệp CSV dưới dạng pandas dataframe
- Bỏ qua hàng nhưng hãy giữ tiêu đề khi đọc tệp CSV
- Đọc từng dòng tệp CSV trong Python
- Tất cả các hướng dẫn lập trình Python
Hướng dẫn này đã trình bày cách tìm sự khác biệt giữa hai tệp CSV trong ngôn ngữ lập trình Python. Nếu bạn có thêm câu hỏi, xin vui lòng cho tôi biết trong các ý kiến dưới đây.find differences between two CSV files in the Python programming language. If you have additional questions, please let me know in the comments below.