如何更改python存储的实际浮点格式?

如何更改python存储的实际浮点格式?,python,pandas,Python,Pandas,我有一个熊猫系列,里面装满了彩车。当我改变熊猫的信仰时 系列到后面的列表中,一些浮动是用科学记数法表示的。在stackoverflow上有很多帖子,它们改变了我完全理解的pandas float的显示,但是当我调用.tolist方法时,我需要这些值都是十进制格式 s=pd.系列[-3.75e-05, -6.25e-05, -8.75e-05, -8.75e-05, -8.75e-05, -0.0001125, -0.00015, -0.0001625, -0.0001625, -0.000162

我有一个熊猫系列,里面装满了彩车。当我改变熊猫的信仰时 系列到后面的列表中,一些浮动是用科学记数法表示的。在stackoverflow上有很多帖子,它们改变了我完全理解的pandas float的显示,但是当我调用.tolist方法时,我需要这些值都是十进制格式

s=pd.系列[-3.75e-05, -6.25e-05, -8.75e-05, -8.75e-05, -8.75e-05, -0.0001125, -0.00015, -0.0001625, -0.0001625, -0.0001625]
为什么有些浮点数是用科学记数法打印的,有些是用十进制的?

如果你不担心速度

def to_str(x): return '%f' % x
s=s.apply(to_str)

尝试使用Decimal,结果将是一个列表:

from decimal import Decimal
s = pd.Series([-3.75e-05,
 -6.25e-05,
 -8.75e-05,
 -8.75e-05,
 -8.75e-05,
 -0.0001125,
 -0.00015,
 -0.0001625,
 -0.0001625,
 -0.0001625])


result = [round(Decimal(x),5) for x in s]
result
结果:


我想指出的一点是,科学记数法中的价值观不会对分析产生任何重大影响。 J.K对问题给出了最好的回答,但随着数据集大小的增加,非矢量化的方法对系统来说可能太过强大,而且他/她的示例中的“result”变量的数据类型为Decimalnot float

>>>type(decimal.Decimal(1.22))
<class 'decimal.Decimal'>
输出:


为什么需要十进制格式?tolist的元素已经是浮动的。我需要稍后将这些元素传递给GUI,当它输出一些科学元素和一些非科学元素时,这看起来很奇怪。可能值得在其中添加一些舍入,因为与原始值相比,这存在十进制精度问题,OP表示他们正在将其传递给gui@G.Anderson,我加了一个回合。事实上,我不确定Cr1064希望得到什么样的输出:
>>>type(decimal.Decimal(1.22))
<class 'decimal.Decimal'>
import decimal
s = pd.Series([-3.75e-05,
 -6.25e-05,
 -8.75e-05,
 -8.75e-05,
 -8.75e-05,
 -0.0001125,
 -0.00015,
 -0.0001625,
 -0.0001625,
 -0.0001625])
s=s.apply(decimal.Decimal)
print(s)
0    -0.0000374999999999999967148674173689215649574...
1    -0.0000625000000000000013010426069826053208089...
2    -0.0000874999999999999991109542185618863641138...
3    -0.0000874999999999999991109542185618863641138...
4    -0.0000874999999999999991109542185618863641138...
5    -0.0001124999999999999969208658301411674074188...
6    -0.0001499999999999999868594696694756862598296...
7    -0.0001624999999999999925406890532997294940287...
8    -0.0001624999999999999925406890532997294940287...
9    -0.0001624999999999999925406890532997294940287...