Я получаю неподдерживаемые типы операндов для | 'str' и 'bool' в приведенном ниже коде python3, и я не могу понять, почему? - PullRequest
0 голосов
/ 13 июля 2020

неподдерживаемые типы операндов для |: 'str' и 'bool' Я приложил снимок экрана ниже

train = train.drop(((train[train['pickup_latitude']<-90])|(train[train['pickup_latitude']>90])).index, axis=0)

введите описание изображения здесь

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Попробуйте:

import numpy as np

mask=np.logical_or(train['pickup_latitude'].lt(-90), train['pickup_latitude'].gt(90))

#or even better:
mask=train['pickup_latitude'].abs().gt(90)

train.drop(mask.loc[mask].index, inplace=True)
1 голос
/ 13 июля 2020

у вас есть ошибка в использовании скобок. fix:

train = train.drop((train[(train['pickup_latitude']<-90) | (train['pickup_latitude']>90)]).index, axis=0)

Обратите внимание на формат train[complex condition], а не train[condition1] | train[condition2], поскольку "train []" возвращает некоторый тип, который нельзя использовать "|" просто.

Более простой способ устранения нежелательных значений:

train=train.loc[(abs(train['pickup_latitude']))<=90]

он использует .loc вместо drop, что означает, что он действует на желаемые данные, а не исключить "плохие" данные. Вместо проверки сложного условия просто проверьте абсолютное значение столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...