比较2个CSV文件和数值

时间:2019-09-13 06:21:18

标签: python csv

比较两个csv文件,需要共享所需的结果,例如数字值中的diff,字段值类型,记录数等。

输入文件A(Expected: {"cityFilterChanged": [Function anonymous]} Received: serializes to the same string ):

XYZ_20190908.csv

输入文件B(Name,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10 K1 data,8470,37609,18413,13799,24946,27870,376,24573,27247,41569,687 Total VoLte Traffic,130944.126111,689417.554722,208189.652500,196002.846944,223558.256111,501265.626667,2508.617222,200054.686389,174738.403056,394327.636389,2017.576667 K2 Data,11163.201111,52680.898056,19920.813333,15878.103611,18247.582222,40295.689444,264.738333,17732.341111,15486.259444,32662.475833,199.080278 K3 Data,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN K4 Data,11163.201111,52680.898056,19920.813333,15878.103611,18247.582222,40295.689444,264.738333,17732.341111,15486.259444,32662.475833,199.080278 ):

XYZ_20190909.csv

输出:

  1. 对应字段的每个值的差异。
  2. 如果所有值均为“ NaN”错误
  3. 将文件A中的值与文件B中的值进行比较,如果该值对应于 具有不同数据的两个文件中的位置具有不同的数据类型(例如文件A具有52680.898056,文件B中的值为NaN)应显示错误

需要帮助。

2 个答案:

答案 0 :(得分:0)

我建议您使用Pandas库。它有一些有用的方法来处理这类问题,例如to_csvread_csv

答案 1 :(得分:0)

使用熊猫:

df1 = pd.read_csv(`XYZ_20190908.csv`)
df2 = pd.read_csv(`XYZ_20190909.csv`)

确保它们具有相同的列和索引结构,以便您可以按期望的方式合并或合并它们

df = pd.concat([df1,df2]) 

仅当行和/或列在逻辑上对齐时才有意义。

合并后,您可以进行任何熊猫操作。具体来说,可以为您指出问题a)b)和c)的方向:

df['diff']=df.col_df1 - df.col_df2
df.isna()
df.apply(lambda x: if type(x.col_df1) == type(x.col_df2) True else False, axis = 1)

但是问题过于广泛,数据结构不精确,无法正确回答您的问题。