Pandas DataFrame格式化

4

我有一个 pandas DataFrame,其中包含混合值。我在 Ipython 笔记本中开发它。当显示数据框时,我希望它能更易于阅读。目前,我正在使用 python 字符串格式化将所有浮点数显示为 4 位小数,并添加千位分隔符。

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

理想情况下,我希望能够以Python字符串格式化语法的方式实现以下功能:例如,在不显示小数的情况下显示大于10000的值,四位有效数字的分数等等。我知道可以对单个列进行操作,但我想在笔记本中纯粹地进行显示。是否有方法可以实现这一点?

1个回答

6
您可以将一个函数传递给 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接