Как оставить только значения int64 в Series Pandas
Есть ряд элементов:
s = pd.Series([1, 'halva', 1.10, -20])
Как оставить только целочисленные значения?
Нашел вот такую команду, но она для датафреймов: df.select_dtypes(include=int64)
Ответы (2 шт):
Автор решения: hedgehogues
→ Ссылка
Очевидно, как:
import pandas as pd
import numpy as np
s = pd.Series([np.int64(1), 'halva', 1.10, -20])
df = pd.DataFrame(s)
df[df[0].apply(lambda el: type(el) == np.int64)]
Но следует быть внимательынм с типами, как сказал @MaxU
Автор решения: MaxU
→ Ссылка
Попробуйтк так:
In [24]: res = s[s.map(lambda x: isinstance(x, (int, np.integer)))]
результат:
In [25]: res
Out[25]:
0 1
3 -20
dtype: object
PS в функцию isinstance(var, type) в качестве второго параметра можно передавать кортеж с типами данными - тогда переменная будет проверяться последовательно на переданные в кортеж типы данных.
Пример:
res = s[s.map(lambda x: isinstance(x, (int, np.int32, int64)))]