如何在Pandas的DataFrame中反转range生成的索引取值顺序
问题原因
你当前给DataFrame设置索引时使用的range(10, 0, -1)本身就是生成10到1的降序整数序列,所以索引自然是倒序显示。
解决方法
只需要修改索引赋值的代码即可,有两种常用实现方式:
- 方式1:直接赋值正序的range序列
Pandas的range遵循左闭右开规则,要生成1~10的整数,起始值设为1,结束值设为11即可:ConditionData.index = range(1, 11) - 方式2:用reset_index重置索引
如果你已经生成了倒序索引的DataFrame,不想修改之前的赋值代码,可以用重置索引的方式实现:# drop=True代表删除原有旧索引 ConditionData = ConditionData.reset_index(drop=True) # 把默认从0开始的索引整体加1,得到1~10的正序索引 ConditionData.index += 1
修正后的完整可运行代码
import pandas as pd # 注意:你原有代码的第一行末尾遗漏了右括号,这里补充完整 data = pd.DataFrame(pd.read_csv("data.csv")) ConditionData = data.loc[:,['Country/Region','Confirmed']].sort_values(by="Confirmed",ascending=False).head(10) ConditionData.index = range(1, 11) print(ConditionData)
运行后的输出结果会保留你原有按确诊数降序排列的数据顺序,同时索引显示为1~10的正序。
内容的提问来源于stack exchange,提问作者titan
相关产品推荐
相关产品推荐

