pandas.to_numeric
这种看似不一致的浮点行为的解释是什么?
In [116]: pd.to_numeric([100.018], errors='ignore', downcast='float')
Out[116]: array([100.018], dtype=float32)
In [117]: pd.DataFrame([100.018]).apply(pd.to_numeric, errors='ignore', downcast='float')
Out[117]:
0
0 100.017998
In [118]: pd.DataFrame([100.018], dtype=np.float64).apply(pd.to_numeric, errors='ignore', downcast='float').dtypes
Out[118]:
0 float32
dtype: object
在我看来downcast
在文档中无法正常工作
因为100.018
可以强制转换为np.float32
如果不是
None
,并且数据已成功转换为数值 dtype(或者如果数据以数字开头),请向下转换 根据以下结果生成的数据为可能的最小数字dtype 以下规则:
'integer'
或'signed'
:最小有符号int
dtype(最小值:np.int8
)'unsigned'
:最小的无符号int
dtype(最小值:np.uint8
)'float'
:最小的float
dtype(最小值:np.float32
)
In [119]: import pandas as pd
In [120]: pd.__version__
Out[120]: '0.23.4'