我在 pythonName中有一個列,它讀入足球隊名稱和一個數字,例如New Orleans Saints 2
我將資料決議為 2 個單獨的和附加的列Name2:New Orleans Saints& Name3: 2
我通過使用這行代碼來做到這一點: NameSeparate=dt['Name'].str.split(r'\s(?:([ -]?\d{,100}\.?\d{1,100}?))', expand=True)
然后dt[Name2]= NameSeparate[0]& dt[Name3]=NameSeparate[1]分隔并創建 2 個新列
當San Francisco 49ers 5代碼決議49而不是決議時,我遇到了問題 5
我試過寫一個檢查回圈,但無法讓腳本通過49,只是拉 5
該名稱將總是進來作為San Francisco 49ers然而第二片可以有一個 或-除了任何數目的以下符號,例如,它可能會在為:San Francisco 49ers 5,San Francisco 49ers -5,San Francisco 49ers 8.5,San Francisco 49ers -8.5,等。
有人可以幫我寫一張支票來解決這個問題嗎?謝謝!
uj5u.com熱心網友回復:
如果應該在第二列中的數字前面總是有 a 或 a -,則應洗掉正則運算式中的?后面[ -]以拆分原始列:
NameSeparate=dt['Name'].str.split(r'\s(?:([ -]\d{,100}\.?\d{1,100}?))', expand=True)
否則,您還可以選擇之前沒有放置此類符號的數字,正如您已經注意到的那樣。
如果還有數字沒有 或-之前的條目,您可以$在正則運算式字串的最后添加一個,表示字串的結尾。由于數字似乎總是排在最后,這也應該有效:
NameSeparate=dt['Name'].str.split(r'\s(?:([ -]?\d{,100}\.?\d{1,100}?))$', expand=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/369604.html
