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

如何在加载到Pandas前筛选Excel数据:仅导入Disabled状态用户

仅加载Excel中Status为"Disabled"的用户到Pandas DataFrame

有两种常见实现方式,可根据数据量选择:

方法一:先读取数据再筛选(适合小数据集)

这种方式简单直观,先读取包含Status列的目标数据,再过滤符合条件的行:

import pandas as pd

# 读取指定列(用列名更稳妥,避免列位置变动)
df = pd.read_excel('Users.XLSX', sheet_name='WebUsers', usecols=["A", "B", "Status"])
# 筛选Status为Disabled的记录
df_disabled = df[df['Status'] == 'Disabled']
# 若不需要保留Status列,可删除
df_disabled = df_disabled.drop(columns=['Status'])
print(df_disabled)

如果知道Status列的位置(比如是C列),也可以把usecols写成"A,B,C",效果一致。

方法二:逐行筛选后加载(适合大数据集)

如果Excel文件很大,全量加载会占用过多内存,可借助openpyxl引擎逐行读取并筛选:

import pandas as pd
from openpyxl import load_workbook

# 以只读模式加载工作簿
wb = load_workbook('Users.XLSX', read_only=True)
ws = wb['WebUsers']

# 获取表头并定位Status列的位置
headers = [cell.value for cell in ws[1]]
status_col_idx = headers.index('Status')

# 收集符合条件的A、B列数据
filtered_data = []
for row in ws.iter_rows(min_row=2, values_only=True):
    if row[status_col_idx] == 'Disabled':
        # 提取A、B列对应的数据(假设A是第0位,B是第1位)
        filtered_data.append([row[0], row[1]])

# 转换为DataFrame
df_disabled = pd.DataFrame(filtered_data, columns=[headers[0], headers[1]])
print(df_disabled)

# 关闭工作簿
wb.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:10:01