如何舍入仅用于在熊猫中显示的值,同时在数据框中保留原始值?
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
。以上是关于如何舍入仅用于在熊猫中显示的值,同时在数据框中保留原始值?的主要内容,如果未能解决你的问题,请参考以下文章
我正在尝试使用熊猫删除重复的连续元素并保留数据框中的最后一个值