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

如何统计Pandas DataFrame中包含值-999的列数量

统计DataFrame中包含-999的列的数量

嘿,这个需求用Pandas几行代码就能轻松搞定,核心思路就是先判断每列是否存在目标值,再统计符合条件的列数。

直接上解决方案,假设你的DataFrame名为df,可以这么写:

# 统计至少包含一个-999的列的数量
target_column_count = df.isin([-999]).any().sum()
print(target_column_count)

给你拆解下这段代码的逻辑:

  • df.isin([-999]):生成一个和原DataFrame结构完全一致的布尔矩阵,每个单元格如果等于-999就标记为True,否则为False。
  • .any():对每一列做判断——只要该列里有一个True(也就是存在至少一个-999),就返回True,否则返回False。这一步会得到一个布尔Series,索引就是原DataFrame的列名。
  • .sum():把布尔Series里的True累加起来(Python里True等价于1,False等价于0),最终结果就是你要的包含-999的列的总数。

用你给出的示例数据测试的话,代码如下:

import pandas as pd

# 构造示例DataFrame
data = {
    'A': [1, -999, 3],
    'B': [-999, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data)

# 统计符合条件的列数
count = df.isin([-999]).any().sum()
print(count)  # 输出结果为2,和预期一致

如果之后需要检查其他特定值,只要把[-999]替换成目标值即可,这个逻辑完全通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:17:39