如何删除float64值的额外数字?

2024-10-01 02:34:50 发布

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

我有一个数据框列。你知道吗

P08107    3.658940e-11
P62979    4.817399e-05
P16401    7.784275e-05
Q96B49    7.784275e-05
Q15637    2.099078e-04
P31689    1.274387e-03
P62258    1.662718e-03
P07437    3.029516e-03
O00410    3.029516e-03
P23381    3.029516e-03
P27348    5.733834e-03
P29590    9.559550e-03
P25685    9.957186e-03
P09429    1.181282e-02
P62937    1.260040e-02
P11021    1.396807e-02
P31946    1.409311e-02
P19338    1.503901e-02
Q14974    2.213431e-02
P11142    2.402201e-02

我想留下一个小数点,去掉多余的数字,就像这样

 3.7e-11

而不是

3.658940e-11

等等。你知道吗

我知道怎么切绳子,但在这里好像不行。你知道吗


Tags: 数据框列p08107p29590p25685q15637p27348o00410
2条回答

如果您有一个熊猫数据帧,您可以设置显示选项。你知道吗

import pandas as pd
import numpy as np

pd.options.display.float_format = '{:.2f}'.format

pd.DataFrame(dict(randomvalues=np.random.random_sample((5,))))

退货:

   randomvalues
0          0.02
1          0.66
2          0.24
3          0.87
4          0.63

您可以使用str.format

>>> '{:.2g}'.format(3.658940e-11)

'3.7e-11'

字符串切片在这里不起作用,因为它不舍入值:

>>> s = '3.658940e-11'
>>> s[:3] + 'e' + s.split('e')[1]

'3.6e-11'

相关问题 更多 >