Pandas Groupby 应用函数计算大于零的值
我按以下方式使用 groupby 和 agg:
df.groupby('group')['a'].agg({'mean' : np.mean, 'std' : np.std})
我还想计算同一列 ['a'] 中大于零的值
下面一行按照我的意愿进行计数,
sum(x > 0 for x in df['a'])
但是我在申请 groupby 时无法正常工作。
以下是我尝试将 pandas 计算应用于 groupby 的示例:
df.groupby('group')['a'].apply(sum(x > 0 for x in df['a']))
但我收到一条错误消息: AttributeError: 'numpy.int32' 对象没有属性 'module'
有人可以建议如何做到这一点吗?
最佳答案
来自评论的回答:
.agg({'pos':lambda ts: (ts > 0).sum()}) # – behzad.nouri Mar 31 at 0:00
这是我对积压的未回答问题的贡献:) 感谢 behzad.nouri
2020 年更新 在最新的 pandas 版本中,您需要执行以下操作:
.agg(pos=lambda ts: (ts > 0).sum())
否则会出现如下错误:
SpecificationError: nested renamer is not supported
关于python - Pandas Groupby 应用函数来计算大于零的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22751498/