python - pandas ValueError:以 10 为基数的 int() 的无效文字:''
问题描述
我有一个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
推荐阅读
- gcc - make 的 -j 参数必须与核心数完全相同吗?
- elixir - 如何处理 Elixir 中的尝试和救援错误
- jenkins - 用于报告工具的阶段帖子部分中的 Jenkins 管道环境变量
- c# - 如何使用 Parallel.ForEach 从 excel 文件中读取单元格数据
- android - 从 ByteArray 播放音频
- asp.net-core - Audit.NET 将 2 个不同的上下文审计到 2 个不同的数据库
- ios - 在 swinject 环境下卡住情节提要控制
- flutter - 如何正确显示拍摄的照片?
- flutter - 我在相机预览中收到“NoSuchMethodError”,这是因为我没有将 dart 文件加载到物理设备中吗?
- java - Stream.reduce 与身份和 Stream.reduce().orElse() 的区别是按位或归约的情况