如何按1-337的索引序号重新排序Pandas列?
解决方案
你手里的是pandas Series对象,Python内置的sorted()方法只会对Series的数值进行排序,而非按索引排序,所以达不到你的需求。用下面两种方法就能按索引1到337重新排序:
方法1:按索引排序(直接整理现有索引)
先从你的数据结构中提取出Series对象(假设数据存在变量data里):
# 从列表中的元组取出目标Series series = data[0][1] # 按索引升序排列 sorted_series = series.sort_index()
如果原Series的索引刚好是1到337的乱序,执行后就会得到严格按1到337排列的结果。
方法2:重新索引(强制对齐1到337序列)
如果需要严格确保结果是1到337的顺序,哪怕原数据存在索引缺失(你的数据长度为337,大概率不存在),可以用reindex方法:
series = data[0][1] # 生成1到337的索引范围,强制对齐排序 sorted_series = series.reindex(range(1, 338))
这个方法会直接按照1、2、3…337的顺序生成结果,若原Series中某索引不存在,对应位置会填充NaN。
内容的提问来源于stack exchange,提问作者Sultan1011
相关产品推荐
相关产品推荐

