DataFrame列排序失效求助:调用sort_values降序排序无效果
pandas DataFrame按Count列降序排序无效的解决方法
问题出在sort_values方法的使用上:这个方法默认不会修改原DataFrame,而是返回一个排序后的新对象。你当前的代码只是调用了排序,但没有把排序结果保存下来,所以后续操作还是基于未排序的原DataFrame。
两种可行的修改方案:
方案1:使用inplace=True参数直接修改原DataFrame
new = pandas.DataFrame(d.items(), columns=['Trait', 'Count']) new.sort_values('Count', ascending=False, inplace=True) # 新增inplace=True参数 new['Percent'] = (new.Count / 1000) * 100 print(new)
方案2:将排序后的结果重新赋值给new
new = pandas.DataFrame(d.items(), columns=['Trait', 'Count']) new = new.sort_values('Count', ascending=False) # 将排序结果覆盖原变量 new['Percent'] = (new.Count / 1000) * 100 print(new)
修改后,DataFrame会按Count列从高到低降序排列,Percent列也会对应排序后的行数据生成。
内容的提问来源于stack exchange,提问作者orange2piece
相关产品推荐
相关产品推荐

