You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选保留单元格含指定字符串的DataFrame列?

Pandas 按单元格内容筛选列的实现方案

核心需求为筛选保留**任意单元格包含指定字符串other**的列,直接用pandas内置方法即可实现,无需复杂逻辑。


最简实现代码

假设你的原始DataFrame命名为df,筛选代码如下:

target_str = "other"
# 保留所有包含目标字符串的列
df = df.loc[:, df.apply(lambda col: col.astype(str).str.contains(target_str).any())]

代码说明

  • df.apply(lambda col: ...):遍历DataFrame的每一列做判断
  • astype(str):将列内所有元素转为字符串,避免非字符串类型(数字、空值等)导致匹配报错
  • str.contains(target_str):检查每个单元格是否包含目标字符串
  • any():只要该列存在任意一个符合条件的单元格,就判定该列需要保留
  • 如果需要忽略大小写匹配,可以在str.contains里加参数case=False

示例验证

针对你给出的四列测试场景,我们可以用以下代码验证效果:

import pandas as pd
# 构造符合你描述的测试数据
df = pd.DataFrame({
    "A": ["test1", "other", "test3"],
    "B": ["other", "test2", "test3"],
    "C": ["test1", "test2", "test3"],
    "D": ["test1", "test2", "other"]
})

# 执行筛选
target_str = "other"
df_filtered = df.loc[:, df.apply(lambda col: col.astype(str).str.contains(target_str).any())]

# 输出筛选后的列名,结果为 ['A', 'B', 'D'],符合预期
print(df_filtered.columns.tolist())

内容的提问来源于stack exchange,提问作者RoryH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:06:10