Должен передать Data Frame только с ошибкой логических значений? - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть фрейм данных с различными переменными с числовыми значениями (например, темп, скорость и т. Д.), На котором я пытаюсь запустить несколько фрагментов кода, таких как замена выбросов на среднее значение и создание диаграммы рассеяния.Тем не менее, я продолжаю получать сообщение об ошибке, на которое я ссылаюсь в заголовке ... Я не уверен, где я ошибаюсь, так как этот код работал на других фреймах данных.

Вот пример моего фрейма данных:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...