#python #pandas #numpy
#python #pandas #numpy
Вопрос:
Я хотел бы ввести среднее значение, где функция равна нулю.
Я пытался:
# Let's impute other NAs with mean value
for f in data:
if data[f].isnull().sum() / data.shape[0] < threshold: np.isnan(data[f]) = data[f].mean()
… что вызывает ошибку:
Ошибка синтаксиса: не удается назначить вызов функции
Я также пытался
data[f][np.isnan(data[f])] = data[f].mean()
но это еще большая путаница.
Помощь была бы признательна.
Ответ №1:
Вы можете использовать DataFrame.fillna
для непосредственного заполнения nan. Он создает фрейм данных, заменяющий nan
значение, указанное в круглых скобках.
df.fillna(df.mean())
вернет новый фрейм данных, поэтому вам придется написать df=df.fillna(df.mean())
, чтобы сохранить его.
Комментарии:
1. Вычисления занимают ужасно много времени.
2. Что ж, попробуйте сгруппировать свои данные, если они слишком большие. Вы можете попробовать:
df = df.groupby(['id']).fillna(df.mean())