You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用groupby按Pclass分组,用组内众数填充Embarked缺失值并统计?

解决泰坦尼克号数据集分组填充缺失值并统计计数的问题

正确实现代码

import pandas as pd

# 读取数据集(替换为你的本地路径或已加载的DataFrame)
titanic_df = pd.read_csv("titanic.csv")

# 按Pclass分组,用每组Embarked列的众数填充缺失值
titanic_df['Embarked'] = titanic_df.groupby('Pclass')['Embarked'].transform(
    lambda x: x.fillna(x.mode()[0])
)

# 按Pclass分组,统计Embarked各值的数量并按升序排序输出
count_result = titanic_df.groupby('Pclass')['Embarked'].value_counts(ascending=True)
print(count_result)

你之前方法的问题分析

  • 第一种方法:fillna()无法直接搭配agg()使用,agg()是用于分组聚合计算的方法,而fillna()需要接收具体的填充值,两者语法逻辑不匹配,所以无法生效。
  • 第二种方法:x.mode()返回的是一个Series(当存在多个众数时会有多个值),fillna()需要传入标量值才能正确填充;另外,apply()返回的是分组后的结果集合,无法直接映射回原DataFrame的对应行,应该用transform()来保证填充后的值对应到原数据的每一行。

内容的提问来源于stack exchange,提问作者Vanshika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:53:07