#python #pandas #dataframe #jupyter-notebook #fillna
#python #pandas #фрейм данных #jupyter-ноутбук #заполненная
Вопрос:
У меня есть фрейм данных со следующими данными:
Я хочу заменить нулевые значения каждой страны соответствующими средними значениями.
Например, я вычислил средние значения с помощью следующего кода:
df2=df.groupby('country').mean()
Я должен заменить нулевые значения в df соответствующим средним значением, присутствующим в df2.
Если среднее значение равно NaN, то оставьте Nan, иначе значение.
Я пробовал использовать приведенный ниже код, но потерпел неудачу: 1. Выходные данные по-прежнему имеют значения NaN:
2.
df['retail'] = df['retail'].replace('',df.groupby('country').mean())
Ответ №1:
Чтобы заменить нули на среднее значение столбца, вы должны сделать:
df['transit_stations'] = df['transit_stations'].fillna(df2.groupby('country')['transit_stations'].transform('mean'))
Комментарии:
1. Но проблема с приведенным выше кодом заключается в том, что он не заменяет нулевые значения средним значением соответствующей страны. Я ожидаю заменить нулевое значение одного фрейма данных на среднее значение поиска соответствующей страны
2. Я исправил свой ответ выше после вашего разъяснения
3. Если вы не берете среднее значение из другого DF, измените df2 на df