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

如何用Pandas的iloc按列索引统计指定模式的出现次数?

按列索引统计电子表格中'N/A'的出现次数

现有多份电子表格,缺失值统一用文本'N/A'标记。由于无法提前知晓列名,只能通过列索引统计指定范围内各列的'N/A'出现次数——其中前几列固定,后续列会随表格类型变化。

示例数据

用Pandas构造的示例DataFrame如下:

import pandas as pd

df = pd.DataFrame([[1000, 'Jerry', 'BR1','BR1','N/A'], 
                    [1001, 'N/A', 'N/A', 'BR1','N/A'], 
                    ['N/A', 'N/A', 'BR3', 'BR2','N/A'],
                    [1003, 'Perry','BR4','BR1','N/A']],
                   columns=['ID', 'Name', 'Branch', 'Member of','Status'])

需求说明

要实现类似df.iloc[:, 10:].contains('N/A').count()的功能(含取反操作),最终输出类似value_counts的结构化结果,比如针对示例数据中从第2列(索引1)开始的列,统计后输出:

Name    2
Branch   1
Status   4

实现代码

直接用Pandas的iloc选列,配合eq()和sum()就能完成需求:

1. 统计指定列范围的'N/A'次数

比如要统计从第2列(索引1)到最后一列的'N/A'数量:

# 按索引选取目标列 → 判断元素是否为'N/A' → 按列求和统计次数
na_counts = df.iloc[:, 1:].eq('N/A').sum()
print(na_counts)

输出结果:

Name          2
Branch        1
Member of     0
Status        4
dtype: int64

2. 取反操作:统计非'N/A'的数量

把判断条件换成ne()(不等于)即可:

non_na_counts = df.iloc[:, 1:].ne('N/A').sum()
print(non_na_counts)

输出结果:

Name          2
Branch        3
Member of     4
Status        0
dtype: int64

如果需要调整统计的列范围,只修改iloc里的索引切片就行——比如要统计从第11列(索引10)到末尾,就写df.iloc[:, 10:]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:30:49