python之size,count的区别

在 Pandas 中,size()count() 都是用于统计分组后的数据量,但它们的计算逻辑和返回值有本质区别。以下是两者的详细对比:


1. size() 方法

  • 功能 :统计每个分组的 总行数 (包括所有列的空值 NaN)。
  • 返回值 :一个 Series,索引为分组键,值为每个组的 总行数
  • 特点
    • 不区分列,只统计行数
    • 包含空值(NaN)的行
示例
python 复制代码
import pandas as pd
import numpy as np

data = pd.DataFrame({
    '户型': ['一室', '一室', '两室', '两室', '三室'],
    '价格': [100, np.nan, 200, 250, 300]
})

# 使用 size
size_result = data.groupby('户型').size()
print(size_result)

输出:

plain 复制代码
户型
一室    2
三室    1
两室    2
dtype: int64

2. count() 方法

  • 功能 :统计每个分组中 非空值(Non-NaN)的数量,按列分别统计。
  • 返回值 :一个 DataFrame,索引为分组键,每列为该列的非空值数量。
  • 特点
    • 按列统计
    • 排除空值(NaN)的行
示例
python 复制代码
# 使用 count
count_result = data.groupby('户型').count()
print(count_result)

输出:

plain 复制代码
      价格
户型    
一室   1  # 价格列有一个 NaN
三室   1
两室   2

对比表格

方法 统计对象 是否包含空值 返回类型 典型场景
size() 所有行数 ✅ 包含 Series 统计每个分组的样本总量
count() 每列的非空值数 ❌ 不包含 DataFrame 分析数据完整度(缺失值统计)

使用场景

size()** 的适用场景**

统计每个分组的 总数据条数,例如:

python 复制代码
# 统计每个户型出现的总次数(无论价格是否缺失)
house_type_counts = data.groupby('户型').size()
count()** 的适用场景**

分析每列的 数据完整度,例如:

python 复制代码
# 检查价格列的缺失情况
price_valid_counts = data.groupby('户型')['价格'].count()

扩展用法

统计单列的非空值数量
python 复制代码
# 等效于 data.groupby('户型')['价格'].count()
price_count = data.groupby('户型').count()['价格']
综合使用示例
python 复制代码
# 计算价格均值时自动过滤缺失值
mean_price = data.groupby('户型')['价格'].mean()

# 通过 count 验证参与计算的样本量
valid_samples = data.groupby('户型')['价格'].count()

总结

  • 如果只需要知道 每组有多少行数据 (无论是否有空值),用 size()
  • 如果需要分析 每列的有效数据量 (排除空值),用 count()
相关推荐
白日做梦Q2 分钟前
Anchor-free检测器全解析:CenterNet vs FCOS
python·深度学习·神经网络·目标检测·机器学习
喵手17 分钟前
Python爬虫实战:公共自行车站点智能采集系统 - 从零构建生产级爬虫的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集公共自行车站点·公共自行车站点智能采集系统·采集公共自行车站点导出csv
喵手24 分钟前
Python爬虫实战:地图 POI + 行政区反查实战 - 商圈热力数据准备完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·地区poi·行政区反查·商圈热力数据采集
熊猫_豆豆30 分钟前
YOLOP车道检测
人工智能·python·算法
nimadan1231 分钟前
**热门短剧小说扫榜工具2025推荐,精准捕捉爆款趋势与流量
人工智能·python
默默前行的虫虫36 分钟前
MQTT.fx实际操作
python
YMWM_1 小时前
python3继承使用
开发语言·python
JMchen1231 小时前
AI编程与软件工程的学科融合:构建新一代智能驱动开发方法学
驱动开发·python·软件工程·ai编程
亓才孓1 小时前
[Class类的应用]反射的理解
开发语言·python
小白狮ww1 小时前
要给 OCR 装个脑子吗?DeepSeek-OCR 2 让文档不再只是扫描
人工智能·深度学习·机器学习·ocr·cpu·gpu·deepseek