簡體   English   中英

如何刪除 python 中包含部分(搜索詞)的行?

[英]How can I delete the lines that contain a part (search word) in python?

我有一個 3 列的 dataframe,我想刪除所有行,其中包含字符串的一部分(搜索鍵)。

我的 dataframe:

    user_name   user_first_name     user_email
    Max          Mustermann          max.musterman@gmail.com
    Tom          Hans                tom.musterman@web.de
    Tom1          Hans1              tom.musterman@test.de

我的搜索關鍵字是:@gmail.com,@web.de

df = df[~df['user_email'].isin(['*@gmail.com'])]

它不起作用,因為我需要寫 excat email 地址。

使用str.endswith

df = df[~df['user_email'].str.endswith('@gmail.com')]

  user_name user_first_name             user_email
1       Tom            Hans   tom.musterman@web.de
2      Tom1           Hans1  tom.musterman@test.de

或支持正則表達式str.contains

df = df[~df['user_email'].str.contains('.*@gmail\.com$')]

  user_name user_first_name             user_email
1       Tom            Hans   tom.musterman@web.de
2      Tom1           Hans1  tom.musterman@test.de

您的列表暗示您可能想要傳遞多個條件,因此str.contains可能是最好的選擇,使用| 划定條件:

df = df[~df['user_email'].str.contains('.*@gmail\.com$|.*@web\.de$')]

  user_name user_first_name             user_email
2      Tom1           Hans1  tom.musterman@test.de

暫無
暫無

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

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