由于merge函數(shù)是可以將兩個(gè)表進(jìn)行合并,如果多余兩個(gè)表進(jìn)行合并的話,可以使用merge嵌套的方法,當(dāng)然也可以用reduce和merge組合的方法來(lái)實(shí)現(xiàn)。
例如,以下代碼:
from functools import reduce
import pandas as pd
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})
df3 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
'E': ['E0', 'E1', 'E2', 'E3'],
'F': ['F0', 'F1', 'F2', 'F3']})
dfs = [df1,df2,df3]
df_final = reduce(lambda left,right: pd.merge(left,right,how='outer',on="key"), dfs)
df_final
reduce()函數(shù)是functools模塊中的一個(gè)函數(shù),其作用是對(duì)參數(shù)序列中元素進(jìn)行累積,返回值是一個(gè)數(shù)值。
# 關(guān)于reduce的使用
from functools import reduce
# 將列表里面整數(shù)累加
list_p = [1,2,3]
re = reduce(lambda x,y:x+y,list_p)
print(re)