python - 使用 python 合并两个 csv 文件并提取有用的信息

标签 python pandas

我有两个 .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/

相关文章:

python - 强制 ctypes.cdll.LoadLibrary() 从文件重新加载库

python - 安装并添加到 PATH 后,Windows 无法识别“nosetests”

python - 重新索引而不改变顺序

python - 在 Pandas 中按索引选择行的多个部分

pandas - 如何使用 key :value pairs from a dict to build a pandas filter

python - "TypeError: a bytes-like object is required, not ' str '"将压缩的 DICOM 卷读入 numpy 数组

python - 特别是本地 Django 部署。织物?

python-3.x - 有条件地分割长行的最 Pythonic/最有效的方法是什么?

Python:尽管明显存在但未看到函数

python - 计算两个数据帧的振荡