Pandas 精度不适用于最后一个数据帧列

问题描述 投票:0回答:1

我遇到 pandas dataframe print 未按要求的精度打印最后一列的问题。怎么解决?

这是打印输出的简短代码片段:

print(dfy)
print(dfy.dtypes)
with pd.option_context('display.precision', 0):
    print(dfy)

代码片段的打印输出:

                    gas         prev      delta%
2023-10-01   818.851398          NaN         NaN
2023-11-01  2009.784005  1755.768035   14.467513
2023-12-01  2304.134123  2479.160200   -7.059894
2024-01-01  2647.367761  2524.686911    4.859250
2024-02-01  1685.694664  2070.363903  -18.579789
2024-03-01  1588.714377  1840.684792  -13.688950
2024-04-01  1376.973210  1385.102980   -0.586943
2024-05-01   605.798978   706.870375  -14.298434
2024-06-01   117.488287   155.409729  -24.400945
2024-07-01   163.644399   133.852727   22.257053
2024-08-01   129.027315   121.264696    6.401384
2024-09-01   625.730027   198.051683  215.942797
gas       float64
prev      float64
delta%    float64
dtype: object
             gas  prev  delta%
2023-10-01   819   NaN     NaN
2023-11-01  2010  1756   1e+01
2023-12-01  2304  2479  -7e+00
2024-01-01  2647  2525   5e+00
2024-02-01  1686  2070  -2e+01
2024-03-01  1589  1841  -1e+01
2024-04-01  1377  1385  -6e-01
2024-05-01   606   707  -1e+01
2024-06-01   117   155  -2e+01
2024-07-01   164   134   2e+01
2024-08-01   129   121   6e+00
2024-09-01   626   198   2e+02
python pandas dataframe
1个回答
0
投票

这个问题是由于

-0.586943
无法用这种精度准确表示的。

你应该

round
:

with pd.option_context('display.precision', 0):
    print(dfy.round())

输出:

             gas  prev  delta%
2023-10-01   819   NaN     NaN
2023-11-01  2010  1756      14
2023-12-01  2304  2479      -7
2024-01-01  2647  2525       5
2024-02-01  1686  2070     -19
2024-03-01  1589  1841     -14
2024-04-01  1377  1385      -1
2024-05-01   606   707     -14
2024-06-01   117   155     -24
2024-07-01   164   134      22
2024-08-01   129   121       6
2024-09-01   626   198     216
© www.soinside.com 2019 - 2024. All rights reserved.