为了账号安全,请及时绑定邮箱和手机立即绑定

pandas 提取模式后的所有字符和数字

pandas 提取模式后的所有字符和数字

呼如林 2023-01-04 11:12:29
我想提取所有数字和字符,而不考虑“V”之后的模式。问题是我不能简单地接受“V”之后的所有内容并包括在内,因为一些街道名称以“V”开头。我尝试了以下方法:df = pd.DataFrame({'X': ['Seasame Street Apt 2 V2575', 'Happy Violet Street Apt 1 V2575B', 'Violet Street Apt 3 V25B75']}) df['Y'] = df['X'].str.extract('(V\/?\d+)')我希望最终输出如下所示:pd.DataFrame({'X': ['Seasame Street Apt 2 V2575', 'Happy Violet Street Apt 1 V2575B', 'Violet Street Apt 3 V25B75'],                            'Y': ['V2575', 'V2575B', 'V25B75']})
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

假设期望V的部分后面总是跟着一个数字:


df["Y"] = df["X"].str.extract("(V\d.+)")

print(df)

输出


                                  X       Y

0        Seasame Street Apt 2 V2575   V2575

1  Happy Violet Street Apt 1 V2575B  V2575B

2        Violet Street Apt 3 V25B75  V25B75


查看完整回答
反对 回复 2023-01-04
?
波斯汪

TA贡献1811条经验 获得超4个赞

另一种使用np.where()和的方式str.split(' ')

df['Y'] = np.where((df['X'].str.split(' ').str[-1][0][0].lower() == 'v'), df['X'].str.split(' ').str[-1], '')



查看完整回答
反对 回复 2023-01-04
  • 2 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信