在 pandas 系列对象中查找非整数值

sum*_*234 5 python-3.x pandas

如何在pandas系列对象中查找float、string等非整数值?

有一个像这样的系列对象,

a=(1.2,3,4,5,6,2,8,5,9) 
Run Code Online (Sandbox Code Playgroud)

我尝试过to_numeric,但这无助于识别float价值观。有没有办法检查integer值?

jez*_*ael 1

您可以用于list comprehension检查非整数值,如果type值是string并且integer

import pandas as pd

a=['a',3,4,5,6,2,8,5,9]

s = pd.Series(a)
print s
0    a
1    3
2    4
3    5
4    6
5    2
6    8
7    5
8    9
dtype: object

print [type(x) for x in s]
[<type 'str'>, <type 'int'>, <type 'int'>, <type 'int'>, <type 'int'>, <type 'int'>, <type 'int'>, <type 'int'>, <type 'int'>]

print [type(x) == int for x in s]
[False, True, True, True, True, True, True, True, True]
Run Code Online (Sandbox Code Playgroud)

或者to_numeric通过notnull

print pd.to_numeric(s, errors='coerce').notnull()
0    False
1     True
2     True
3     True
4     True
5     True
6     True
7     True
8     True
dtype: bool
Run Code Online (Sandbox Code Playgroud)

如果值为intfloatSeries则将所有值转换为float

import pandas as pd

a=[1.2,3,4,5,6,2,8,5,9]

s = pd.Series(a)
print s
0    1.2
1    3.0
2    4.0
3    5.0
4    6.0
5    2.0
6    8.0
7    5.0
8    9.0
dtype: float64

print [type(x) for x in s]
[<type 'numpy.float64'>, <type 'numpy.float64'>, <type 'numpy.float64'>, <type 'numpy.float64'>, <type 'numpy.float64'>, <type 'numpy.float64'>, <type 'numpy.float64'>, <type 'numpy.float64'>, <type 'numpy.float64'>]
Run Code Online (Sandbox Code Playgroud)