Pandas 中文手册

3.6 Series实战案例(巩固基础)

Pandas Series实战案例 - 学生成绩、数值计算、重复与缺失值处理

Pandas 中文手册

本章节通过三个实战案例巩固Pandas Series基础,包括创建学生成绩Series进行统计与筛选、数值计算与转换、处理重复值与缺失值,适合新手学习快速上手。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

Series实战案例(巩固基础)

Series是Pandas中的一维数据结构,类似于带标签的数组,广泛应用于数据处理和分析中。本章节通过三个实战案例,帮助新手巩固Series的基础知识,从创建、统计到处理常见问题,提升实际操作能力。

案例1:创建学生成绩Series,完成统计与筛选

在这个案例中,我们将创建一个学生成绩的Series,并进行基本统计和筛选操作。

创建Series

假设有5个学生的数学成绩,我们可以使用Pandas的Series来存储,并添加学生姓名作为索引。

import pandas as pd

# 创建学生成绩Series
grades = pd.Series([85, 92, 78, 95, 88], index=['Alice', 'Bob', 'Charlie', 'David', 'Eve'])
print("学生成绩Series:")
print(grades)

输出:

学生成绩Series:
Alice      85
Bob        92
Charlie    78
David      95
Eve        88
dtype: int64

统计操作

使用Pandas的统计方法快速获取摘要信息。

# 使用describe()方法获取统计摘要
print("统计摘要:")
print(grades.describe())

# 计算平均分、最高分和最低分
print(f"平均分: {grades.mean()}")
print(f"最高分: {grades.max()}")
print(f"最低分: {grades.min()}")

筛选操作

通过布尔索引筛选满足特定条件的学生。

# 筛选成绩高于90分的学生
high_grades = grades[grades > 90]
print("成绩高于90分的学生:")
print(high_grades)

# 筛选成绩在80到90分之间的学生
mid_grades = grades[(grades >= 80) & (grades <= 90)]
print("成绩在80到90分之间的学生:")
print(mid_grades)

总结:本案例展示了如何创建Series、使用索引方便访问数据,并通过统计和筛选进行初步分析。对于新手,建议多练习这些基本操作,以加深理解。

案例2:Series的数值计算与结果转换

Series支持多种数值计算,我们可以轻松进行数学运算和数据类型转换。

数值计算

假设我们想给所有学生的成绩加10分作为奖励。

# 成绩加10分
bonus_grades = grades + 10
print("加10分后的成绩:")
print(bonus_grades)

Series还支持其他运算,如减、乘、除或使用函数。

# 其他运算示例:成绩平方
squared_grades = grades ** 2
print("成绩平方:")
print(squared_grades)

结果转换

有时需要转换数据类型,例如将整数转换为浮点数。

# 将成绩转换为浮点数
float_grades = grades.astype(float)
print("转换为浮点数:")
print(float_grades)

或者,将Series转换为列表或数组。

# 转换为列表
grades_list = grades.tolist()
print("转换为列表:", grades_list)

总结:数值计算和转换是数据处理中的常见任务,Pandas Series提供了灵活的接口,帮助用户高效完成操作。新手应熟悉这些方法,以适应不同场景需求。

案例3:处理Series中的重复值与缺失值

在实际数据中,重复值和缺失值是常见问题,Pandas提供了便捷的方法来处理它们。

处理重复值

首先,检查Series中是否有重复值。

# 假设有一个包含重复值的Series
repeated_grades = pd.Series([85, 92, 85, 78, 95], index=['Alice', 'Bob', 'Alice2', 'Charlie', 'David'])
print("包含重复值的Series:")
print(repeated_grades)

# 检查重复值
duplicates = repeated_grades.duplicated()
print("重复值检查结果:")
print(duplicates)

# 删除重复值,保留第一个出现的值
deduplicated_grades = repeated_grades.drop_duplicates()
print("删除重复值后:")
print(deduplicated_grades)

处理缺失值

缺失值通常用NaN表示,我们可以检测和处理它们。

# 创建一个包含缺失值的Series
import numpy as np
grades_with_na = pd.Series([85, np.nan, 78, 95, np.nan], index=['Alice', 'Bob', 'Charlie', 'David', 'Eve'])
print("包含缺失值的Series:")
print(grades_with_na)

# 检查缺失值
missing = grades_with_na.isnull()
print("缺失值检查结果:")
print(missing)

# 填充缺失值,例如用平均分填充
filled_grades = grades_with_na.fillna(grades_with_na.mean())
print("填充缺失值后(用平均分):")
print(filled_grades)

# 或者删除缺失值
dropped_grades = grades_with_na.dropna()
print("删除缺失值后:")
print(dropped_grades)

总结:处理重复和缺失值是数据清洗的关键步骤。新手应掌握使用duplicated()drop_duplicates()isnull()fillna()dropna()等方法,以确保数据质量。

章节总结

本章通过三个实战案例,从基础创建到高级处理,全面覆盖了Series的核心操作。建议新手在理解概念后,动手实践这些案例,并结合实际项目加深记忆。未来章节将继续深入Pandas的其他功能。

扩展练习

  • 尝试创建一个自己的Series,如产品销量数据,进行统计和筛选。
  • 对Series进行自定义数值计算,如乘以系数后转换数据类型。
  • 模拟一个包含大量重复和缺失值的数据集,练习处理技巧。
开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包