python - 如何用与 B 列相关的平均值替换 A 列中的 NaN 值?

标签 python pandas

我正在研究著名的Titanic dataset 。 我正在尝试使用 Avg_Age_byTitle 填充 X.Age.isna() NaN 值,这是我使用 X.groupby('Name').mean( 计算得出的)['年龄']

Avg_Age_byTitle =
    Name
     Capt            70.000000
     Col             58.000000
     Don             40.000000
     Dr              42.000000
     Jonkheer        38.000000
     Lady            48.000000
     Major           48.500000
     Master           4.574167
     Miss            21.773973
     Mlle            24.000000
     Mme             24.000000
     Mr              32.368090
     Mrs             35.898148
     Ms              28.000000
     Rev             43.166667
     Sir             49.000000
     the Countess    33.000000
    Name: Age, dtype: float64

我尝试了这个 X.Age[Avg_Age_byTitle[X.Name[ X.Age.isna()]]] ,它返回 series ,其中 Age 作为索引,NaN 作为值(value)观。我做错了什么?

最佳答案

您需要的 IIUC:

df['Age'] = df.groupby('Pclass')['Age'].apply(lambda x: x.fillna(x.mean())).round(1)

这会根据 Pclass 组的平均值填充 Age 中的 NaN。

关于python - 如何用与 B 列相关的平均值替换 A 列中的 NaN 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54736060/

相关文章:

c++ - 将 SWIG 与 C++ 结合使用

python - Pandas Pytables 警告和性能缓慢

python - 计算每天的交易实例 pandas 数据框

python - pd.qcut 的值为 inf(无穷大) ValueError : Bin edges must be unique:

python - 使用 python mindom 读取具有不同编码的 XML

python - GAE 应用程序的基于角色的授权机制

python - 错误 :AttributeError: 'NoneType' object has no attribute 'user_is_member'

python - 使用 pd.read_clipboard 时如何处理列名中有空格?

Python:如何为单个迹线添加辅助 x 轴?

java - 使用 Java 检索 python 脚本的输出