图片来源:《星空列车与白的旅行》CG及二创
439 字
1 分钟
笔记|数据分析学习笔记21|DataFrame案例
本系列所有文章都放在
数据科学标签,总目录如下:
21.1 案例概述
本节通过三个实际案例,综合运用 DataFrame 的创建、列运算、条件筛选、排序和聚合操作。
import numpy as npimport pandas as pd21.2 学生成绩分析
data = { '姓名': ['张三', '李四', '王五', '赵六', '钱七'], '数学': [85, 92, 78, 88, 95], '英语': [90, 88, 85, 92, 80], '物理': [75, 80, 88, 85, 90],}scores = pd.DataFrame(data)print(scores)输出:
姓名 数学 英语 物理0 张三 85 90 751 李四 92 88 802 王五 78 85 883 赵六 88 92 854 钱七 95 80 90计算总分和平均分:
scores['总分'] = scores[['数学', '英语', '物理']].sum(axis=1)scores['平均分'] = scores['总分'] / 3print(scores)输出:
姓名 数学 英语 物理 总分 平均分0 张三 85 90 75 250 83.3333331 李四 92 88 80 260 86.6666672 王五 78 85 88 251 83.6666673 赵六 88 92 85 265 88.3333334 钱七 95 80 90 265 88.333333sum(axis=1) 按行求和(沿列方向),计算每位学生的三科总分。
筛选条件组合:
# 数学高于90分 或 英语高于85分print(scores[(scores['数学'] > 90) | (scores['英语'] > 85)])输出:
姓名 数学 英语 物理 总分 平均分0 张三 85 90 75 250 83.3333331 李四 92 88 80 260 86.6666673 赵六 88 92 85 265 88.3333334 钱七 95 80 90 265 88.333333| 表示逻辑或,& 表示逻辑与。注意每个条件需要用括号括起来。
按总分排序取前 3 名:
print(scores.nlargest(3, columns='总分'))输出:
姓名 数学 英语 物理 总分 平均分3 赵六 88 92 85 265 88.3333334 钱七 95 80 90 265 88.3333331 李四 92 88 80 260 86.666667涉及方法: sum(axis=1)、| 条件组合、nlargest()、新增列运算。
21.3 销售数据分析
data = { '产品名称': ['A', 'B', 'C', 'D'], '单价': [100, 150, 200, 120], '销量': [50, 30, 20, 40]}df = pd.DataFrame(data)print(df)输出:
产品名称 单价 销量0 A 100 501 B 150 302 C 200 203 D 120 40计算总销售额并排序:
df['总销售额'] = df['单价'] * df['销量']print(df.nlargest(1, columns='总销售额')) # 销售额最高的产品print(df.sort_values('总销售额', ascending=False))输出:
产品名称 单价 销量 总销售额0 A 100 50 5000 产品名称 单价 销量 总销售额0 A 100 50 50003 D 120 40 48001 B 150 30 45002 C 200 20 4000涉及方法: 列间运算、nlargest()、sort_values()。
21.4 电商用户行为分析
data = { '用户ID': [101, 102, 103, 104, 105], '用户名': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'], '商品类别': ['电子产品', '服饰', '电子产品', '家居', '服饰'], '商品单价': [1200, 300, 800, 150, 200], '购买数量': [1, 3, 2, 5, 4],}df = pd.DataFrame(data)print(df)输出:
用户ID 用户名 商品类别 商品单价 购买数量0 101 Alice 电子产品 1200 11 102 Bob 服饰 300 32 103 Charlie 电子产品 800 23 104 David 家居 150 54 105 Eve 服饰 200 4计算消费金额与最优用户:
df['消费金额'] = df['商品单价'] * df['购买数量']print(df.nlargest(1, columns='消费金额'))输出:
用户ID 用户名 商品类别 商品单价 购买数量 消费金额2 103 Charlie 电子产品 800 2 1600print('平均消费金额:', df['消费金额'].mean())输出:
平均消费金额: 1050.0分类筛选统计:
# 统计电子产品的总购买数量print(df[df['商品类别'] == '电子产品']['购买数量'].sum())输出:
3分析流程: 先通过布尔索引 df['商品类别'] == '电子产品' 筛选出电子产品行,再取 ['购买数量'] 列,最后 sum() 求和。
涉及方法: 列运算、nlargest()、mean()、布尔索引 + 列筛选 + sum() 链式操作。
21.5 本节小结
本节通过三个案例综合运用了 DataFrame 的核心操作:
| 案例 | 涉及方法 |
|---|---|
| 学生成绩分析 | sum(axis=1)、nlargest()、| 条件筛选、新增列 |
| 销售数据分析 | 列间运算、nlargest()、sort_values() |
| 电商用户分析 | 布尔索引筛选、链式操作、mean()、sum() |
下一节我们将学习 Pandas 数据读取与写入。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
笔记|数据分析学习笔记21|DataFrame案例
https://luq-blog.xyz/posts/2026-07-04-data-notes-21-df-cases/ 部分信息可能已经过时
相关文章 智能推荐
1
笔记|数据分析学习笔记16|Series案例
理工研习 本节通过学生成绩、温度、股票、销售等实际案例,综合运用 Series 的创建、统计、筛选、排序、重采样等方法,巩固前几节所学知识。
2
笔记|数据分析学习笔记19|DataFrame的访问
理工研习 本节介绍 Pandas DataFrame 的数据访问方式,包括 loc、iloc、at、iat 索引器以及布尔索引、单列/多列获取、抽样等操作。
3
笔记|数据分析学习笔记20|DataFrame的常用方法
理工研习 本节介绍 Pandas DataFrame 的常用方法,包括统计描述、缺失值判断、去重排序、值替换和频率统计等操作。
4
笔记|数据分析学习笔记18|DataFrame的属性
理工研习 本节介绍 Pandas DataFrame 的常用属性,包括 index、columns、values、shape、dtypes、T 等,掌握 DataFrame 元信息的获取方式。
5
笔记|数据分析学习笔记17|DataFrame的介绍和创建
理工研习 本节介绍 Pandas DataFrame 的二维表格结构,包括行索引、列标签的概念以及通过 Series 和字典创建 DataFrame 的方法。
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)