十进制值的字符串转换为数字而不进行舍入

时间:2018-06-22 03:06:33

标签: python python-3.x pandas

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

下的值没有任何变化

3 个答案:

答案 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