Pandas DataFrame格式化

Joo*_*oop 4 python string-formatting pandas

我有一个带有混合值的pandas DataFrame.我正在开发Ipython笔记本时使用它.显示数据帧时,我希望它显示,以方便阅读.目前我正在使用python字符串格式化显示所有浮点数到4位小数并添加千位分隔符.

pd.options.display.float_format = '{:,.4f}'.format
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想Eg显示值超过10000没有小数,分数有4位有效数字等.有没有办法,我可以使用python字符串格式化语法来实现这一点?我知道我可以为个人专栏做这件事,但我期待这纯粹用于笔记本内的显示器?

Jef*_*eff 5

你可以传递一个函数float_format,所以可以是任何东西

In [1]:

df = DataFrame(dict(A = [1.2345,10000.12345,1]))
df
Out[1]:
A
0    1.23450
1    10000.12345
2    1.00000
3 rows × 1 columns
In [4]:

pd.set_option('display.float_format',
      lambda x: '{:,.4f}'.format(x) if abs(x) < 10000 else '{:,.0f}'.format(x))
In [5]:

df
Out[5]:
A
0   1.2345
1   10,000
2   1.0000
3 rows × 1 columns
Run Code Online (Sandbox Code Playgroud)