You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写按指定列分组排序的透视表DataFrame函数时遇返回值错误,求简洁解决方案

解决你的透视表函数问题

嘿,我马上就能帮你修复这个问题!你遇到的核心问题是**inplace=True的误用**——当你在sort_values里用这个参数时,它会直接修改当前的DataFrame,并且返回None,这就导致你的retDF变成了None,自然不符合返回DataFrame的要求。

按照教授说的一行代码搞定的思路,正确的写法非常简洁,只需要去掉inplace=True,并明确指定降序排序(默认是升序,所以要加ascending=False):

def createPivot(theData, groupBy, orderBy):
    return theData.groupby(groupBy).mean().reset_index().sort_values(by=orderBy, ascending=False)

代码分解解释:

  • theData.groupby(groupBy).mean():按指定列分组,计算每组所有列的均值(其中就包含你需要用来排序的orderBy列的均值)
  • .reset_index():把分组用的groupBy列从索引变回普通数据列,这样结果里会保留分组列的内容
  • .sort_values(by=orderBy, ascending=False):按照orderBy列的均值降序排序,这里不使用inplace=True,所以方法会直接返回排序后的新DataFrame,我们直接return这个结果就完美符合要求了

这样写既满足了所有需求,又确实是一行代码完成核心逻辑,完全符合教授的要求~

内容的提问来源于stack exchange,提问作者user15592619

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 13:53:12