繁体   English   中英

在列上分组 pandas DataFrame 并对其求和,同时保留求和观察的数量

[英]Group pandas DataFrame on column and sum it while retaining the number of sumed observations

我有一个 pandas Dataframe 看起来像这样:

import pandas as pd
df = pd.DataFrame({'id':[1, 1, 2, 2], 'comp': [-0.10,0.20,-0.10, 0.4], 'word': ['boy','girl','man', 'woman']})

我想在id上对 dataframe 进行分组,并计算相应comp的总和,并获得一个名为n_obs的新列,该列跟踪汇总了多少行(id)。

我尝试使用df.groupby('id').sum()但这并没有产生我想要的结果。

我想要以下表格中的 output:

id   comp   n_obs
1    0.1    2
2    0.3    2

关于如何执行此操作的任何建议?

您可以将.groupby().agg() ) 一起使用:

df.groupby("id").agg(comp=("comp", "sum"), n_obs=("id", "count"))

这输出:

    comp  n_obs
id
1    0.1      2
2    0.3      2

暂无
暂无

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

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