python - Python比较两个不同的CSV文件,其值不在同一行中
问题描述
我有 2 个 CSV 文件,看起来像这样:
first.csv(主文件)
Test1 10
Test2 20
第二个csv
Test8 80
Test1 10
在这种情况下,我想创建一个函数,它说如果 second.csv 中的值(Test8)在 first.csv 中不存在,则打印 False。
我的代码:
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
推荐阅读
- python - 用 Python 模拟“点击”
- translation - Weblate 在 xliff 文件中将项目标记为未翻译?
- spring-data-jpa - JpaRepository#save 上的重复条目
- android - 使用 appium 和 adb 绑定启动某些应用程序时会发生 java.lang.SecurityException
- excel - 从下拉列表中选择多个项目(不重复)并从查找中总结它们的值
- android - 想在特定时间一个接一个地上传一堆文件
- r - R 如何处理不明确的列名?
- hyperledger - composer-rest-server 未处理的“错误”事件
- python - 按来自另一个数据框python的列更改数据框列名称
- odata - 如何在 OData 调用中排除多个值?