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



我有一个3列的数据框,我想删除所有行,其中包含字符串(搜索键)的一部分。

我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'])]

不行,因为我需要写准确的电子邮件地址。

使用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

或支持regex的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

相关内容

  • 没有找到相关文章

最新更新