【发布时间】:2018-07-09 20:34:39
【问题描述】:
我有一个数据集,其中 pandas.read_csv() 处理将一些连续的数字列/特征/变量数据从对象适当地转换为 float64 [ 、 int64 或 uint8 ] 但不是其他数据。
然后,我尝试使用以下带有 downcast 参数的 pandas.to_numeric() 调用将本应转换为连续数字类型(特别是 int64)的列数据转换,但我仍然得到 float64 结果。
df.wc = pd.to_numeric(df.wc, errors='coerce', downcast='signed')
# call to convert object to int64 vs float64
在尝试将对象类型转换为最具体的连续数字类型时,是否存在会导致忽略该参数设置的典型列/功能/变量集问题?
【问题讨论】:
-
当您尝试
errors='raise'时会发生什么?根据docs 向下转换仅适用于以下条件If not None, and if the data has been successfully cast to a numerical dtype。所以errors='coerce'可能隐藏了一些东西。附带说明...您的数据集中是否有任何合法的浮点数? (即 1.0) -
您能否展示一个小样本数据框,其中包含未按预期转换的值?
-
您的
int列是否包含NaN值?那么这些列不能从 float -> int 转换。我今天问了一个类似的问题:stackoverflow.com/q/48518735/8881141