首页 > 解决方案 > sort_value pandas 函数的问题,要求“by”,但给出时,会说意外的参数

问题描述

我试图在转置后对我的数据框进行排序。转置进展顺利。尝试对值进行排序时,它说

sort_values() 缺少 1 个必需的位置参数:'by'

当我提到 by 论点时,它说

sort_values() 得到了一个意外的关键字参数“by”

这是我尝试应用 sort_values 的数据框

top_dict = {}
for c in data.columns:
  top = data[c].sort_values(axis=0, ascending=False, inplace=False, kind='quicksort', na_position='last').head(30)
  top_dict[c]= list(zip(top.index, top.values))

奇怪的是,在没有 for 循环的情况下, sort_value 与 by command 配合得很好。在循环运行时,会发生这种情况

这是我见过的最奇怪的。任何人都可以帮助我理解这一点并指出我的解决方案

标签: pythonpandas

解决方案


我看到您对一列进行排序只是为了获取前 30 个值(也就是 30 个最大值)。我可以建议Series.nlargest做同样的事情,但以稍微更高性能的方式吗?

top_dict = {}
for c in data.columns:
    top = data[c].nlargest(30)
    top_dict[c]= list(zip(top.index, top.values))

推荐阅读