首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas在同一列中添加多个摘要

Pandas在同一列中添加多个摘要
EN

Stack Overflow用户
提问于 2015-10-06 05:52:50
回答 1查看 2.3K关注 0票数 2

我有以下声明:

代码语言:javascript
复制
print p.df.groupby(by="Sector").agg({"Average % Weight Port":"sum","Average % Weight Port":"mean"})

这给了我:

平均百分比权重端口

扇区

现金0.16

消费者可自由支配9.36

Consumer Staples 6.60

能源7.41

金融股14.02

医疗保健12.43

工业指数20.45.

也就是只有一列。如何在一列上获得两个汇总统计信息?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-10-06 06:14:15

一个字典只能有一个与键相关联的值,因此语法将不起作用。为了获得类似的输出,脑海中还会出现另外两个选项:您可以使用括号选择列,然后传递要应用的缩减操作的列表:

代码语言:javascript
复制
>>> df = pd.DataFrame({"sector": ["a","a","b","b"], "AWP": [10,20,30,32]})
>>> df.groupby("sector")["AWP"].agg(["sum", "mean"])
        sum  mean
sector           
a        30    15
b        62    31

或者,您可以仍然使用字典,但使用操作列表作为值:

代码语言:javascript
复制
>>> df.groupby("sector").agg({"AWP": ["sum", "mean"]})
       AWP     
       sum mean
sector         
a       30   15
b       62   31

请注意,在这个最新版本中,您保留了有关聚合列名称的信息。

如果需要不同名称的列,可以添加一个.rename(columns={"sum": "s2"}),或使用字典作为值:

代码语言:javascript
复制
>>> df.groupby("sector").agg({"AWP": {"newsum": "sum", "newmean": "mean"}})
          AWP        
       newsum newmean
sector               
a          30      15
b          62      31
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32958526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档