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