阿里面試題:Pandas中合并數(shù)據(jù)的5個函數(shù),各有千秋!
join主要用于基于索引的橫向合并拼接; merge主要用于基于指定列的橫向合并拼接; concat可用于橫向和縱向合并拼接; append主要用于縱向追加; combine可以通過使用函數(shù),把兩個DataFrame按列進行組合。
join
索引一致
x = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']},
index=[0, 1, 2])
y = pd.DataFrame({'C': ['C0', 'C2', 'C3'],
'D': ['D0', 'D2', 'D3']},
index=[0, 1, 2])
x.join(y)

索引不一致
x = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']},
index=[0, 1, 2])
y = pd.DataFrame({'C': ['C0', 'C2', 'C3'],
'D': ['D0', 'D2', 'D3']},
index=[1, 2, 3])
x.join(y)

merge
可以指定不同的how參數(shù),表示連接方式,有inner內(nèi)連、left左連、right右連、outer全連,默認為inner;
x = pd.DataFrame({'姓名': ['張三', '李四', '王五'],
'班級': ['一班', '二班', '三班']})
y = pd.DataFrame({'專業(yè)': ['統(tǒng)計學', '計算機', '繪畫'],
'班級': ['一班', '三班', '四班']})
pd.merge(x,y,how="left")

concat
縱向拼接
x = pd.DataFrame([['Jack','M',40],['Tony','M',20]], columns=['name','gender','age'])
y = pd.DataFrame([['Mary','F',30],['Bob','M',25]], columns=['name','gender','age'])
z = pd.concat([x,y],axis=0)
z

橫向拼接
x = pd.DataFrame({'姓名': ['張三', '李四', '王五'],
'班級': ['一班', '二班', '三班']})
y = pd.DataFrame({'專業(yè)': ['統(tǒng)計學', '計算機', '繪畫'],
'班級': ['一班', '三班', '四班']})
z = pd.concat([x,y],axis=1)
z

append
x = pd.DataFrame([['Jack','M',40],['Tony','M',20]], columns=['name','gender','age'])
y = pd.DataFrame([['Mary','F',30],['Bob','M',25]], columns=['name','gender','age'])
x.append(y)

combine
x = pd.DataFrame({"A":[3,4],"B":[1,4]})
y = pd.DataFrame({"A":[1,2],"B":[5,6]})
x.combine(y,lambda a,b:np.where(a>b,a,b))

我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關(guān)注Python實用寶典。
有任何問題,可以在公眾號后臺回復(fù):加群,回答相應(yīng)紅字驗證信息,進入互助群詢問。
原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!
點擊下方閱讀原文可獲得更好的閱讀體驗
Python實用寶典 (pythondict.com)
不只是一個寶典
歡迎關(guān)注公眾號:Python實用寶典
評論
圖片
表情
