[英]how to compare 2 csv files using pandas in python
我有2個按ID排序的csv文件。
File1.csv
ID X Y Z
1 10 20 30
3 23 12 15
5 40 50 60
File2.csv
ID X Y Z
1 5 10 15
2 40 50 60
5 55 12 22
我想遍歷兩個文件並查看ID(row [0])並執行兩個操作:
如果兩個ID同時存在(此處為“ 1”和“ 5”),則將此記錄添加到名為diff.csv的新文件中
ID x1 x2 diffx y1 y2 diffy z1 z2 diffz
1 10 20 -10 20 10 10 30 15 15
5 40 55 -15 50 12 38 60 22 38
如果ID僅存在於第一個文件中,則將此ID添加到onlyf1.csv中
ID
3
如果ID僅存在於第二個文件中,則將此ID添加到onlyf2.csv中
ID
2
我可以想到只讀取熊貓文件。
f1 = pd.read_csv("File1.csv")
f2 = pd.read_csv("File2.csv")
誰能幫我過濾數據並對此進行操作?
您可以merge
它,然后再groupby
列,拿到后diff
,我們可以concat
回合並后的DF
s=df1.merge(df2,on = 'ID', how = 'inner')
t=s.groupby(np.array(s.columns.str.split('_').str[0]),axis=1).diff().dropna(axis=1).add_suffix('DIFF')
pd.concat([s,t],axis=1).sort_index(axis=1)
Out[896]:
ID X_x X_y X_yDIFF Y_x Y_y Y_yDIFF Z_x Z_y Z_yDIFF
0 1 10 5 -5.0 20 10 -10.0 30 15 -15.0
1 5 40 55 15.0 50 12 -38.0 60 22 -38.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.