Bài viết này cho thấy python/pandas tương đương với phép nối SQL. Bạn có thể tìm cách so sánh hai tệp CSV dựa trên các cột và đưa ra sự khác biệt bằng cách sử dụng python và pandas. Ưu điểm của gấu trúc là tốc độ, hiệu quả và hầu hết công việc sẽ được gấu trúc thực hiện cho bạn
- đọc các tệp CSV [hoặc bất kỳ tệp nào khác]
- phân tích thông tin thành dạng bảng
- so sánh các cột
- xuất kết quả cuối cùng
Bài viết trước về gấu trúc. Pandas làm thế nào để nối các cột
Vì vậy, hãy có kịch bản này - hai tệp CSV như
column1
test
test1
test2
test3
test4
test6
và
column1,column2,column3
test,person,file
test1,person1,file1
test2,person2,file2
test3,person3,file3
test4,person4,file4
test5,person5,file5
Mục tiêu của chúng tôi là tìm tất cả các hàng không khớp từ tệp đầu tiên trong tệp thứ hai dựa trên một cột nhất định
import pandas as pd
f1 = pd.read_csv['C:\\user\\file1.csv]
f2 = pd.read_csv['C:\\user\\file2.csv']
print[f2[~f2.column1.isin[f1.column1]]]
Kết quả của mã này sẽ là
column1 column2 column3
5 test5 person5 file5
Nếu bạn muốn so sánh theo cách khác, bạn có thể sử dụng
print[f1[~f1.column1.isin[f2.column1]]]
và kết quả sẽ là
column1
5 test6
Hãy tạo một số lưu ý về mã
Tùy thuộc vào tệp CSV của bạn, bạn có thể cần thay đổi dòng này. Thông tin thêm về read_csv
f2 = pd.read_csv['C:\\user\\file2.csv', sep=';']
f2 = pd.read_csv['C:\\user\\file2.csv']
Theo mặc định, dấu phân cách cho phương thức read_csv phải là ',' vì vậy nếu bạn có bất kỳ thứ gì khác với nó, chẳng hạn như ';' . Nếu không, các cột của bạn sẽ bị khớp sai
câu trả lời được chấp nhậnVì vậy, trước tiên bạn sẽ phải mở
import pandas as pd
df1 = pd.read_csv['file1.csv',delimiter=';']
df2 = pd.read_csv['file2.csv',delimiter=';']
Xử lý khung dữ liệu, vì tìm thấy khoảng trắng
________số 8Giải pháp được mong đợi, Giả sử rằng tên của bạn là ĐỘC ĐÁO
Hợp nhất các tập tin
new_merged_df = df2.merge[df1[['name','test status']],'left',on=['name'],suffixes=['','file1']]
Kết quả khung dữ liệu
column1,column2,column3
test,person,file
test1,person1,file1
test2,person2,file2
test3,person3,file3
test4,person4,file4
test5,person5,file5
0Lọc dựa trên các yêu cầu và xóa các hàng có tên với trạng thái kiểm tra khác nhau
column1,column2,column3
test,person,file
test1,person1,file1
test2,person2,file2
test3,person3,file3
test4,person4,file4
test5,person5,file5
1Xóa cột và lưu trữ
column1,column2,column3
test,person,file
test1,person1,file1
test2,person2,file2
test3,person3,file3
test4,person4,file4
test5,person5,file5
2Kết quả
column1,column2,column3
test,person,file
test1,person1,file1
test2,person2,file2
test3,person3,file3
test4,person4,file4
test5,person5,file5
3 Pandas là thư viện Python tốt nhất để tạo và thao tác khung dữ liệu. Bạn có thể đọc các tệp CSV, thao tác với chúng và cũng có thể 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?
Các bước để so sánh hai tệp CSV trong Python
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 CSV mẫu
Bước đầu tiên là tạo tệp CSV mẫu cho phương pháp. Trước tiên, tôi sẽ tạo hai khung dữ liệu mẫu và sau đó xuất từng khung dữ liệu sang tệp CSV. Nó sẽ sử dụng để đọc tệp CSV và so sánh chúng
Sử dụng Python, Cách so sánh hai cột trong hai tệp csv khác nhau, sau đó in các dòng giống nhau và các dòng khác nhau
10
Vào chế độ chỉnh sửa
4. 6 năm trước
hamzaallal07 • 0
Tôi có hai tệp chứa hai cột cho mỗi tệp, tôi cần so sánh từng hàng trong từng cột đầu tiên của tệp1. csv và tệp2. csv, sau đó, nếu hai cột giống nhau, tôi in cột đầu tiên và hai cột thứ hai. như thế này. trong tệp1. csv. C[2]—C[1] 1. 5183 trong tệp2. csv. C[2]—C[1] 1. 5052
đầu ra. csv C[2]—C[1] 1. 5183 1. 5052
và nếu hai cột khác nhau, tôi in dòng tồn tại trong tệp1 và tệp2
Đây là hai của tôi. tập tin scv
tập tin1. csv
column1,column2,column3
test,person,file
test1,person1,file1
test2,person2,file2
test3,person3,file3
test4,person4,file4
test5,person5,file5
4tập tin2. csv
column1,column2,column3
test,person,file
test1,person1,file1
test2,person2,file2
test3,person3,file3
test4,person4,file4
test5,person5,file5
5và đầu ra mong muốn của tôi
column1,column2,column3
test,person,file
test1,person1,file1
test2,person2,file2
test3,person3,file3
test4,person4,file4
test5,person5,file5
6liên quan đến các dòng tương tự, tôi đã tìm thấy một tập lệnh rất hay trên github tuyệt vời này So sánh hai cột trong một số tệp khác nhau với Perl hoặc Python, cung cấp giải pháp cho câu lệnh tương tự
nhưng mặt khác, tôi không biết làm thế nào để in các dòng khác nhau
trăn • 30k lượt xemTHÊM NHẬN XÉT • 4. 6 năm trước bởi hamzaallal07 • 0
0
Vào chế độ chỉnh sửa
Bạn có thể vui lòng cung cấp cho chúng tôi một số ngữ cảnh để hiểu điều này có liên quan như thế nào đến tin sinh học không?
THÊM TRẢ LỜI • 4. 6 năm trước bởi Ram 37k
0
Vào chế độ chỉnh sửa
Xin chào cpad0112, xin lỗi vì sự chậm trễ
Tôi là nhà nghiên cứu về hóa học, hóa học tính toán [hóa học lý thuyết], "Chemoinformatics". Tôi sử dụng chương trình ORCA https. //orcaforum. céc. mpg. de để tính toán một số tham số liên quan đến cấu trúc phân tử. vì vậy tôi chuẩn bị một tệp đầu vào chứa thông tin về cấu trúc phân tử, sau đó tôi nhận được kết quả trong một tệp đầu ra lớn. vì vậy sau mỗi phép tính tôi thu thập kết quả của mình
Kịch bản trên làm cho nhiệm vụ của tôi dễ dàng hơn, nó cho phép tôi so sánh hai kết quả và góc liên kết cho một phân tử tương tự
THÊM TRẢ LỜI • 4. 6 năm trước bởi hamzaallal07 • 0
0
Vào chế độ chỉnh sửa
Np. Vui lòng đánh dấu các bài đăng bằng các thẻ thích hợp và cung cấp cho diễn đàn bối cảnh phù hợp của vấn đề. Điều này là do hầu hết các thành viên không chỉ là lập trình viên, họ còn có kiến thức về nhiều chủ đề [chủ yếu là tin sinh học]. Họ đánh giá cao bối cảnh của vấn đề và bối cảnh đó sẽ giúp đưa ra giải pháp tốt hơn cho vấn đề đã đăng. Đôi khi, những gì chúng tôi nghĩ có thể hoặc không thể là giải pháp phù hợp cho vấn đề/vấn đề đó. Chúc may mắn với nghiên cứu của bạn và tiếp tục đăng ở đây. ]
THÊM TRẢ LỜI • 4. 6 năm trước bởi cpad0112 21k
0
Vào chế độ chỉnh sửa
Xin chào hamzaallal07
Chúng tôi tin rằng bài đăng này không phù hợp với chủ đề chính của trang web này
xin vui lòng xem.
Vì lý do này, chúng tôi đã đóng câu hỏi của bạn. Điều này cho phép chúng tôi giữ cho trang web tập trung vào các chủ đề mà cộng đồng có thể trợ giúp