我试图理解 pd.to_numeric float 向下转型背后的逻辑。
我希望/期望它能够保留值的唯一性,但在我的示例中,它没有。
文档不解释任何向下转换选项的逻辑:浮点数、整数和无符号。我很想了解它们。
import pandas as pd
import numpy as np
s = pd.Series(np.random.uniform(0, 1, 100_000), dtype="Float64")
s_float32 = pd.to_numeric(s, downcast="float")
print(s_float32.dtype)
print(s_float32.nunique() == s.nunique())
Float32
False
来源。负责向下转换的代码是here 关键是:
>>> np.typecodes["Float"]
'efdg'
这意味着:
float16
float32
float64
float128