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

我想提取所有数字和字符,而不考虑“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']})


呼如林
浏览 158回答 2
2回答

皈依舞

假设期望V的部分后面总是跟着一个数字:df["Y"] = df["X"].str.extract("(V\d.+)")print(df)输出                                  X       Y0        Seasame Street Apt 2 V2575   V25751  Happy Violet Street Apt 1 V2575B  V2575B2        Violet Street Apt 3 V25B75  V25B75

波斯汪

另一种使用np.where()和的方式str.split(' ')df['Y'] = np.where((df['X'].str.split(' ').str[-1][0][0].lower() == 'v'), df['X'].str.split(' ').str[-1], '')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python