我有一个带有多重索引的 panda 数据框(最终将写入格式化的 Excel 文件),类似于以下内容:
first second
one bar -0.292975
baz -0.176312
foo -0.458917
qux 0.966987
two bar 1.615486
baz 0.875479
foo -3.092365
qux -2.348825
我想指定第二个索引的顺序(注意baz
始终位于底部),如下所示:
first second
one bar -0.292975
foo -0.458917
qux 0.966987
baz -0.176312
two bar 1.615486
foo -3.092365
qux -2.348825
baz 0.875479
我尝试像这样对数据帧进行切片,但它不会改变输出:
myDF.loc[(slice(None),['bar','foo', 'qux', 'baz']),:]
我尝试更改索引本身
myDF.index.levels[1] = pd.Index(['bar','foo', 'qux', 'baz'])
但出现错误:
TypeError: 'FrozenList' does not support mutable operations.
如有任何建议,我们将不胜感激。
最佳答案
您可以重新索引
您的数据(帧/系列),如下所示:
new_index = ['bar','foo', 'qux', 'baz']
v.reindex(new_index, level=1)
#first second
#one bar -0.292975
# foo -0.458917
# qux 0.966987
# baz -0.176312
#two bar 1.615486
# foo -3.092365
# qux -2.348825
# baz 0.875479
#Name: value, dtype: float64
关于python - 在 python pandas 中指定多重索引的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43668444/