Как приписать среднее значение, когда функция равна нулю?

#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())