从数据框构造多索引数据框

时间:2018-07-23 11:37:53

标签: python pandas dataframe

假设x = pd.DataFrame({'a': range(0,3), 'b': range(1, 4)})y = pd.DataFrame({'a': range(-1,2), 'b': range(2, 5)})。我想构造一个数据框t = pd.DataFrame('x': x, 'y': y)。预期结果是一个多索引数据帧。但是,一条错误消息告诉我ValueError: If using all scalar values, you must pass an index

import panda as pd
x = pd.DataFrame({'a': range(0,3), 'b': range(1, 4)})
y = pd.DataFrame({'a': range(-1,2), 'b': range(2, 5)}) 
t = pd.DataFrame('x': x, 'y': y)

1 个答案:

答案 0 :(得分:2)

我相信索引中axis=0的索引需要concat(忽略了错误MultiIndex

t = pd.concat({'x': x, 'y': y})

或者:

t = pd.concat([x, y], keys=('x','y'))

print (t)

     a  b
x 0  0  1
  1  1  2
  2  2  3
y 0 -1  2
  1  0  3
  2  1  4

或按列中axis=1MultiIndex的列:

t = pd.concat({'x': x, 'y': y}, axis=1)
t = pd.concat([x, y], keys=('x','y'), axis=1)

print (t)
   x     y   
   a  b  a  b
0  0  1 -1  2
1  1  2  0  3
2  2  3  1  4