Tôi muốn so sánh một cột của một df với các df khác. Các cột là tên và họ. Tôi muốn kiểm tra xem một người trong một khung dữ liệu có ở trong một khung dữ liệu khác không.
Tôi muốn so sánh một cột của một df với các df khác. Các cột là tên và họ. Tôi muốn kiểm tra xem một người trong một khung dữ liệu có ở trong một khung dữ liệu khác không.
Câu trả lời:
Nếu bạn muốn kiểm tra các giá trị bằng nhau trên một cột nhất định, hãy nói Tên bạn có thể hợp nhất cả hai tệp dữ liệu với một cột mới:
mergedStuff = pd.merge(df1, df2, on=['Name'], how='inner')
mergedStuff.head()
Tôi nghĩ rằng điều này là hiệu quả hơn và nhanh hơn sau đó where
nếu bạn có một bộ dữ liệu lớn
So sánh các giá trị trong hai cột khác nhau
Sử dụng bộ, nhận các giá trị duy nhất trong mỗi cột. Giao điểm của hai bộ này sẽ cung cấp các giá trị duy nhất trong cả hai cột.
Thí dụ:
df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]})
df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]})
set(df1['c2']).intersection(set(df2['c2']))
Đầu ra:
{2, 5}
So sánh tên cột của hai datafram
Trong trường hợp bạn đang cố gắng so sánh tên cột của hai datafram:
Nếu df1
và df2
là hai dataframes:
set(df1.columns).intersection(set(df2.columns))
Điều này sẽ cung cấp các tên cột duy nhất có trong cả hai tệp dữ liệu.
Thí dụ:
df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]})
df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]})
set(df1.columns).intersection(set(df2.columns))
Đầu ra:
{'c2', 'c3'}