一句代碼合并Excel表
(點擊上方快速關注并設置為星標,一起學Python)
原文鏈接:https://www.jianshu.com/p/0b2b9c08f7f
兩個Excel中都有相同的一列,怎樣依賴這列數據將兩個Excel合并到一起?使用Python合并表格只要一句代碼!

1 讀取表格
使用Python讀取數據只要3行,第一行載入pandas工具,第二行讀取,第三行顯示頭部5行內容。
import pandas as pd
data1 = pd.read_excel('表格1.xlsx')
data1.head()
運行這個代碼就會直接顯示出表格1的前5行數據。
同樣我們可以用下面代碼讀取表格2.
import pandas as pd
data2 = pd.read_excel('表格2.xlsx')
data2.head()
提示:在輸入代碼的時候可以只打單詞的前兩個字母,然后按Tab鍵盤就會彈出提示,用箭頭或鼠標上下滾動選擇命令即可。尤其是'表格1.xlsx'完全不用手工輸入,只要輸入英文雙引號,然后就可以按Tab鍵滾動到底部直接選擇文件名。

2 合并表格
如上所示,表格1和表格2都是某個活動的問卷數據,其中表格1包含了每個學員的聯系電話、收件地址等信息,表格2包含了每個學員的考試成績、出勤記錄等信息。
由于是不同的問卷,兩個表格的學員順序不同,而且第一個問卷姓名欄叫name,第二個問卷姓名欄叫姓名,現在我們需要把它們合并到一起,并且確保每行學員的信息都能正確匹配對齊。
如果使用Excel軟件可能需要很多操作,但使用Python就只需要一句代碼。
dataMerge=pd.merge(data1,data2,left_on='name',right_on='學員姓名',how='left')
最后的how='left'是以表格1為準,表格2中存在但表格1中不存在的學員會被忽略。可以把left改為right就會以表格2為準,也可以改為outer同時保留兩個表格所有的學員姓名,或者改為inner只保留那些同時存在于兩個表格中的學員。如果不輸入這個how的話會默認為是inner。
中間的left_on就是data1(表格1,參見上面代碼)的學員姓名欄名稱,right_on就是data2(表格2,參見上面代碼)的學員姓名欄名稱,這樣就會自動匹配對齊。如果兩個表格學員姓名欄名稱一樣,可以改為使用下面的代碼更加簡單。
dataMerge=pd.merge(data1,data2,on='name')
3 保存表格
最后我們用下面的命令把合并好的數據保存成Excel文件。
dataMerge.to_excel('合并表格.xlsx')
上面這句代碼運行后就會自動生成一個新的Excel文件,你可以用Excel打開查看再做進一步的手工檢查和修改。
