假设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)
答案 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=1
中MultiIndex
的列:
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