我正在尝试将多索引数据帧复制到另一个数据帧,但是,它无法以某种方式工作。这是玩具的例子。
arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']), \
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
df = pd.DataFrame(np.random.randn(8, 4), index=arrays)
mindx = df.index.set_names(['X', 'Y'])
df = df.set_index(mindx)
0 1 2 3
X Y
bar one -2.327132 -0.119892 -0.288562 0.767718
two -0.056876 -0.105477 1.012807 -0.088878
baz one 1.661728 0.924212 -0.618278 0.119823
two 1.131492 -0.857924 0.711160 -0.029915
foo one 0.895299 -0.605197 0.227541 1.892720
two -0.203198 0.507463 -1.573138 1.052957
qux one -0.751430 1.871923 0.359925 -2.157044
two -0.924937 -1.830958 0.934699 0.909292
现在,我想将此数据帧分配给另一个以这种方式初始化的多索引数据帧:
my_index = pd.MultiIndex(levels=[[],['one', 'two']],\
labels=[[],[]],\
names=[u'X', u'Y'])
df_mult = pd.DataFrame(index=my_index, columns=df.columns)
要复制,我使用以下命令,它什么都不做。我无法理解为什么会这样?
df_mult.loc[pd.IndexSlice[:, 'one'], :] = df.copy()
任何帮助将不胜感激。提前致谢。