# Create a groupby object: by_sex_class
by_sex_class = titanic.groupby(["sex","pclass"]).count()
# Write a function that imputes median
def impute_median(series):
return series.fillna(series.median())
# Impute age and assign to titanic['age']
titanic.age = by_sex_class["age"].transform(impute_median)
# Print the output of titanic.tail(10)
print(titanic.tail(10))
我不清楚如何将修改后的(分组的)df by_sex_class中的[“ age”]列分配给原始的(未分组的)ditanic。
难道不把作业搞混吗?
预先感谢您的解释。
答案 0 :(得分:0)
新值通过索引与原始数据框匹配(当您分组时,仍保留原始索引)。
df['age'] = df.groupby(["sex","pclass"])['age'].transform(lambda x: x.fillna(x.median()))
答案 1 :(得分:0)
我将建议使用
df['age'].fillna(df.groupby(["sex","pclass"])['age'].transform('median'),inplace=True)