簡體   English   中英

從pandas數據框中的字符串中刪除特定URL

[英]Remove a SPECIFIC url from a string in a pandas dataframe

我有一個數據框:

Name  url

 A    'https://foo.com, https://www.bar.org, https://goo.com'
 B    'https://foo.com, https://www.bar.org, https://www.goo.com'
 C    'https://foo.com, https://www.bar.org, https://goo.com'

然后是關鍵字列表:

keyword_list = ['foo','bar']

我正在嘗試刪除包含關鍵字的網址,同時保留不包含這些關鍵字的網址,到目前為止,這是唯一對我有用的方法,但是它僅刪除了該單詞的實例:

df['url'] = df['url'].str.replace('|'.join(keywordlist), ' ')

我試圖將字符串中的元素轉換為列表,但是將其與部分較大的數據框組合回去時卻遇到索引錯誤,之前有人遇到過這種情況嗎?

所需的輸出:

Name  url

 A    'https://goo.com'
 B    'https://www.goo.com'
 C    'https://goo.com'

我很確定您可以使用一些正則表達式來做到這一點。 但是您也可以這樣做:

new_df = df.set_index('Name').url.str.split(',\s+', expand=True).stack()

(new_df[~new_df.str.contains('|'.join(keyword_list))]
      .reset_index(level=1, drop=True)
      .to_frame(name='url')
      .reset_index()
)

輸出:

  Name                  url
0    A      https://goo.com
1    B  https://www.goo.com
2    C      https://goo.com

暫無
暫無

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

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