擅长:python、mysql、java
<p>Pandas有一个<em>floats</em>的显示选项,numpy有一个任何数据类型的显示选项:</p>
<pre><code>In [11]: df = pd.DataFrame([[1., -2], [-3., 4]], columns=['A', 'B'])
</code></pre>
<p><em>注意:A是浮点列,B是int列。</em></p>
<p>我们可以根据数字的符号编写一个简单的格式化程序:</p>
<pre><code>In [12]: formatter = lambda x: '(%s)' % str(x)[1:] if x < 0 else str(x)
In [13]: pd.options.display.float_format = formatter
In [14]: df # doesn't work for the int column :(
Out[14]:
A B
0 1.0 2
1 (3.0) 4
In [15]: df.astype(float)
Out[15]:
A B
0 1.0 (2.0)
1 (3.0) 4.0
</code></pre>
<p>您还可以配置numpy的打印选项:</p>
<pre><code>In [21]: df.values # float
Out[21]:
array([[1., 2.],
[3., 4.]])
In [22]: df['B'].values # int
Out[22]: array([2, 4])
In [23]: np.set_printoptions(formatter={'int': formatter, 'float': formatter})
In [24]: df.values # float
Out[24]:
array([[1.0, (2.0)],
[(3.0), 4.0]])
In [25]: df['B'].values # int
Out[25]: array([(2), 4])
</code></pre>
<p>注意:这不会改变数据的存储方式,只是改变您查看数据的方式。</p>