繁体   English   中英

如何在python中使用熊猫比较2个csv文件

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM