繁体   English   中英

Pandas:按功能分组和聚合

[英]Pandas: Group by and aggregation with function

假设我有一个具有以下值的数据框:

    name     start    end     description
0    ag       20       30       None
1    bgb      21       111      'a'
2    cdd      31       101      None
3    bgb      17       19       'Bla'
4    ag       20       22       None

我想按名称groupby ,然后获得( end - start )值的平均值。

我可以使用meandf.groupby(['name'], as_index=False).mean()

但是我怎样才能给均值函数减去两列(最后 - 首先)?

您可以减去列,然后按列df['name']分组:

df1 = df['end'].sub(df['start']).groupby(df['name']).mean().reset_index(name='diff')
print (df1)
 name  diff
0   ag     6
1  bgb    46
2  cdd    70

新列diff另一个想法:

df1 = (df.assign(diff = df['end'].sub(df['start']))
         .groupby('name', as_index=False)['diff']
         .mean())
print (df1)
  name  diff
0   ag     6
1  bgb    46
2  cdd    70

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM