Приведенный ниже код фильтрует мой Dataframe для 5 строк с Замбией в качестве названия страны.
df2.loc[df2['Country Name'] == 'Zambia'].head(5)
Country Name Year CO2
262 Zambia 1960 NaN
526 Zambia 1961 NaN
790 Zambia 1962 NaN
1054 Zambia 1963 NaN
1318 Zambia 1964 0.949422
Далее показано среднее значение CO2 в Замбии.
df2.groupby('Country Name', as_index=False)['CO2'].mean().loc[df2['Country Name'] == 'Zambia']
Country Name CO2
262 Zambia 0.484002
Наконец, я сейчас пытаюсь заполнить все значения NaN средним значением. Обратите внимание, что фактически заполняется только первое значение NaN. Почему и как я могу убедиться, что все значения NaN заполнены средним значением по каждой стране?
df2['CO2'] = df2['CO2'].fillna(value = df2.groupby('Country Name', as_index=False)['CO2'].mean()['CO2'])
Country Name Year CO2
262 Zambia 1960 0.484002
526 Zambia 1961 NaN
790 Zambia 1962 NaN
1054 Zambia 1963 NaN
1318 Zambia 1964 0.949422