如何在pandas系列对象中查找float、string等非整数值?
有一个像这样的系列对象,
a=(1.2,3,4,5,6,2,8,5,9)
Run Code Online (Sandbox Code Playgroud)
我尝试过to_numeric,但这无助于识别float价值观。有没有办法检查integer值?
您可以用于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)
如果值为int和float,Series则将所有值转换为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)
| 归档时间: |
|
| 查看次数: |
15273 次 |
| 最近记录: |