为了账号安全,请及时绑定邮箱和手机立即绑定

如何引用 Pandas 中 .agg() 函数创建的列

如何引用 Pandas 中 .agg() 函数创建的列

慕哥9229398 2024-01-24 16:17:34
我创建了使用Groupby()和的代码.agg(),以便新的 DataFrame 具有sum、mean和count中的值的列Total。test = df.groupby('Sector').agg({'Total': ['sum', 'mean', 'count']})该代码已运行并产生了必要的结果。但是当尝试使用降序对sort_values()列进行排序时sum。我遇到一个问题。test.sort_values('sum', axis="columns", ascending = False, inplace = True)它会给我输出: KeyError: 'sum'我似乎找不到一种方法来引用该.agg()函数创建的列。任何帮助将不胜感激。谢谢
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

Total在列中添加groupby避免MultiIndex列,第二个问题需要sortingby index,默认值是什么,所以应该删除:


test = df.groupby('Sector')['Total'].agg(['sum', 'mean', 'count'])

#if use inplace=True cannot assign values

test.sort_values('sum', ascending = False, inplace = True)

print (test)

#if omitted, you need assign

test = test.sort_values('sum', ascending = False)

print (test)

或者,如果需要在命名聚合中自定义列名称:

test = df.groupby('Sector').agg(sum1=('Total','sum'),

                                avg=('Total','mean'),

                                size=('Total','count'))

test.sort_values('sum1', ascending = False, inplace = True)

print (test)


查看完整回答
反对 回复 2024-01-24
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

用于test.columns查看列名称。然后使用您在sort_values.

您有多个索引列,这就是您的问题。重命名它们。

test.columns = ["sum", "mean", "count"]

或者使用multindexsort_values 中的列名称

.sort_values(('Total', 'sum'), ascending = False, inplace = True) #without axis='columns'



查看完整回答
反对 回复 2024-01-24
  • 2 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信