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

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

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ận

Vì 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ố 8

Giả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
0

Lọ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
1

Xó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
2

Kế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

1

0

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
4

tập tin2. csv

column1,column2,column3
test,person,file
test1,person1,file1
test2,person2,file2
test3,person3,file3
test4,person4,file4
test5,person5,file5
5

và đầ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
6

liê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 xem

THÊ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

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

Làm cách nào để so sánh hai cột trong các tệp CSV khác nhau bằng Python? .
Sử dụng '\t' làm dấu phân cách vì tệp của bạn được phân cách bằng các tab chứ không phải dấu phẩy
Lấy tất cả các mục từ cả hai danh sách dưới dạng một tập hợp, sau đó lấy giao điểm của hai tập hợp
In chúng

Làm cách nào để đọc hai tệp CSV bằng Python?

Đọc nhiều tệp CSV vào một khung bằng Python .
Liên kết đến dữ liệu nguồn
gấu trúc. Qua read_csv. Thông qua read_csvs của Pyjanitor. Qua read_csv và dòng lệnh. Thông qua read_commandline của Pyjanitor
bảng dữ liệu. qua iread. qua fread. Qua fread và dòng lệnh
Tài nguyên được sử dụng

Python xử lý nhiều tệp CSV như thế nào?

Giải thích mã . Chúng tôi tạo một khung dữ liệu đối tượng loại danh sách để giữ mọi tệp csv dưới dạng Khung dữ liệu tại mỗi chỉ mục của danh sách đó the glob module helps extract file directory [path + file name with extension], Lines 10–13: We create a list type object dataFrames to keep every csv as a DataFrame at each index of that list . Dòng 15. Chúng tôi gọi pd. concat[] để hợp nhất từng DataFrame trong danh sách theo cột, nghĩa là axis=1.

Chủ Đề