开发者社区> 问答> 正文

我们可以为pandas做数据帧级异常处理吗?

我是pandas新手,我想知道pandas dataframe除了使用try / except python之外还有自己的异常处理方式吗?

我已经尝试了python的exec函数来编写整个try / except在一行但我想要pandas特定的语法或异常处理方式,可以在一行中完成。

以下是我尝试过的代码:

import pandas as pd

import numpy as np

data1 = {'id' : [1,2,3,4,5], 'Rate' : [5,9,3,'A',6], 'Name' : ['a','b','c','d','e']}

df = pd.DataFrame(data1)

df['M_Rate1'] = df['Rate'].apply(lambda x, y=exec("def f(s):\n try:\n return int(s) * 2\n except ValueError as e: return 'Only Number can be converted to int'"): f(x)) 它们是pandas 中异常处理的更好方法吗?

展开
收起
游客6qcs5bpxssri2 2019-09-15 19:16:40 814 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    使用pandas to_numeric并强制执行失败的转换:

    df['M_Rate1'] = pd.to_numeric(df['Rate'], errors='coerce') * 2

    如果您必须有错误消息(不推荐):

    df['M_Rate1'] = pd.to_numeric(df['Rate'], errors='coerce').mul(2).fillna('error_message')

    2019-09-15 19:17:33
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
中文:即学即用的Pandas入门与时间序列分析 立即下载
即学即用的Pandas入门与时间序列分析 立即下载
PyODPS架构以及DataFrame实现原理 立即下载