2017-12-29 22 views
0

私はデータフレーム列を持っています。float64値の余分な数字を削除するにはどうしたらいいですか?

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 

となどのように見えることを、小数点を残し、余分な数字を削除したいです。

文字列をスライスする方法はわかっていますが、ここでは機能しないようです。

+1

可能な複製(https://stackoverflow.com/questions/24118366/round-exponential-float-to-2-decimals ) – Ray

答えて

0

場合は、表示オプションを設定することができます。

import pandas as pd 
import numpy as np 

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

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

戻り値:[2つの小数にラウンド指数フロート]の

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' 
関連する問題