繁体   English   中英

将 pandas str 列转换为浮点数而不损失精度

[英]Convert pandas str column to float without loss of precision

我从 API 接收此数据,然后我将其放入 dataFrame object。一切正常,直到我需要将某些列从其原始 str 格式更改为 float。 在使用 pd.to_numeric 和 pd.astype(float) and.apply(float) 之后,我发现我的数据被限制在浮点数后的 5-6 位。 这是之前的:

               Price        Weight
Ticker                                
A         2.5280000000  0.1107699174
B       137.6500000000  0.0315685242
C       203.0600000000  0.1220829996
D         5.6920000000  0.0406895407

这是之后:

            Price    Weight
Ticker                       
A         2.52800  0.110770
B       137.65000  0.031569
C       203.06000  0.122083
D         5.69200  0.040690

虽然 6 位数很好,但我需要整个数据来执行模型制作目的的精确计算。 我真的很感激这方面的任何帮助!

默认情况下pandas在 之后显示6 位数字. ,但这并不意味着存储值的精度,如果值以足够的精度存储,那么将pandas.options.display.precision值设置为更大的值应该足以看到它,请考虑以下示例

import pandas as pd
df = pd.DataFrame({'x':[0.1107699174]})
print(df)
pd.options.display.precision = 12
print(df)

output

         x
0  0.11077
              x
0  0.1107699174

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM