У меня есть фрейм данных с различными переменными с числовыми значениями (например, темп, скорость и т. Д.), На котором я пытаюсь запустить несколько фрагментов кода, таких как замена выбросов на среднее значение и создание диаграммы рассеяния.Тем не менее, я продолжаю получать сообщение об ошибке, на которое я ссылаюсь в заголовке ... Я не уверен, где я ошибаюсь, так как этот код работал на других фреймах данных.
Вот пример моего фрейма данных:
import pandas as pd
df = pd.DataFrame({'temp': [.2, naN, .12],
'speed': [1, 1, 0],
'weekday': [1, 2, 3]})
Вот фактический код, который я использую (шаг № 1 просто импортирует его и работает нормально):
import pandas as pd
cars = pd.read_csv("C:/Users/Downloads/file.csv")
На шаге 2 у меня начинаются проблемы:
import numpy as np
outliers = []
outliers.append(cars[['temp', 'speed']])
for j in outliers:
upper_quartile = np.nanpercentile(cars[j], 75)
lower_quartile = np.nanpercentile(cars[j], 25)
iqr = upper_quartile - lower_quartile
upper_whisker = upper_quartile + 1.5*iqr
lower_whisker = np.maximum(lower_quartile - 1.5*iqr, 0)
cars[j] = np.where((cars[j] <= lower_whisker) |
(cars[j] >= upper_whisker), np.nan, cars[j])
Это должно заполнять выбросы NaN, но при запуске я получаю сообщение об ошибке фрейма булевых данных.То же сообщение об ошибке при запуске следующего бита для замены этих пропущенных значений на среднее значение столбца:
for v in outliers:
cars[v].fillna(cars[v].mean(), True)