use*_*215 35 python numpy pandas
我在pandas中有一个DataFrame,其中一些数字用科学记数法(或指数表示法)表示,如下所示:
id value
id 1.00 -4.22e-01
value -0.42 1.00e+00
percent -0.72 1.00e-01
played 0.03 -4.35e-02
money -0.22 3.37e-01
other NaN NaN
sy -0.03 2.19e-04
sz -0.33 3.83e-01
Run Code Online (Sandbox Code Playgroud)
而科学的符号使得应该是一个简单的比较,不必要的困难.我认为它是21900的价值,正在为其他人搞砸.我的意思是1.0编码.一!
这不起作用:
np.set_printoptions(supress=True)
Run Code Online (Sandbox Code Playgroud)
并且pandas.set_printoptions没有实现抑制,并且我pd.describe_options()在绝望中看着所有,并且pd.core.format.set_eng_float_format()似乎只为所有其他浮点值打开它,没有能力将其关闭.
cit*_*man 52
快速临时: df.round(4)
全球: pd.options.display.float_format = '{:20,.2f}'.format
Jef*_*eff 10
您的数据可能是objectdtype.这是您数据的直接复制/粘贴.read_csv将其解释为正确的dtype.您通常只应object在类似字符串的字段上使用dtype.
In [5]: df = read_csv(StringIO(data),sep='\s+')
In [6]: df
Out[6]:
id value
id 1.00 -0.422000
value -0.42 1.000000
percent -0.72 0.100000
played 0.03 -0.043500
money -0.22 0.337000
other NaN NaN
sy -0.03 0.000219
sz -0.33 0.383000
Run Code Online (Sandbox Code Playgroud)
检查你的dtypes是否 object
In [7]: df.dtypes
Out[7]:
id float64
value float64
dtype: object
Run Code Online (Sandbox Code Playgroud)
这将此帧转换为objectdtype(注意打印现在很有趣)
In [8]: df.astype(object)
Out[8]:
id value
id 1 -0.422
value -0.42 1
percent -0.72 0.1
played 0.03 -0.0435
money -0.22 0.337
other NaN NaN
sy -0.03 0.000219
sz -0.33 0.383
Run Code Online (Sandbox Code Playgroud)
这是如何将它转换回来(astype(float))也可以在这里工作
In [9]: df.astype(object).convert_objects()
Out[9]:
id value
id 1.00 -0.422000
value -0.42 1.000000
percent -0.72 0.100000
played 0.03 -0.043500
money -0.22 0.337000
other NaN NaN
sy -0.03 0.000219
sz -0.33 0.383000
Run Code Online (Sandbox Code Playgroud)
这就是objectdtype框架的样子
In [10]: df.astype(object).dtypes
Out[10]:
id object
value object
dtype: object
Run Code Online (Sandbox Code Playgroud)
试试这个,它只会为大值和非常小的值提供科学记数法(并添加千位分隔符,除非省略“,”):
pd.set_option('display.float_format', lambda x: '%,g' % x)
Run Code Online (Sandbox Code Playgroud)
或者要几乎完全抑制科学记数法而不损失精度,请尝试以下操作:
pd.set_option('display.float_format', str)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50000 次 |
| 最近记录: |