问题描述:

As per Pandas 0.19.2 documentation, I can provide keys argument to create a resulting multi-index DataFrame. An example (from pandas documents ) is :

result = pd.concat(frames, keys=['x', 'y', 'z'])

How would I concat the dataframe so that I can provide the keys at the column level instead of index level ?

What I basically need is something like this :

where df1 and df2 are to be concat.

网友答案:

This is supported by keys parameter of pd.concat when specifying 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)

The resulting output:

          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
相关阅读:
Top