【问题标题】: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 符号。我只想看看最多两到三位小数,而不是一直看指数值。

【问题讨论】:

    标签: python pandas rounding display head


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    相关资源
    最近更新 更多