我遇到 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
这个问题是由于
-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