如何拆分Pandas列值并提取斜杠间的数字转为整数
提取DataFrame列中斜杠间的数字并转为整数
方法一:字符串分割(适用于固定格式)
如果你的数据都是严格的[前缀]/[数字]/[后缀]格式,直接用split分割后取中间元素即可,之前没成功大概率是没正确选取分割后的索引:
df['column'] = df['column'].str.split('/').str[1].astype(int)
比如'F/4500/O'.split('/')会得到['F', '4500', 'O'],取索引1的元素就是目标数字,再通过astype(int)转为整数类型。
方法二:正则表达式(更鲁棒)
如果数据格式可能有细微变动(比如前缀/后缀长度不一),用正则提取1-4位数字的方式更可靠:
df['column'] = df['column'].str.extract(r'(\d{1,4})').astype(int)
正则表达式\d{1,4}会匹配连续1到4位的数字,str.extract会提取第一个符合规则的内容,刚好对应你需要的斜杠间的数字。
如果遇到格式异常的行,两种方法都会产生NaN值,你可以根据需求用df.dropna(subset=['column'])删除异常行,或者用fillna()填充默认值。
内容的提问来源于stack exchange,提问作者Ilyas
相关产品推荐
相关产品推荐

