我有一个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
最佳答案
您可能需要使用 to_numeric
而不是 apply(int)
..
pd.to_numeric(df.inv_id.str.replace(r'\D+', ''),errors ='coerce')<100
关于python - Pandas 值(value)错误: invalid literal for int() with base 10: '' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54869213/