你能幫我解決以下問題嗎?我在 pandas df 中有一個名為“名稱”的列,其中包含指向網頁的鏈接。我需要創建一個名為“total categories”的變數,該變數將包含最后出現“/”符號之后出現的鏈接部分。例子:
names
https://www1.abc.com/aaa/72566-finance
https://www1.abc.com/aaa1/725-z2
https://www1.abc.com/aaa2/75-z3
total categories
72566-finance
725-z2
75-z3
我試過這段代碼:
def find_index(x):
return x.rindex('/')
data_pd['total categories'] = data_pd['names'].apply(find_index)
我收到以下錯誤:
AttributeError: 'float' object has no attribute 'rindex'
uj5u.com熱心網友回復:
str.extract與正則運算式一起使用r'/([^/] )$':
df['total categories'] = df['names'].str.extract(r'/([^/] )$')
輸出:
names total categories
0 https://www1.abc.com/aaa/72566-finance 72566-finance
1 https://www1.abc.com/aaa1/725-z2 725-z2
2 https://www1.abc.com/aaa2/75-z3 75-z3
正則運算式演示和說明:
/ # match a literal /
( # start capturing
[^/] # one or more non-/ characters
) # end capturing
$ # end of string
uj5u.com熱心網友回復:
如果您將這些設定為 pandas DataFrame 中的列,則可以執行以下操作:
df['total categories'] = df['names'].str.split('/').str[-1]
這將根據傳遞的分隔符拆分字串'/',然后獲取結果拆分的最后一個元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/492578.html
上一篇:僅從提及關鍵字的字串中提取數字
