pandas.to_numeric中出现意外的浮点问题

时间:2019-06-10 10:11:29

标签: python python-3.x pandas floating-point

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'

0 个答案:

没有答案