Значение серии от объекта до int? - PullRequest
0 голосов
/ 15 апреля 2019

Как изменить значения серии с объектов на целые?

Проблема:

df[df[“Column”] == int] работает, но df[df[“Column”].between(int1,int2, inclusive = True) не работает.

Я полагаю, что это потому, что некоторые значения в серии являются целыми, но некоторые являются объектами типа "2005 / xb9"

1 Ответ

0 голосов
/ 15 апреля 2019

Я считаю, что причина этого заключается в том, что большинство классов объектов имеют оператор ==, но не каждый тип объекта имеет метод .between. Чтобы решить эту проблему, перед тем как выполнить операцию, убедитесь, что тип соответствует вашему.

Например, если вам нужно, чтобы df ["Column"] был целым числом для использования метода .between, вы можете использовать функцию type() и продолжать работу, только если вы думаете, что это тот тип.

if type(df["Column"]) == 'int':
    df[df[“Column”].between(int1,int2, inclusive = True)]

Если бы вы вместо этого хотели отфильтровать вещи из набора, я бы использовал функцию filter(), используя функцию, которая возвращает true, если вы хотите получить тип и передать его в серии.

def isInt(element):
    return type(element) == 'int'

filter(isInt, df)

#do what you want after this assuming all elements are ints
...