我有一个带有多索引的熊猫数据框(最终将写入格式化的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'不支持可变操作。
任何建议都表示赞赏。
答案 0 :(得分:4)
您可以reindex
您的数据(框架/系列),如下所示:
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