gpt4 book ai didi

python - decimal.InvalidOperation 在 Series 中四舍五入值时出错

转载 作者:太空狗 更新时间:2023-10-30 00:15:52 26 4
gpt4 key购买 nike

我正在使用的系列:

import pandas as pd
from decimal import Decimal, BasicContext

df = pd.Series([14978.22,
16025.429160000002,
209.97803999999996,
618.20369,
605.607,
1431.0916,
30.53575,
23.77272,
404.79368999999997,
55580.152319999994
])
df2 = df.apply(str).apply(Decimal, context=BasicContext)

我想使用“ROUND_HALF_UP”(这是用于 BasicContext 的舍入)将 df 中的所有值舍入为 5 位数。所以,我这样做:

df2.apply(round, ndigits=5)

但是,这会引发错误:

Traceback (most recent call last):

File "", line 1, in df2.apply(round, ndigits=5)

File "C:\Users\Guest\AppData\Roaming\Python\Python36\site-packages\pandas\core\series.py", line 3194, in apply mapped = lib.map_infer(values, f, convert=convert_dtype)

File "pandas/_libs/src\inference.pyx", line 1472, in pandas._libs.lib.map_infer

File "C:\Users\Guest\AppData\Roaming\Python\Python36\site-packages\pandas\core\series.py", line 3181, in f = lambda x: func(x, *args, **kwds)

InvalidOperation: class 'decimal.InvalidOperation'

但是,四舍五入到 4 位数是可行的:

df2.apply(round, ndigits=4)

为什么会发生这种情况,我该如何解决?

最佳答案

您是否 try catch decimal.InvalidOperation 异常?你应该有一个 tryexcept

try:
# your code
except DecimalException as e:
print(e)

关于python - decimal.InvalidOperation 在 Series 中四舍五入值时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51793434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com