首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有一个索引的pandas.reorder_levels

只有一个索引的pandas.reorder_levels
EN

Stack Overflow用户
提问于 2020-11-30 19:32:59
回答 1查看 26关注 0票数 0

Pandas提供了使用reorder_index函数对索引进行重新排序的功能:

代码语言:javascript
复制
pandas.DataFrame({"A" : [1, 2, 3], "B" : [4,5,6], "C" : [7,8,9]}).set_index(["A", "B"]).reorder_levels(["B", "A"])

然而,它似乎不适用于单索引DataFrames:

代码语言:javascript
复制
pandas.DataFrame({"A" : [1, 2, 3], "B" : [4,5,6]}).set_index("A").reorder_levels(["A"])

我是不是做错了什么?

PS :我知道只用一个索引来重新排序索引是没有意义的,但这是一种边界效应,为了代码清晰,我通常倾向于避免不必要的if语句。

EN

回答 1

Stack Overflow用户

发布于 2020-11-30 20:38:55

执行以下操作相当于重新排序:

代码语言:javascript
复制
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']))

输出

代码语言:javascript
复制
     C
B A   
4 1  7
5 2  8
6 3  9

而且它只使用一个索引:

代码语言:javascript
复制
odf = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]}).set_index("A")
print(odf)

输出

代码语言:javascript
复制
   B
A   
1  4
2  5
3  6
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65072781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档