2017-11-11 162 views
0

我有2 CSV(emails1.csv和emails2.csv)加入2 CSV與熊貓

我需要的是加入這兩個CSV成一個,因爲他們是太大了與Excel的工作。

我需要導出爲CSV和TXT。

我所做的是創建一個Python文件:

import csv 
import pandas as pd 
import numpy as np 

df1 = pd.read_csv("emails1.csv") 
df2 = pd.read_csv("emails2.csv") 

df3 = pd.merge(df1, df2, on=["email"]) 
df3.to_csv("final.csv",index=False) 

的CSV只有email列

感謝您的幫助。

+0

所以,你只是想加載和連接來自兩個CSV的電子郵件列,並不關心其他列? –

+0

對不起,不是concat,是pd.merge – Kenyis

+1

在這種情況下,你能提供一些樣本輸入和預期輸出嗎?很難理解你想要什麼。 –

回答

0

你錯過了如何加入了兩個dataframes。 我只是對給定的代碼做了一個小的調整,它完美的工作。

import csv 
import pandas as pd 
import numpy as np 

df1 = pd.read_csv("emails1.csv") 
df2 = pd.read_csv("emails2.csv") 

df3 = df1.merge(df2, on=["email"], how='outer') 
df3.to_csv("final.csv",index=False) 

請注意how參數的方式,以及merge被調用。

這是emails1.csv

email 
[email protected] 
[email protected] 

這是emails2.csv

email 
[email protected] 
[email protected] 

這是final.csv執行我的代碼之後:

email 
[email protected] 
[email protected] 
[email protected] 
[email protected] 

我希望這是你想要的。 :-)乾杯!

+0

謝謝!,你的代碼工作,但我搜索更多,我發現你的代碼的變體: 這是你的代碼: df3 = df1.merge(df2,on = [「email」],how ='outer') df3.to_csv(「final.csv」,index = False) 這是變化: df3 = pd.merge(df1,df2,on = [「email」],how ='outer ') df3.to_csv(「final.csv」,index = False) 這兩個工作,但是,爲什麼你使用df1.merge?有什麼不同?另外,你是如何避免來自emails2的電子郵件?因爲跳過列的名稱。 謝謝! – Kenyis

+0

關於跳欄的名稱,這是熊貓本身就很酷的小技巧之一。無論何時將csv文件加載到熊貓數據框中,它都會自動將第一行作爲列標題行,將其下方的行作爲實際數據。如果你覺得不方便,我想你可以在閱讀時通過傳遞某個參數來避免它,如果我沒有記錯的話,我猜「header = False」。 –

+0

關於「合併」的方式被稱爲...嗯,事實證明,我們都學到了今天的新東西。肯定pd.merge的作品也是!事實上,它更「被接受」。直到現在我一直在使用df.merge,這就是爲什麼我指出了這一點。 謝謝。 :D –