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

如何基于首行0值按列索引删除Pandas DataFrame中的列?

解决Pandas按列索引删除首行值为0的列的问题

直接上纯索引操作的解决方案,全程不用列名:

完整代码示例

import pandas as pd

data = {'col A': [1, 1, 1], 'col B': [0, 1, 1], 'col C': [1, 1, 0], 'col D': [1, 0, 1], 'col E':  [0, 1, 1]}
df = pd.DataFrame(data)

# 1. 按行索引取首行数据
first_row = df.iloc[0]
# 2. 生成保留列的布尔掩码:首行值不为0的列标记为True
keep_cols = first_row != 0
# 3. 用布尔索引筛选列,全程不涉及列名
df_filtered = df.loc[:, keep_cols]

print(df_filtered)

运行结果

输出的DataFrame就是预期的仅保留首行值为1的列:

col A  col C  col D
0      1      1      1
1      1      1      0
2      1      0      1

关键逻辑说明

  • df.iloc[0]直接通过行索引获取首行的所有列值
  • first_row != 0生成与列数对应的布尔数组,标记哪些列需要保留
  • df.loc[:, keep_cols]通过布尔索引筛选列,完全不需要指定任何列名,严格符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:05:57