gpt4 book ai didi

python - 根据主键和辅助键合并两个 csv 文件

转载 作者:行者123 更新时间:2023-12-01 03:54:19 26 4
gpt4 key购买 nike

我想合并两个 csv 文件,如下所示:

csv1:

formula,solver,runtime,conflicts
CBS_k3_n100_m403_b30_13.cnf,SWDiA5BY,0.001842,318
CBS_k3_n100_m403_b30_13.cnf,glucose,0.001842,318

csv2:

formula,entropy,num sols
CBS_k3_n100_m403_b30_13.cnf,0.202,707286

所需输出:

formula,solver,runtime,conflicts,entropy,solutions
CBS_k3_n100_m403_b30_13.cnf,SWDiA5BY,0.001842,318,0.202,707286
CBS_k3_n100_m403_b30_13.cnf,glucose,0.001842,318,0.202,707286

所以我在两个字典(csv)的键之间进行了交集,并使用了列表理解

keysA = set(dict1.keys())
keysB = set(dict2.keys())
keys = keysA & keysB
...
[[key] + dict1.get(key, []) + dict2.get(key, []) for key in keys]

但有一些“重复”行(我需要),其中字段公式相同,但字段求解器不同,我的输出是:

formula,solver,runtime,conflicts,entropy,solutions
CBS_k3_n100_m403_b30_13.cnf,SWDiA5BY,0.001842,318,0.202,707286

如何使用列表理解保留这些行?或以任何其他方式

感谢您的帮助

编辑 - 添加了一个示例

最佳答案

你为什么不使用pandas呢?在 pandas 中做到这一点非常容易

import pandas as pd
df1=pd.read_csv("1.csv")
df=pd.read_csv("2.csv")
result=df1.merge(df,on="formula")
result.to_csv("result.csv")

您还可以使用 result=df1.merge(df,on="formula",how="outer") 来保留您的 csv 之一具有但其他 csv 没有的公式

关于python - 根据主键和辅助键合并两个 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37764425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com