熊猫函数sort_value问题,要求"by",但给出时,说出意外的论点



我正在尝试在转换数据帧后对其进行排序。Transpose运行良好。当试图对值进行排序时,它会显示

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命令正常工作。在循环中运行时,会发生这种情况

这是我见过的最奇怪的一次。任何人都可以帮助我理解这一点,并向我介绍解决方案

我看到您对列进行排序只是为了获取前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))

也许您收到了一个错误,因为您选择的df已成为一个系列?以下内容应该可以解决这个问题。

top = data[[c]].sort_values(
by=c,
axis=0,
ascending=False,
inplace=False,
kind='quicksort',
na_position='last'
).head(30)

最新更新