You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将含横杠的object类型VISIT_NUMBER转为int

如何将带横杠的VISIT_NUMBER字符串转换为整数类型?

你遇到的问题很典型——你的VISIT_NUMBER字段里的字符串(比如'2458611-22')包含了横杠'-',这不是整数的合法组成部分,所以不管是直接用astype(int)/astype(float),还是pd.to_numeric(),都会因为无法解析带横杠的字符串而报错。

解决这个问题的关键是先处理掉字符串里的横杠,再转换类型,具体分两种常见场景:

场景1:想把整个字符串(去掉横杠)转成单个整数

如果横杠只是分隔符,你希望把横杠两边的数字合并成一个整数,直接用str.replace()去掉横杠再转int就行:

Dataset1['VISIT_NUMBER'] = Dataset1['VISIT_NUMBER'].str.replace('-', '').astype(int)

比如'2458611-22'会被转换成245861122,完美变成整数类型。

场景2:想把横杠两边的数字拆分成两个独立的整数列

如果横杠分隔的是两个不同的信息(比如主编号和子编号),可以用str.split()拆分后分别转int:

# 拆分出两列,分别命名为PART1和PART2
Dataset1[['PART1', 'PART2']] = Dataset1['VISIT_NUMBER'].str.split('-', expand=True).astype(int)

执行后,原'2458611-22'会拆成PART1=2458611和PART2=22两个整数列,方便后续分别处理。

验证方法

你可以先拿单个值测试一下逻辑是否符合预期:

test_value = '2458611-22'
# 测试场景1
print(int(test_value.replace('-', '')))  # 输出:245861122
# 测试场景2
part1, part2 = test_value.split('-')
print(int(part1), int(part2))  # 输出:2458611 22

内容的提问来源于stack exchange,提问作者Kp_Data

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:07:18