Pandas:删除多列中任意一列含指定字符串的行
解决方案
我们可以通过布尔索引筛选出Subject1和Subject2列都不包含"Science"字符串的行(这等价于删除任意一列包含"Science"的行),具体实现如下:
import pandas as pd # 创建原始DataFrame df = pd.DataFrame({'Subject1': ['Math', 'BioScience', 'PhysicalScience', 'Sociology', 'Psychology', 'Arts'], 'Subject2': ['BioScience', 'PhysicalScience', 'Sociology', 'Arts', 'Arts', 'PhysicalScience'], 'points': [10, 8, 10, 6, 6, 5]}) # 筛选符合要求的行 df_filtered = df[~df['Subject1'].str.contains('Science') & ~df['Subject2'].str.contains('Science')] # 查看结果 print(df_filtered)
代码说明
str.contains('Science'):检测列中每个元素是否包含目标字符串,返回布尔值序列~:对布尔序列取反,标记出不包含"Science"的行&:逻辑与操作,确保最终保留的行同时满足两列都不包含目标字符串的条件
运行结果
输出的筛选后DataFrame如下:
Subject1 Subject2 points 3 Sociology Arts 6 4 Psychology Arts 6
内容的提问来源于stack exchange,提问作者DPdl
相关产品推荐
相关产品推荐

