Знаю, что метод fillna()
может использоваться для заполнения NaN в полном кадре данных.Заполните NaN средним значением для группы для каждого столбца
df.fillna(df.mean()) # fill with mean of column.
Как ограничить средний расчет группой (и столбцом), где находится NaN.
Exemple:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': pd.Series([1,1,1,2,2,2]),
'b': pd.Series([1,2,np.NaN,1,np.NaN,4])
})
print df
Входной
a b
0 1 1
1 1 2
2 1 NaN
3 2 1
4 2 NaN
5 2 4
Выход (после того, как GroupBy ('а') & заменить NaN от средней группы)
a b
0 1 1.0
1 1 2.0
2 1 1.5
3 2 1.0
4 2 2.5
5 2 4.0
Извините, вы спрашиваете конкретно для вывода здесь? – EdChum
Этот результат является всего лишь примером, но, скажем, у вас много NaNs в разных других столбцах b, c, d и т. Д. –
В будущем было бы полезно публиковать ваши полные требования по своему усмотрению, и это влияет на ответы – EdChum