merge函式_資料分析常用函式—pd.merge
阿新 • • 發佈:2020-12-18
技術標籤:merge函式validate函式
資料分析是現在的熱門,學會用python處理資料,讓你從繁瑣的工作中解脫出來。 本文詳細闡述資料分析常用函式之merge函式。本文目錄
merge函式引數詳解
merge函式簡單例項
2.1 兩個資料框
2.2 按不同方式拼接兩個資料框
merge函式進階例項
3.1 兩個資料框
3.2 按不同方式拼接兩個資料(
一、merge函式引數詳解
pd.merge函式是把兩個資料框按某種方式拼接起來,如果覺得單看語法比較枯燥,可以先看第二部分例項。pd.merge(left, right, how= 'inner', on=None, left_on=None, right_on=None, left_index = False, right_index = False, sort = False, suffixes=('_x', '_y'), copy = True, indicator = False, validate=None)
引數詳解:
left:待拼接的左側資料框。
right:待拼接的右側資料框。
how:左右兩個資料框的連線方式。可選‘left’、‘right’、‘outer’、‘inner’,預設為inner。 on:左右兩個待拼接資料框有共同列名,且按該列拼接兩個資料框時使用該引數。 left_on:拼接兩個資料框時,左資料框對應連線關鍵字(可為列表)。 right_on:拼接兩個資料框時,右資料框對應連線關鍵字(可為列表)。 left_index:若為True,則按左資料框的索引連線兩個資料框。 right_index:若為True,則按右資料框的索引連線兩個資料框。 sort:按字典順序通過連線鍵對結果資料框進行排序。 suffixes:為左右資料框中重複列名定義字尾。預設加('x','y')。二、merge函式簡單例項
1.第一個資料框中存放了四位同學的數學成績
import pandas as pddate1 = pd.DataFrame({'name':['xie', 'li', 'wang', 'chen'], 'Math':[88, 90, 54, 70]})
具體資料格式如下:
2.第二個資料框中存放了四位同學的英語成績
date2 = pd.DataFrame({'name':['xie', 'li', 'fan', 'sun'], 'English':[94, 83, 89, 33]})
具體資料格式如下:
1. 以預設的方式連線兩個資料框
pd.merge(date1, date2)
沒有指定連線鍵時,預設採取兩個資料框中的都有的列做為連線鍵。且連線方式how預設為inne(保留兩個資料框中都有資訊的列)。
2. how為left
pd.merge(date1, date2, how = 'left')
以左資料框中的連線鍵為基準,匹配右資料框中的資訊,並連線。如果沒有指定連線關鍵字,預設相同名字的那一列作為匹配鍵。
3. how為right
pd.merge(date1, date2, how = 'right')
類似left,只是以右側資料框中的連線鍵為基準。
4
.
how為outer
pd.merge(date1, date2, how = 'outer')
取連線鍵的並集,保留所有資訊。
5.以index做為連線鍵
pd.merge(date1, date2, how= 'inner',left_index=True,right_index=True)
按預設index進行連線,也可以在建立資料框時自己指定index。
若兩個資料框除連線鍵外,還有相同列名,預設左側資料框中的相同列名後加_x,右側資料框中相同列名後加_y,見上圖中的name_x和name_y。
三、merge函式進階例項
1兩個資料框1.第一個資料框中存放了四位同學的姓名、年齡和成績。
import pandas as pddate1 = pd.DataFrame({'name1':['xie', 'li', 'wang', 'chen'], 'age1':[12, 11, 11, 13], 'music':[95,66,98,78],'Math':[88,90,54,70]})
具體資料格式如下:
2. 第二個資料框中存放了四位同學的姓名、年齡和成績。date2 = pd.DataFrame({'name2':['xie', 'li', 'fan', 'sun'], 'age2':[12, 11, 13, 10], 'English':[94, 83, 89, 33]})
具體資料格式如下:
2按不同方式拼接兩個資料框
由於兩個資料框中沒有相同列名,所以不指定連線關鍵字時會報錯。
1.以左連線的方式連線兩個資料框
pd.merge(date1, date2, how = 'left', left_on = 'name1', right_on = 'name2')
得到結果如下:
2.指定兩列為連線鍵
pd.merge(date1, date2, how = 'left', left_on = ['name1', 'age1'], right_on = ['name2', 'age2'])
得到結果如下:
3.用sort對連線鍵值進行排序
pd.merge(date1, date2, how = 'left', left_on = ['name1', 'age1'], right_on = ['name2', 'age2'], sort = True)
得到結果如下:
按連線鍵的順序對資料框進行排序。