簡體   English   中英

刪除 dataframe 中的前導字符串

[英]Remove leading strings in a dataframe

我正在研究其他人的代碼df並且我遇到了與此類似的問題,其中數據被加入了:

Names
--------
NurseJohn
SoldierJohn
TeacherJohn
DriverJohn
CEOJohn

我怎樣才能刪除約翰之前的話?

它可以像這樣刪除,但我不明白它是如何刪除的

df['Names'] = df['Names'].str.replace(".*(?=John)", "", regex=True)

有人可以向我們解釋(".*(?=John)", "", regex=True)中發生了什么嗎? 有了這個,還有其他方法可以直接做到這一點嗎?

是的,所以...您正在使用正則表達式... 正則表達式是我曾經使用過的一種工具,用於搜索字符串(文本)。 正則表達式 = 正則表達式。 接下來您使用正則表達式排除“約翰”之前的任何內容,然后用“”替換為空字符串。

所以從左到右閱讀它:

  1. 呼叫 dataframe col 'Names'
  2. 對於 col 中的字符串,使用正則表達式將“John”之前的所有(*) 替換為空字符串 (“”)

實際上,您應該使用的正則表達式模式是:

.*(?=John$)

該模式表示貪婪地匹配所有內容,直到在Names列的最后匹配內容John 請注意,它不會消耗John ,它只會在停止匹配之前斷言它遵循。

您更新的代碼:

df["Names"] = df["Names"].str.replace(r'.*(?=John$)', '')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM