如何在Pandas DataFrame中统计'MISSED'值?
统计Pandas DataFrame中的'MISSED'值
当然可以搞定这个需求!Pandas虽然没有专门针对'MISSED'的内置统计函数,但用现有工具就能轻松实现,思路和你用df.isnull().sum()统计NaN完全一致~
我给你几种实用的操作方法:
按列统计'MISSED'数量:和
isnull()的逻辑一样,我们先用eq('MISSED')判断每个元素是否等于'MISSED'(返回布尔值的DataFrame),再用sum()累加每列的匹配次数:df.eq('MISSED').sum()这个操作会返回一个Series,每个值对应对应列中'MISSED'的总数。
统计整个DataFrame的'MISSED'总数:如果需要知道整个表格里一共有多少个'MISSED',只需要在上面的基础上再套一层
sum(),或者直接操作底层数组提升效率:# 两层sum累加列的结果 df.eq('MISSED').sum().sum() # 更高效的写法:直接操作numpy数组 (df == 'MISSED').values.sum()针对特定列统计:如果只需要统计某一列的'MISSED'数量,直接指定列名即可:
df['目标列名'].eq('MISSED').sum()
实际示例演示
假设我们有这样一个DataFrame:
import pandas as pd data = { '订单状态': ['MISSED', '已完成', 'MISSED', None], '支付状态': ['已支付', 'MISSED', '已支付', 'MISSED'] } df = pd.DataFrame(data)
运行df.eq('MISSED').sum()会得到:
订单状态 2 支付状态 2 dtype: int64
如果担心'MISSED'有大小写或空格问题(比如missed、MISSED),可以先做统一格式处理:
df.apply(lambda col: col.str.strip().str.upper()).eq('MISSED').sum()
内容的提问来源于stack exchange,提问作者b0chData
相关产品推荐
相关产品推荐

