2017-09-06 81 views
2

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

我一直试图谷歌,我仍然不能合并它,它会创建新的文件,但不会在里面显示。https://stackoverflow.com/a/16266144/7624469

a.csv

ID User 
A1 Fi 
A2 Ki 

b.csv

ID User 
A4 Fsdi 
A5 Kisd 

The output that I want will look like this

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

使用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

这是更好地使用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 
+0

你能解释更详细 –

+0

我的答案 – Grigoriy

+0

它会显示此错误的UnicodeDecodeError更新:“UTF-8”编解码器不能解码位53中的字节0x93:无效起始字节 –

0

不要打扰蟒蛇,只是使用bash使用grep:

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

如果他使用Windows,该怎么办? – captainblack

+0

在power shell中,您必须使用get-content而不是cat和select-object来删除第二个文件的第一行。 –