Pandas提供了使用reorder_index函数对索引进行重新排序的功能:
pandas.DataFrame({"A" : [1, 2, 3], "B" : [4,5,6], "C" : [7,8,9]}).set_index(["A", "B"]).reorder_levels(["B", "A"])然而,它似乎不适用于单索引DataFrames:
pandas.DataFrame({"A" : [1, 2, 3], "B" : [4,5,6]}).set_index("A").reorder_levels(["A"])我是不是做错了什么?
PS :我知道只用一个索引来重新排序索引是没有意义的,但这是一种边界效应,为了代码清晰,我通常倾向于避免不必要的if语句。
发布于 2020-11-30 20:38:55
执行以下操作相当于重新排序:
import pandas as pd
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9]}).set_index(["A", "B"])
print(df.reset_index().set_index(['B', 'A']))输出
C
B A
4 1 7
5 2 8
6 3 9而且它只使用一个索引:
odf = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]}).set_index("A")
print(odf)输出
B
A
1 4
2 5
3 6https://stackoverflow.com/questions/65072781
复制相似问题