Как заполнить пропущенные значения в одном столбце на основе формы условия другого столбца, используя для циклов в pandas? - PullRequest
0 голосов
/ 11 марта 2020
weather_train=pd.DataFrame({
'site_id':[0,0,0,0,0,0,1,1,1,1,1],
'air_temperature': [25,22,'NaN',28,'NaN',30,45,'NaN',50,'Nan',24]
})
  • Когда site_id равно 0, мне нужно вычислить среднее значение air_temperature для site_id 0, а затем использовать среднее значение для заполнения пропущенных значений для air_temperature в site_id 0 .
  • Затем, когда site_id равен 1, мне нужно вычислить среднее значение air_temperature для site_id 1 и заполнить пропущенные значения для air_temperature в site_id 1.

Нужно сделать тот же процесс для cloud_coverage.

Может кто-нибудь помочь мне написать для l oop в pandas для этого?

1 Ответ

1 голос
/ 11 марта 2020

Нет необходимости в петлях. Просто используйте groupby().transform() для встроенной средней агрегации, заключенной в условное numpy.where:

weather_train['air_temperature'] = np.where(pd.isnull(weather_train['air_temperature']),
                                            weather_train.groupby(['site'])['air_temperature'].transform('mean'),    
                                            weather_train['air_temperature'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...