2017-02-14 104 views
2

根据Pandas 0.19.2文档,我可以提供参数来创建生成的多索引DataFrame。 (来自熊猫文档)的一个例子是:大熊猫在列级连接数据帧时添加键

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

我怎么会Concat的数据帧,这样我可以在列级,而不是指数层面提供的钥匙?

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

Merge Dataframe - column multi-index

其中DF1和DF2是要CONCAT。

回答

3

这通过pd.concatkeys参数,指定axis=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