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

Python Pandas如何排除id、col1列删除col2-col6全False行?

解决方法:删除指定列全为False的行

核心思路

只针对col2到col6这几列做判断——只要这些列里有至少一个True,就保留该行,完全不考虑id和col1的值。

正确代码实现

有两种常用写法,根据你的列结构灵活选择:

写法1:直接指定目标列名(列不连续也适用)

import pandas as pd

# 假设你的数据集存储在df中
target_cols = ['col2', 'col3', 'col4', 'col5', 'col6']
# 生成过滤掩码:判断每行的目标列是否不全为False
mask = df[target_cols].any(axis=1)
# 过滤得到结果
filtered_df = df[mask]

写法2:按列位置切片(列连续时更便捷)

如果你的列顺序是id、col1、col2、col3、col4、col5、col6(即col2到col6对应索引0开始的第2到第6列),可以用位置切片:

# iloc[:, 2:7]表示选中所有行、第2到第6列(切片左闭右开,所以写2:7)
mask = df.iloc[:, 2:7].any(axis=1)
filtered_df = df[mask]

报错原因分析

你遇到的list indices must be integers or slices, not str错误,大概率是列选择的语法出错:

  • 比如错误写了df[['col2':'col6']]——列表里不能用字符串切片,连续列切片应该用df.loc[:, 'col2':'col6']
  • 或者误将列名当作列表的整数索引使用,导致用字符串索引列表触发报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:05:02