繁体   English   中英

Python 比较两个不同的 CSV 文件哪些值不在同一行中

[英]Python compare two different CSV Files which values are not in the same rows

我有 2 个 CSV 文件,看起来像这样:

首先.csv (MasterFile)

Test1  10
Test2  20

第二 csv

Test8  80
Test1  10

在这种情况下,我想创建一个 function 表示第二个中的值(Test8)是否存在。csv 在第一个中不存在。csv 打印为假。

我的代码:

def checkContent():
    masterFile= pd.read_csv('./first.csv', error_bad_lines=False)
    df1=pd.DataFrame(masterFile, columns=[1])
    customerFile=pd.read_csv('.second.csv', error_bad_lines=False)
    df2=pd.DataFrame(customerFile, columns=[0])

    df1[1] = df2[0]
    check=np.where(df1[1]==df2[0], True, False)
    print(check) 

但它只是比较第一行。 不是其他行。 我知道它必须通过row += 1或类似的东西来完成

IIUC你需要一个左连接, indicator = True

check = np.where(pd.merge(df2,df1,on=['A','B'],how='left'
         ,indicator=True)['_merge'] == 'left_only',
         False,
         True)

print(check)
array([False,  True])

print(pd.merge(df2,df1,on=['A','B'],how='left',indicator=True))

       A   B     _merge
0  Test8  80  left_only
1  Test1  10       both

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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