我想提取所有數字和字符,而不考慮“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

波斯汪
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], '')
添加回答
舉報
0/150
提交
取消