You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何统计Pandas DataFrame指定列中值为特定整数的行数?

统计DataFrame中数值列指定值的行数

没问题,这几种方法都能帮你快速统计出x列值为数字1的行数,结果正好是3:

首先先还原你的DataFrame:

import pandas as pd

df = pd.DataFrame({
    'x': [1, 1, 2, 3, 4, 5, 1],
    'y': ['a', 'b', 'c', 'd', 'e', 'f', 'g']
})

方法一:布尔索引求和(最直观)

这是最常用的方式,通过布尔判断筛选出符合条件的行,再求和得到数量:

count = (df['x'] == 1).sum()
print(count)  # 输出:3

解释:df['x'] == 1会生成一个布尔Series,x等于1的位置为True(等价于1),其余为False(等价于0),sum()会直接计算这些布尔值的总和,也就是符合条件的行数。

方法二:用value_counts()统计频次

如果需要同时查看多个值的出现次数,这个方法很方便,单独提取1的次数即可:

count = df['x'].value_counts().get(1, 0)
print(count)  # 输出:3

解释:value_counts()会统计x列每个唯一值的出现次数,返回一个以值为索引的Series。get(1, 0)表示获取索引为1的对应值,如果x列中没有1,则返回0。

方法三:query()筛选后取行数

用类SQL的语法筛选行,再通过shape[0]获取行数:

count = df.query('x == 1').shape[0]
print(count)  # 输出:3

解释:query('x == 1')会筛选出x列等于1的所有行,返回一个新的DataFrame,shape[0]就是这个DataFrame的行数。

其实你不用纠结数字和字符串的差异,pandas里判断逻辑是一致的——数字直接写数值,字符串加引号即可(比如df['y'] == 'a'),核心都是通过布尔筛选或频次统计来得到行数。

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

火山引擎 最新活动