2017-09-06 79 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來刪除第二個文件的第一行。 –