python 多表一次合并
举例如下:
import functools
a = pd.DataFrame({'name':['mary','jack','susan'],'gender':['female','male','female']})
b = pd.DataFrame({'name':['mary','jack','susan'],'age':[20,30,40]})
c = pd.DataFrame({'name':['mary','jack','susan'],'addr':['sz','sh','bj']})
a1 = a.set_index('name')
b1 = b.set_index('name')
c1 = c.set_index('name')
df = [a1,b1,c1]
df_merge= functools.reduce(lambda left,right: pd.merge(left,right,right_index=True,left_index=True,how='left'), df)
结果如下: