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

如何用0、1列表在Pandas中筛选DataFrame列?

Pandas依据二进制列表筛选列的实现方法

直接给你两种实用的实现方式,都能满足你的需求:

方法一:列表推导式匹配列名

先通过列表推导式筛选出binary_list中对应值为1的列名,再从DataFrame中提取这些列:

import pandas as pd

# 示例数据
df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6], 'c': [7,8,9]})
binary_list = [0,1,0]

# 筛选目标列名
selected_columns = [col for col, flag in zip(df.columns, binary_list) if flag == 1]
# 提取对应列
filtered_df = df[selected_columns]

方法二:布尔索引快速筛选

利用numpy将二进制列表转为布尔数组,直接通过布尔索引筛选列,代码更简洁:

import pandas as pd
import numpy as np

# 示例数据
df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6], 'c': [7,8,9]})
binary_list = [0,1,0]

# 转布尔数组后直接索引列
filtered_df = df.loc[:, np.array(binary_list).astype(bool)]

两种方法最终都会得到只包含b列的DataFrame,你可以根据习惯选择使用。

内容的提问来源于stack exchange,提问作者Ibrahim Abed-alghafer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:01:11