[英]How to remove a certain number of characters at the start of a string
我有一個 NHL 自由球員的數據集,但是它們被編號為名稱的一部分。 我試圖讓“1. Alex Ovechkin”看起來像“Alex Ovechkin”。 基本上只是試圖刪除數字、句號和之間的空格。
我已經使用以下代碼成功刪除了前 10 個條目的數字,但是在第 11 個條目中我需要刪除 4 個字符而不是 3 個。第 100 行也是如此,我需要刪除 5 個字符來刪除數字,句號, 和空間。
這是我一直試圖用來了解有效性的代碼。
free_agents['Player'] = free_agents['Player'].str[3:]
這適用於前 10 個條目,但之后有 11-100 的空格,以及 rest 的句點和空格。
我還嘗試了以下代碼,它適用於前 10 個,但刪除了條目的 rest。
free_agents['Player'] = free_agents['Player'][0:10].str[3:]
我最后一次嘗試是做一個 for 循環,但沒有奏效。
for player in free_agents['Player']:
if player in free_agents['Player'][0:100]:
free_agents = free_agents['Player'].str[2:]
else:
free_agents['Player'] = free_agents['Player'].str[4:]
我已經沒有想法可以嘗試了,並且希望在找到最有效的方法方面得到一些幫助。 非常感謝!
假設沒有名稱以數字開頭,您可以嘗試以下操作:
free_agents['Player'] = free_agents['Player'].lstrip('0123456789. ')
這會去除字符串匹配中的前導字符:
0
到9
之間的任何數字.
.分開。 並獲取 output 的字符串索引 1
df.Player=df.Player.str.split('\.\s').str[1]
df.Player = df.Player.str.split("\. ").str[1]
基於正則表達式
df["Player"] = df["Player"].str.replace("^\d+\.\s+", repl="", regex=True)
>>> df
Player
0 1. Player A
1 2. Player B
2 10. Player C
3 11. Player D
4 100. Player E
5 101. Player F
df["Player"] = df["Player"].str.replace("^\d+\.\s+", repl="", regex=True)
>>> df
Player
0 Player A
1 Player B
2 Player C
3 Player D
4 Player E
5 Player F
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.