簡體   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