.groupby & .fillna с медианой - PullRequest
       6

.groupby & .fillna с медианой

0 голосов
/ 01 ноября 2018
# 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))

Мне неясно, как мы можем назначить столбец, ["age"] из модифицированного (сгруппированного) df by_sex_class оригинальному (не сгруппированному) df, титаническому.

Разве задания не будут перепутаны?

Заранее спасибо за ваши объяснения.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Я рекомендую использовать это

df['age'].fillna(df.groupby(["sex","pclass"])['age'].transform('median'),inplace=True)
0 голосов
/ 01 ноября 2018

Новые значения сопоставляются с исходным фреймом данных с помощью индекса (при группировке вы сохраняете исходный индекс).

df['age'] = df.groupby(["sex","pclass"])['age'].transform(lambda x: x.fillna(x.median()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...