首页 > 解决方案 > to_numeric(..., downcast='float') 过于激进

问题描述

浮动说明:行为出乎意料且可能有害。

对于大浮点数,使用带有 downcast='float' 的 to_numeric 似乎与使用 .astype('float32') 一样有力,因为即使该结果不再是 == 参数,它也会返回向下转换的结果。

pd.set_option('display.float_format', '{:.2f}'.format)

s = pd.Series(9876543210.0)
s.astype('float32')  # 9876543488.00; dtype: float32
s.astype('float32') == s  # False
pd.to_numeric(s, downcast='float')  # 9876543488.00; dtype: float32
pd.to_numeric(s, downcast='float') == s  # False

预期输出:

s = pd.Series(9876543210.0)
pd.to_numeric(s, downcast='float')  # 9876543210.00; dtype: float64
pd.to_numeric(s, downcast='float') == s  # True

如果有人知道,请给我任何解决方案。

标签: pythonpandas

解决方案


推荐阅读