Pandas在列级别连接数据帧时添加键

时间:2017-02-14 21:46:18

标签: python pandas concatenation

根据Pandas 0.19.2文档,我可以提供 keys 参数来创建生成的多索引DataFrame。一个例子(来自pandas文档)是:

result = pd.concat(frames, keys=['x', 'y', 'z']) Merge Dataframe- row multi-index

如何连接数据框,以便我可以在列级别而不是索引级别提供密钥?

我基本上需要的是这样的事情:

Merge Dataframe - column multi-index

其中df1和df2是concat。

1 个答案:

答案 0 :(得分:3)

指定keys时,axis=1的{​​{1}}参数支持此功能:

df1 = pd.DataFrame(np.random.random((4, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.random((4, 3)), columns=list('BDF'), index=[2, 3, 6, 7])

df = pd.concat([df1, df2], keys=['X', 'Y'], axis=1)

结果输出:

          X                                       Y                    
          A         B         C         D         B         D         F
0  0.654406  0.495906  0.601100  0.309276       NaN       NaN       NaN
1  0.020527  0.814065  0.907590  0.924307       NaN       NaN       NaN
2  0.239598  0.089270  0.033585  0.870829  0.882028  0.626650  0.622856
3  0.983942  0.103573  0.370121  0.070442  0.986487  0.848203  0.089874
6       NaN       NaN       NaN       NaN  0.664507  0.319789  0.868133
7       NaN       NaN       NaN       NaN  0.341145  0.308469  0.884074