pandas ValueError:以10为底的int()的无效文字:''

时间:2019-02-25 15:10:34

标签: python python-3.x pandas dataframe

我有一个df

inv_id
d5
dd

a123

我喜欢将inv_id转换为int并检查其值是否为<100,

df['inv_id'].str.replace(r'\D+', '').apply(int) < 100

但是我得到了

ValueError: invalid literal for int() with base 10: ''

我知道不能将空字符串转换为int,但是无论False最初是空字符串还是转换后inv_id,我都喜欢将空字符串设置为str.replace变成一个空字符串。结果看起来像是

inv_id    res
d5        True
dd        False
          False
a123      False

1 个答案:

答案 0 :(得分:3)

您可能需要使用to_numeric而不是apply(int) ..

pd.to_numeric(df.inv_id.str.replace(r'\D+', ''),errors ='coerce')<100