我有两个 .csv 文件,如下所示:
文件_1:
id a b c
10 1 2 3
11 2 3 4
文件_2:
id d e
10 2 3
11 2 3
12 2 3
我的预期输出是:
id a b c d e
10 1 2 3 2 3
11 2 3 4 2 3
我希望通过比较 ID 号来合并这两个文件。如果id号匹配,则需要合并并提取id和相应的行。如果不匹配,则忽略相应 id 号的行。我的代码如下所示:
import pandas as pd
s1=pd.read_csv("file_1.csv")
s2=pd.read_csv("file_2.csv")
if s1['id']==s2['id']:
merged=s1.merge(s2, on="id", how="outer")
else:
pass
merged
merged.to_csv("output.csv")
运行此代码后,我无法获得预期的输出。有人可以帮助我吗?谢谢。
最佳答案
由于您没有提到天气,您的 id 是索引名称或列名称,所以我将其作为索引。
import pandas as pd
s1=pd.DataFrame({'id':[10, 11], 'a':[1,2], 'b':[2,3], 'c':[3,4]})
s2=pd.DataFrame({'id':[10, 11, 12], 'd':[2,2, 2], 'e':[3,3, 3]})
merg = pd.merge(left=s1,right=s2,on='id').set_index('id')
print merg
这是你的输出--
a b c d e
id
10 1 2 3 2 3
11 2 3 4 2 3
关于python - 使用 python 合并两个 csv 文件并提取有用的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57194049/