pandas to_numeric downcast ='signed'返回float64

时间:2018-01-30 20:44:15

标签: python pandas

我有一个数据集,其中pandas.read_csv()处理适当地将一些连续的数字列/特征/变量数据从对象转换为float64 [,int64或uint8]而不是其他数据。

所以我尝试转换应该作为连续数字类型转换的列数据,特别是int64,使用以下指定了downcast参数的pandas.to_numeric()调用,但仍然得到一个float64结果。

df.wc = pd.to_numeric(df.wc, errors='coerce', downcast='signed') 
# call to convert object to int64 vs float64 

是否存在典型的列/要素/变量集问题,在尝试将对象类型转换为最具体的连续数字类型时会导致忽略该参数设置?

1 个答案:

答案 0 :(得分:1)

根据documentation

  

...根据......

将结果数据转换为最小的数字dtype 可能

根据我的实验,可以向下转换为整数值,如

pd.to_numeric(pd.Series([1.0, 2.0]), downcast='unsigned')
0    1
1    2
dtype: uint8

但是,它无法向下转换为整数值,如

pd.to_numeric(pd.Series([1.1, 2.1]), downcast='unsigned')
0    1.1
1    2.1
dtype: float64

如果要在结果中获取int64值,则可以应用pd.Series.astype

pd.Series([1.1, 2.1]).astype(int)
0    1
1    2
dtype: int64

您可能对

感兴趣