考虑str类型系列s
s = pd.Series(['a', '1'])
pd.to_numeric(s, 'ignore')
0 a
1 1
dtype: object
pd.to_numeric(s, 'ignore').apply(type)
0 <type 'str'>
1 <type 'str'>
dtype: object
显然,这两种类型仍然是字符串。似乎'ignore'
选项忽略了entires系列转换。如何让它尽其所能而忽略其余部分。
我希望系列类型为
pd.to_numeric(s, 'ignore').apply(type)
0 <type 'str'>
1 <type 'int'>
dtype: object
编辑:在我发布问题之后,在@ayhan提供答案后,我想出了这个。
我的解决方案
没有矢量化,但给了我我想要的东西
s.apply(pd.to_numeric, errors='ignore')
答案 0 :(得分:3)
这就是我正在使用的:
pd.to_numeric(s, errors='coerce').fillna(s)
Out:
0 a
1 1
dtype: object
pd.to_numeric(s, errors='coerce').fillna(s).apply(type)
Out:
0 <class 'str'>
1 <class 'float'>
dtype: object