0.03611642492570208
这样的数字在CSV文件中以字符串形式出现,我希望阅读它们并进行数学运算,但是当我将其读取为String并将其转换为数字形式时将其四舍五入。
如何在不损失精度的情况下将其转换为数值。
已编辑:
item_id,deal_probability
6544e41a8817,0.299918385137877
65b9484d670f,0.09258187813010357
8bab230b2ecd,0.15371873083249338
8e348601fefc,0.07208665773638352
8bd2fe400b89,0.25543690938853253
c63dbd6c657f,0.05238764253800446
6d1a410df86e,0.0512983797826358
e8d3e7922b80,0.009989860172001194
2bc1ab208462,0.04119998171932098
这是我的csv文件的格式,当我在jupyter笔记本中阅读该文件时, deal_probability 下的值会四舍五入到小数点后6位。
预期结果:-我想读取整个csv,而 deal_probability
下的值没有任何变化答案 0 :(得分:1)
是的,您应该使用decimals。为了从字符串转换为十进制,您首先要导入十进制,然后像这样将字符串传递给Decimal函数
feature/feature1
然后,您可以像处理任何其他数字类型一样,对小数进行运算。
答案 1 :(得分:1)
十进制模块对此很有帮助-https://docs.python.org/3.6/library/decimal.html
origin/feature/feature1
答案 2 :(得分:1)
我们没有什么可担心的,因为仅出于屏幕显示的目的,此数字四舍五入至6位。如果我们保存文件,将会看到数字仍然在那里。
如果我们绝对要强制熊猫将本专栏阅读为数字,那么我们可以这样做
import pandas as pd
import numpy as np
file = pd.read_csv('your_file_name.csv', dtype={'deal_probability': np.float64})
信用:tilii