当前位置: 首页 > article >正文

python之size,count的区别

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


1. size() 方法

  • 功能:统计每个分组的 总行数(包括所有列的空值 NaN)。
  • 返回值:一个 Series,索引为分组键,值为每个组的 总行数
  • 特点
    • 不区分列,只统计行数
    • 包含空值(NaN)的行
示例
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)

输出:

户型
一室    2
三室    1
两室    2
dtype: int64

2. count() 方法

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

输出:

      价格
户型    
一室   1  # 价格列有一个 NaN
三室   1
两室   2

对比表格

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

使用场景

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

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

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

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

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

扩展用法

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

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

总结

  • 如果只需要知道 每组有多少行数据(无论是否有空值),用 size()
  • 如果需要分析 每列的有效数据量(排除空值),用 count()

http://www.kler.cn/a/610952.html

相关文章:

  • 加载dll插件自动提示文字信息——cad c#二次开发
  • PyTorch DDP快速上手附代码
  • 【大模型开发】将vocab解码
  • webpackVSVite热更新本质区别
  • 测试 SpatialLM 空间语义识别
  • AI之山,鸿蒙之水,画一幅未来之家
  • Python正则表达式(一)
  • 鸿蒙系统起飞!Flutter 完全适配指南CSDN2021-01-23 02:47
  • 深度解析:4G路由器CPE性能测试的五大关键指标
  • 影刀魔法指令3.0:开启自动化新篇章
  • 编写简单的小程序
  • SpringCloud入门、搭建、调试、源代码
  • Flink 常用及优化参数
  • Serverless架构的应用场景
  • 文件上传的小点总结
  • 自然语言处理(11:RNN(RNN的前置知识和引入)
  • 学习爬虫的第二天——分页爬取并存入表中
  • NO.58十六届蓝桥杯备战|基础算法-枚举|普通枚举|二进制枚举|铺地毯|回文日期|扫雷|子集|费解的开关|Even Parity(C++)
  • Spring MVC 配置详解与入门案例
  • 3ds Max 2026 新功能全面解析