我想要加入3个不同的数据帧,使用标签和窗口作为键。
DataFrame1
Window Label FeatA
123 1 h
123 2 f
DataFrame2
Window Label FeatB
123 1 d
123 2 s
DataFrame3
Window Label FeatC
123 1 d
123 2 c
结果
Window Label FeatA FeatB FeatC
123 1 h d d
123 2 f s c
我知道如何使用pandas.concat
加入数据框,但不知道如何指定密钥。任何帮助将不胜感激。
答案 0 :(得分:3)
根据您的情况,您需要使用merge
函数来连接表,因为您有多个要加入的数据框,您可以将它们放入列表中,然后使用reduce
来自{{ 1}}逐个合并它们:
functools
答案 1 :(得分:3)
使用pd.concat
pd.concat([df.set_index(['Window', 'Label']) for df in [df1_, df2_, df3_]],
axis=1).reset_index()
答案 2 :(得分:1)
您可以使用combine_first:
In[44]:df.combine_first(df1).combine_first(df2)[['Window','Label','FeatA','FeatB','FeatC']]
Out[44]:
Window Label FeatA FeatB FeatC
0 123 1 h d d
1 123 2 f s c
或者您可以使用merge:
In[30]:df.merge(df1,on=['Window','Label']).merge(df2,on=['Window','Label'])
Out[30]:
Window Label FeatA FeatB FeatC
0 123 1 h d d
1 123 2 f s c