Pandas:执行多个复杂聚合的惯用方法?

2024-04-18 00:56:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我的表格如下:

ID   SCORE
A    NaN
A    NaN
B    1
B    2
C    5

我想要以下输出:

ID    SUM_SCORE   SIZE_SCORE
A     NaN         2
B     3           2
C     5           1

因为我想保留NaN的,所以我需要使用sum(min_count=1)。因此,到目前为止,我有以下几点:

grp = df.groupby('ID')
sum_score = grp['SCORE'].sum(min_count=1).reset_index()
size_score = grp['SCORE'].size().reset_index()
result = pd.merge(sum_score, size_score, on=['ID'])

这感觉真的很不雅。有没有更好的方法来获得我想要的结果


1条回答
网友
1楼 · 发布于 2024-04-18 00:56:53

您可以使用以下方法进行聚合:

df_agg = df.groupby("ID", as_index=False).agg(["sum","count"])

# rename your columns
df_agg.columns = ["ID","SUM_SCORE", "SIZE_SCORE"]

相关问题 更多 >

    热门问题