使用group by时为何出现null值?亚马逊畅销书数据集案例
问题原因及解决办法
核心原因
你在使用groupby分组后,没有对非分组字段(比如User Ratings和全局均值字段)指定聚合逻辑,导致pandas无法确定如何处理这些字段,最终返回null值:
- 对于
User Ratings:每个分组下包含多条数据,直接保留该字段的话,pandas无法确定要取哪一个值,因此填充null; - 对于全局均值字段:它是你计算后添加的常量字段,分组时如果没指定聚合方式(比如取第一个值、保持不变),pandas同样会返回null。
解决方法
在groupby时通过agg()方法明确每个字段的聚合逻辑,示例代码如下:
# 假设你之前已经计算好全局均值并添加为mean_reviews字段 grouped_df = df.groupby('Category').agg( 分组评论均值=('Reviews', 'mean'), 分组评分均值=('User Ratings', 'mean'), 全局评论均值=('mean_reviews', 'first') # 全局均值每个分组都一致,取第一个值即可 )
这样处理后,分组结果里就不会出现null值了。
内容的提问来源于stack exchange,提问作者TANNU _
相关产品推荐
相关产品推荐

