Python Pandas - 使用特定顺序重新索引数据框

标签 python pandas dataframe indexing

我有一个 pandas 数据框,我想使用特定顺序对索引重新排序。

from random import randint
import pandas as pd
days = ["Tuesday", "Thursday", "Monday", "Wednesday"]
df = pd.DataFrame({"Value": [randint(0, 9) for i in range(len(days)*2)]}, 
                  index=[day for day in days for i in range(2)])
myorder = ["Monday", "Tuesday", "Wednesday", "Thursday"]

具体订单以列表myorder通知为准

最佳答案

使用CategoricalIndex + sort_index :

df.index = pd.CategoricalIndex(df.index, categories=myorder, ordered=True)
df = df.sort_index()
print (df)
           Value
Monday         3
Monday         3
Tuesday        4
Tuesday        3
Wednesday      3
Wednesday      4
Thursday       5
Thursday       2

关于Python Pandas - 使用特定顺序重新索引数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48804909/

相关文章:

python - 如何通过 python API 将 json/pickle 文件转储和读取到 Google Drive?

python - 如何捕获 SQLAlchemy 上的特定数据库错误

python - 如何在同一张表中使用第一级和第二级聚合进行透视

python - Pandas 数据框 - 如何消除列中的重复单词

python - 有没有办法从 ElementTree 元素中获取行号

python - 如何通过另一个数据框中的键过滤数据框中的列

python - Pandas - 使用 groupby 滚动平均值

python - 迭代数据帧时所做的更改不会保存

python - 如何在 Pandas 中获得连续滚动平均值?

python-3.x - 根据列将多个无标题列中的值替换为 0、1、2