[英]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.