首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas错误:[<class 'decimal.DivisionUndefined'>]

Pandas错误:[<class 'decimal.DivisionUndefined'>]
EN

Stack Overflow用户
提问于 2019-04-16 17:38:17
回答 1查看 3.8K关注 0票数 1

我的数据帧如下所示:

代码语言:javascript
运行
复制
timestamp   topAsk  topBid  CPA midprice    CPB spread  s

    0   2019-03-14 00:00:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190
    1   2019-03-14 00:01:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190
    2   2019-03-14 00:02:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190
    3   2019-03-14 00:03:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190
    4   2019-03-14 00:04:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190
    5   2019-03-14 00:05:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190
    6   2019-03-14 00:06:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190
    7   2019-03-14 00:07:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190
    8   2019-03-14 00:08:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190
    9   2019-03-14 00:09:00 0.00005000  0.00004957  0.00004979  0.00004979  0.00004979  4.3E-7  0.008636272343844145410725045190

当我尝试使用以下代码行添加新列时:df['gamma'] = ((df['midprice'] - df['CPB']) / df['spread'])出现以下错误: message= Pandas error: [<class 'decimal.DivisionUndefined'>]

是因为我的列df['spread']真的很小吗?我有点卡住了,谢谢!

df.info()显示:

EN

回答 1

Stack Overflow用户

发布于 2019-04-16 19:35:04

decimal.InvalidOperation: [<class 'decimal.DivisionUndefined'>]意味着你在某个地方有一个使用Decimal值的0/0除法。通过首先测试df['spread']是否为0很容易找到解决方法,但您真的应该尝试找出用作除数的值可以为空的原因和方式。在这种情况下,我将使用NaN作为结果。代码可以是:

代码语言:javascript
运行
复制
df['gamma'] = df.apply(lambda x:
     (x['midprice'] - x['CPB']) / x['spread'] if x['spread'] != 0
     else decimal.Decimal('NaN'), axis=1)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55705042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档