我有一个数据框列。
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
与所有其他人一起等等。
我知道如何切割字符串,但它似乎不适用于此。
答案 0 :(得分: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
答案 1 :(得分: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'