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

Pandas按first前缀列筛选行后如何保留原DataFrame全部列

解决方案

你之前的写法仅返回first前缀列的核心原因是:先调用filter(like='first')生成了仅包含匹配列的子DataFrame,再基于这个子DataFrame做行筛选,返回结果自然只有子DataFrame的列。
只需要把行筛选的布尔条件单独提取,直接作用在原DataFrame上即可,实现代码如下:

# 生成行筛选布尔掩码:只要任意first前缀列的值大于4,对应行标记为True
mask = (temp.filter(like='first') > 4).any(axis=1)
# 用掩码索引原DataFrame,保留全部列
result = temp[mask]

补充说明

  • 代码中使用any(axis=1)替代了原写法的sum(axis=1) > 0,二者逻辑完全等价,前者语义更明确,直接表示「行内存在至少一个符合判断条件的值」,可读性更高。
  • 生成的mask是和原DataFrame索引完全对齐的布尔序列,直接索引原DataFrame时只会过滤不符合条件的行,不会修改列的范围,最终输出完全符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:39:05