我正在研究著名的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/