如何将pandas groupby分组计数结果作为新列添加到原DataFrame中
问题原因
你遇到的NaN问题是因为groupby.count()返回的Series的索引是date_column的取值,而原始DataFrame的索引是默认的整数索引,直接赋值时Pandas会按照索引对齐逻辑匹配值,两者索引不匹配所以全部填充为NaN。
解决方案
方案1:基于你已经计算好的统计结果赋值
直接用原始DataFrame的date_column列映射统计结果即可:
df['freq'] = df['date_column'].map(data)
方案2:一步完成统计+新增列(更简洁)
可以直接用transform方法,不需要单独先计算统计变量,transform会将聚合后的结果还原到原始分组对应的每一行,完全匹配原始DataFrame的行数:
df['freq'] = df.groupby('date_column')['seizure_type'].transform('count')
内容的提问来源于stack exchange,提问作者Peter Coles
相关产品推荐
相关产品推荐

