【发布时间】:2019-02-12 20:05:37
【问题描述】:
我有三个数据框。它们都有一个公共列,我需要根据公共列合并它们,而不会丢失任何数据
输入
>>>df1 0 列 1 列 2 列 3 1 个数据 1 3 4 2 数据2 4 3 3 数据 3 2 3 4 数据4 2 4 5 个数据 5 1 4 >>>df2 0 列 1 列 4 列 5 1 个数据 1 7 4 2 数据 2 6 9 3 数据 3 1 4 >>>df3 0 列 1 列 6 列 7 1 个数据 2 5 8 2 数据 3 2 7 3 数据 5 5 3预期输出
>>>df 0 列 1 列 2 列 3 列 4 列 5 列 6 列 7 1 个数据 1 3 4 7 4 2 个数据 2 4 3 6 9 5 8 3 数据 3 2 3 1 4 2 7 4 数据4 2 4 5 个数据 5 1 4 5 3【问题讨论】:
-
请根据您在研究中的发现展示您的尝试,我们可以解释为什么它没有按预期工作。
-
我已经这样做了,但是有些行丢失了
dfs = [df3,df1,df2] df_final = reduce(lambda left,right: pd.merge(left,right,on='Col1'), dfs) -
df = pd.concat([df1,df2,df3],axis=1,sort=False).reset_index()df.rename(columns = {'index':'Col1'})
标签: python pandas dataframe merge concat