我有一个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
答案 0 :(得分:3)
您可能需要使用to_numeric
而不是apply(int)
..
pd.to_numeric(df.inv_id.str.replace(r'\D+', ''),errors ='coerce')<100