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

问题描述 投票:0回答:2

我有一个数据框列。

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

和其他所有人一样。

我知道如何切割字符串,但它似乎不适用于此。

python rounding slice
2个回答
1
投票

如果你有一个pandas数据帧,你可以设置显示选项。

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

0
投票

你可以使用str.format

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

'3.7e-11'

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

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

'3.6e-11'
© www.soinside.com 2019 - 2024. All rights reserved.