Python如何删除包含指定字符串的列 示例:删除含'No'的列
Python删除包含指定字符串的列实现方案
使用pandas处理表格类数据即可快速实现需求,步骤如下:
- 导入pandas库
import pandas as pd
- 读取/构造你的数据,示例数据构造代码如下:
df = pd.DataFrame({ 'Rat': ['jkl', 'ghj', 'mmm', 'klj', 'kkk'], 'Rat 1': ['No', 'No', 'No', 'No', 'No'], 'Rat 2': ['jkl', 'jkhj', 'jkl', 'oo', 'jkk'] })
如果是读取本地csv文件,使用df = pd.read_csv('你的文件路径')即可。
3. 执行列筛选逻辑
分为两种匹配场景,按需选择:
- 子串匹配:只要单元格包含目标字符串就算命中(通用场景,符合当前需求)
target_str = 'No' # 保留所有不包含目标字符串的列 df = df.loc[:, ~df.apply(lambda x: x.str.contains(target_str, na=False)).any()]
- 完全匹配:仅单元格内容和目标字符串完全一致时才算命中
target_str = 'No' df = df.loc[:, ~df.apply(lambda x: (x == target_str).any())]
逻辑说明
x.str.contains(target_str, na=False):判断单个单元格是否包含目标字符串,na=False参数可避免空值报错.any():对每列的布尔结果做聚合,只要列中有一个命中就返回True~:布尔值取反,筛选出没有命中目标字符串的列- 执行后直接打印
df即可得到仅保留Rat和Rat 2两列的结果。
内容的提问来源于stack exchange,提问作者Rocky
相关产品推荐
相关产品推荐

