Вы можете просто использовать DataFrame.fillna
для nan
непосредственного заполнения :
In [27]: df
Out[27]:
A B C
0 -0.166919 0.979728 -0.632955
1 -0.297953 -0.912674 -1.365463
2 -0.120211 -0.540679 -0.680481
3 NaN -2.027325 1.533582
4 NaN NaN 0.461821
5 -0.788073 NaN NaN
6 -0.916080 -0.612343 NaN
7 -0.887858 1.033826 NaN
8 1.948430 1.025011 -2.982224
9 0.019698 -0.795876 -0.046431
In [28]: df.mean()
Out[28]:
A -0.151121
B -0.231291
C -0.530307
dtype: float64
In [29]: df.fillna(df.mean())
Out[29]:
A B C
0 -0.166919 0.979728 -0.632955
1 -0.297953 -0.912674 -1.365463
2 -0.120211 -0.540679 -0.680481
3 -0.151121 -2.027325 1.533582
4 -0.151121 -0.231291 0.461821
5 -0.788073 -0.231291 -0.530307
6 -0.916080 -0.612343 -0.530307
7 -0.887858 1.033826 -0.530307
8 1.948430 1.025011 -2.982224
9 0.019698 -0.795876 -0.046431
Строка документа fillna
говорит, что это value
должен быть скаляр или диктат, однако, похоже, он работает и с Series
. Если вы хотите передать диктовку, вы можете использовать df.mean().to_dict()
.
df.fillna(df.mean())
вернет новый фрейм данных, поэтому вам придется написать,df=df.fillna(df.mean())
чтобы сохранить его.df=df.fillna(df.mean())
тебя тоже можно было бы использоватьdf.fillna(df.mean(), inplace=True)
Пытаться:
источник
Примените к каждому столбцу среднее значение этих столбцов и заполните
источник
источник
Если вы хотите вменять пропущенные значения со средним значением и переходить от столбца к столбцу, тогда это будет вменять только среднее значение этого столбца. Это может быть немного более читабельным.
источник
Непосредственно используйте,
df.fillna(df.mean())
чтобы заполнить все нулевое значение среднимЕсли вы хотите заполнить нулевое значение средним значением этого столбца, вы можете использовать это
Предположим,
x=df['Item_Weight']
здесьItem_Weight
есть имя столбцаздесь мы присваиваем (заполняем нулевые значения х средним значением х в х)
Если вы хотите заполнить нулевое значение какой-либо строкой, используйте
вот
Outlet_size
название столбцаисточник
Другой вариант, кроме перечисленных выше:
Это менее элегантно, чем предыдущие ответы для среднего значения, но оно может быть короче, если вы хотите заменить пустые значения какой-либо другой функцией столбца.
источник
Панды: Как заменить значения NaN (
nan
) на среднюю (среднюю), медиану или другую статистику одного столбцаСкажите, что ваш DataFrame -
df
и у вас есть один столбецnr_items
. Это:df['nr_items']
Если вы хотите , чтобы заменить те
NaN
значения вашей колонкиdf['nr_items']
с средней частью колонны :Используйте метод
.fillna()
:mean_value=df['nr_items'].mean()
df['nr_item_ave']=df['nr_items'].fillna(mean_value)
Я создал новый
df
столбец с именемnr_item_ave
для хранения нового столбца соNaN
значениями, замененнымиmean
значением столбца.Вы должны быть осторожны при использовании
mean
. Если у вас есть выбросы, рекомендуется использоватьmedian
источник
использование класса предварительной обработки библиотеки sklearn
Примечание. В последней версии
missing_values
значение параметра изменяетсяnp.nan
сNaN
источник