使用pandas组合两个csv文件

时间:2017-09-06 07:55:34

标签: python pandas csv dataframe concat

任何人都可以检查我的代码有什么问题。 我希望它将两个csv文件合并到一个csv文件中。

我曾试图谷歌,但我仍然无法合并它,它会创建新文件,但不会在里面显示任何内容。 https://stackoverflow.com/a/16266144/7624469

  

a.csv

ID    User
A1    Fi
A2    Ki
  

b.csv

ID    User
A4    Fsdi
A5    Kisd
  

我想要的输出看起来像这样

     

combined.csv

ID    User
A1    Fi
A2    Ki
A4    Fsdi
A5    Kisd

test.py

import pandas, sys
import pandas as pd


a = pd.read_csv("C:/JIRA Excel File/a.csv")
b = pd.read_csv("C:/JIRA Excel File/b.csv")

merged = a.merge(b, on='ID')

merged.to_csv('C:/JIRA Excel File/result.csv', index=False)

3 个答案:

答案 0 :(得分:5)

最好在这里使用pd.concat来合并这些框架,而不是merge

merged = pd.concat([a,b])

您的数据的玩具示例:

a = pd.DataFrame([['Fi'],['Ki']],columns=['User'], index=['A1','A2'],) #'ID')
b = pd.DataFrame([['Fi'],['Ki']],columns=['User'], index=['A4','A5'],) #'ID')
pd.concat([a,b])

将输出:

    User
A1  Fi
A2  Ki
A4  Fi
A5  Ki

答案 1 :(得分:5)

使用df.append

out = df1.append(df2)
print(out)

   ID  User
0  A1    Fi
1  A2    Ki
0  A4  Fsdi
1  A5  Kisd

with open('C:/JIRA Excel File/result.csv', 'w', encoding='utf-8') as f:
    out.to_csv(f, index=False)

答案 2 :(得分:1)

不要打扰python,只需使用grep的bash:

cat a.csv > combined.csv
tail -n +2 b.csv >> combined.csv