astype('float')更改数据,而不仅仅是数据类型

2024-09-24 00:34:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我从aws s3存储桶下载了一堆csv文件,并将它们放在数据帧中。在将数据框上载到sql server之前,我想更改数据框的列,使其具有正确的数据类型

当我在一列上运行astype('float64')时,我想更改它,不仅更改数据类型,而且还更改数据

代码:

df['testcol'] = df['lineId'].astype('float64')

pycharm image of the result

我附加了一张图片来直观地显示错误。正如您所看到的,第三列(testcol)中的数据与第二列(lineId)中的数据不同,即使只应更改数据类型

一个pl_id可以有多个lineId,这就是为什么我在图片中按pl_id添加和排序

我使用astype()是错误的还是这是一个错误


Tags: 文件csv数据awsiddfs3错误
1条回答
网友
1楼 · 发布于 2024-09-24 00:34:32

基本上,float64似乎不足以携带长整数:

np.float64('211052094743748628')
Out[135]: 2.1105209474374864e+17

“浮点64可以达到的最大精度接近10-16(最后一位的单位(ULP),请参阅en.wikipedia.org/wiki/Floating-point_算术),因此浮点的精确十进制值远远超过16位的想法是错误的。” Numpy float64 vs Python float

考虑使用It64,它可以更适合于数据集中ID的大小:

np.int64('211052094743748628')
Out[150]: 211052094743748628

相关问题 更多 >