Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在同一列上添加多个摘要_Python_Pandas - Fatal编程技术网

Python 在同一列上添加多个摘要

Python 在同一列上添加多个摘要,python,pandas,Python,Pandas,我有以下声明: print p.df.groupby(by="Sector").agg({"Average % Weight Port":"sum","Average % Weight Port":"mean"}) 这给了我: 平均重量百分比端口 扇区 现金0.16 非必需消费品9.36 主要消费品6.60 能源7.41 财务报表14.02 保健12.43 工业标准20.45 也就是只有一列。如何在一列中获得两个摘要统计信息 谢谢一个字典只能有一个与键关联的值,这样语法就不起作用了。要获得类

我有以下声明:

print p.df.groupby(by="Sector").agg({"Average % Weight Port":"sum","Average % Weight Port":"mean"})
这给了我:

平均重量百分比端口

扇区
现金0.16

非必需消费品9.36

主要消费品6.60

能源7.41

财务报表14.02

保健12.43

工业标准20.45

也就是只有一列。如何在一列中获得两个摘要统计信息


谢谢

一个字典只能有一个与键关联的值,这样语法就不起作用了。要获得类似的输出,还有两个其他选项:可以使用括号选择列,然后传递要应用的缩减操作列表:

>>> 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
或者您仍然可以使用字典,但使用操作列表作为值:

>>> df.groupby("sector").agg({"AWP": ["sum", "mean"]})
       AWP     
       sum mean
sector         
a       30   15
b       62   31
>>> df.groupby("sector").agg({"AWP": {"newsum": "sum", "newmean": "mean"}})
          AWP        
       newsum newmean
sector               
a          30      15
b          62      31
请注意,在最后一个版本中,您保留了有关聚合列名称的信息

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

>>> df.groupby("sector").agg({"AWP": ["sum", "mean"]})
       AWP     
       sum mean
sector         
a       30   15
b       62   31
>>> df.groupby("sector").agg({"AWP": {"newsum": "sum", "newmean": "mean"}})
          AWP        
       newsum newmean
sector               
a          30      15
b          62      31

使用
.groupby(“x”).agg({“ABC”:“sum”})