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)
结果如下:

 

posted @ 2022-01-05 18:38  chliyiyu  阅读(246)  评论(0编辑  收藏  举报