熊猫分层列

时间:2016-07-06 15:29:50

标签: python pandas dataframe

假设我有两个数据帧,是否可以按列连接它们,但是第二个数据帧在连接数据帧中显示为单个列?

我正在寻找:

df_A:
C1 C2 C3
1  2  3
11 22 33

df_B:
D1 D2 D3
3  4  5
33 44 55

Concatenated:
C1 C2 C3 df_B
         D1   D2   D3
1  2  3  3    4    5
11 22 33 33   44   55

1 个答案:

答案 0 :(得分:3)

您可以构建MultiIndex以创建具有所需外观的DataFrame:

import pandas as pd
df_A = pd.DataFrame([(1,2,3), (11,22,33)], columns=['C1', 'C2', 'C3'])
df_B = pd.DataFrame([(3,4,5), (33,44,55)], columns=['D1', 'D2', 'D3'])
result = pd.concat([df_A, df_B], axis=1)
result.columns = pd.MultiIndex.from_tuples([(col,'') for col in df_A] 
                                           + [('df_B', col) for col in df_B])
print(result)

产量

   C1  C2  C3 df_B        
                D1  D2  D3
0   1   2   3    3   4   5
1  11  22  33   33  44  55