.groupby和.fillna中位数

时间:2018-11-01 00:51:50

标签: python pandas dataframe

# 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。

难道不把作业搞混吗?

预先感谢您的解释。

2 个答案:

答案 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)