如何舍入仅用于在熊猫中显示的值,同时在数据框中保留原始值?

Posted

技术标签:

【中文标题】如何舍入仅用于在熊猫中显示的值,同时在数据框中保留原始值?【英文标题】:How to round values only for display in pandas while retaining original ones in the dataframe? 【发布时间】:2017-12-11 08:07:10 【问题描述】:

当我使用 head() 或 tail() 时,我希望仅对 DataFrame 中的值进行舍入,但我希望 DataFrame 保留原始值。

我尝试使用 round 方法,但它改变了原始 DataFrame 中的值。为此,我不希望每次都创建单独的副本。

除了创建一个单独的副本之外,还有其他方法吗?

我无法查看值,因为某些列有 e^10 符号。我只想看看最多两到三位小数,而不是一直看指数值。

【问题讨论】:

【参考方案1】:

您可以临时更改显示选项:

with pd.option_context('precision', 3):
    print(df.head())

       0      1      2      3      4
0 -0.462 -0.698 -2.030  0.766 -1.670
1  0.925  0.603 -1.062  1.026 -0.096
2  0.589  0.819 -1.040 -0.162  2.467
3 -1.169  0.637 -0.435  0.584  1.232
4 -0.704 -0.623  1.226  0.507  0.507

或永久更改:

pd.set_option('precision', 3)

一个简单的print(df.head().round(3)) 在这种情况下也可以工作。他们不会更改 DataFrame。

【讨论】:

这可能很明显,但如果精度选项设置为低于 3,print(df.head().round(3)) 将不起作用。也就是说,precision 会覆盖 round

以上是关于如何舍入仅用于在熊猫中显示的值,同时在数据框中保留原始值?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取熊猫数据框中的行,列中具有最大值并保留原始索引?

使用“或”在熊猫数据框中选择值时如何编写条件[重复]

在熊猫数据框中按行应用时如何保留数据类型?

我正在尝试使用熊猫删除重复的连续元素并保留数据框中的最后一个值

如何将列表中的值分配给熊猫数据框并控制每个列表元素在数据框中的分布/频率

如何根据合并的数据框之一的两列的值在熊猫数据框中添加值