《Pandas 简易速速上手小册》第4章:Pandas 数据探索与处理(2024 最新版)

简介: 《Pandas 简易速速上手小册》第4章:Pandas 数据探索与处理(2024 最新版)

c8d8ed47f9a1368db458c1960ee26c7.png

4.1 选择和过滤数据

选择和过滤数据是数据分析中的基本技巧,让我们深入了解如何在 Pandas 中执行这些操作。

4.1.1 基础知识

  1. 选择列: 使用列名来选择数据,例如 df['column_name']
  2. 选择行: 使用条件语句过滤行,例如 df[df['column_name'] > value]
  3. 使用 lociloc: loc 用于基于标签的选择,而 iloc 用于基于整数位置的选择。

4.1.2 重点案例:电影评分数据分析

假设你有一份电影评分的数据集,需要根据不同的条件选择和过滤数据。

数据准备

import pandas as pd
# 示例电影评分数据
data = {
    'movie_id': [1, 2, 3, 4, 5],
    'title': ['Movie A', 'Movie B', 'Movie C', 'Movie D', 'Movie E'],
    'rating': [8.5, 7.0, 9.0, 6.5, 7.5]
}
movies_df = pd.DataFrame(data)

选择和过滤数据

# 选择评分高于8的电影
high_rating_movies = movies_df[movies_df['rating'] > 8]
# 使用 loc 选择特定列
title_ratings = movies_df.loc[:, ['title', 'rating']]

4.1.3 拓展案例一:股市数据筛选

处理一份股市数据,筛选出特定条件下的股票。

数据准备

# 示例股市数据
stock_data = {
    'stock_id': ['S1', 'S2', 'S3', 'S4'],
    'price': [100, 150, 90, 120],
    'volume': [300, 200, 500, 100]
}
stocks_df = pd.DataFrame(stock_data)

数据筛选

# 选择价格低于120的股票
low_price_stocks = stocks_df[stocks_df['price'] < 120]

4.1.4 拓展案例二:客户订单数据查询

假设你正在处理一份客户订单的数据集,需要根据客户ID和订单量进行筛选。

数据准备

# 示例客户订单数据
order_data = {
    'order_id': [101, 102, 103, 104],
    'customer_id': [1, 2, 2, 1],
    'quantity': [3, 4, 5, 2]
}
orders_df = pd.DataFrame(order_data)

数据查询

# 选择特定客户的订单
customer_orders = orders_df[orders_df['customer_id'] == 2]
# 使用 iloc 选择前两行
first_two_orders = orders_df.iloc[:2]

通过这些案例,我们演示了如何在 Pandas 中选择和过滤数据。无论是电影评分、股市数据还是客户订单,掌握这些技巧可以帮助你更有效地对数据进行分析。


4.2 数据排序和排名

在数据分析中,能够有效地对数据进行排序和排名是非常重要的。这不仅帮助我们快速找到重要信息,还能揭示数据的潜在模式。

4.2.1 基础知识

  1. 排序数据: 使用 sort_values() 方法根据一列或多列的值对数据进行排序。
  2. 排名数据: 使用 rank() 方法为每行分配一个排名。
  3. 降序排序: 通过设置 ascending=False,可以进行降序排序。

4.2.2 重点案例:销售业绩排名

假设你有一份销售员的销售业绩数据,需要对其进行排序和排名。

数据准备

import pandas as pd
# 示例销售业绩数据
sales_data = {
    'salesperson': ['Alice', 'Bob', 'Charlie', 'David'],
    'sales': [200, 150, 300, 250]
}
sales_df = pd.DataFrame(sales_data)

排序和排名

# 根据销售额排序
sorted_sales_df = sales_df.sort_values(by='sales', ascending=False)
# 为销售员排名
sorted_sales_df['rank'] = sorted_sales_df['sales'].rank(ascending=False)

4.2.3 拓展案例一:学生考试成绩排序

处理一份学生的考试成绩表,根据成绩进行排序。

数据准备

# 示例学生考试成绩数据
exam_scores_data = {
    'student': ['John', 'Emma', 'Mark', 'Laura'],
    'score': [88, 92, 75, 85]
}
scores_df = pd.DataFrame(exam_scores_data)

数据排序

# 根据考试成绩排序
sorted_scores_df = scores_df.sort_values(by='score', ascending=False)

4.2.4 拓展案例二:产品评价排序

假设你有一份产品的顾客评价数据,需要根据评价分数排序。

数据准备

# 示例产品评价数据
product_reviews_data = {
    'product_id': [101, 102, 103, 104],
    'review_score': [4.5, 3.8, 4.2, 5.0]
}
reviews_df = pd.DataFrame(product_reviews_data)

评价排序

# 根据评价分数排序
sorted_reviews_df = reviews_df.sort_values(by='review_score', ascending=False)

通过这些案例,我们展示了如何在 Pandas 中有效地对数据进行排序和排名。这些技巧对于快速理解数据结构、识别关键信息和模式至关重要,无论是在业绩排名、学生成绩排序,还是产品评价分析中。


4.3 列的添加与删除

在数据分析的过程中,我们经常需要根据分析需求添加新的列或者删除不必要的列。掌握如何高效地进行这些操作对于数据处理来说至关重要。

4.3.1 基础知识

  1. 添加列: 可以直接通过赋值的方式添加新列,例如 df['new_column'] = value
  2. 基于现有列计算新列: 通过对现有列进行运算或应用函数来创建新列。
  3. 删除列: 使用 drop() 方法删除列,例如 df.drop('column_name', axis=1, inplace=True)

4.3.2 重点案例:雇员薪资调整

假设你正在处理一份雇员的薪资表,需要根据他们的绩效评分调整薪资。

数据准备

import pandas as pd
# 示例雇员薪资数据
salary_data = {
    'employee': ['Alice', 'Bob', 'Charlie'],
    'base_salary': [30000, 40000, 50000],
    'performance_score': [3.2, 4.5, 3.8]
}
salary_df = pd.DataFrame(salary_data)

添加新列

# 根据绩效评分调整薪资
salary_df['adjusted_salary'] = salary_df['base_salary'] * (1 + salary_df['performance_score'] / 10)

删除列

# 删除绩效评分列
salary_df.drop('performance_score', axis=1, inplace=True)

4.3.3 拓展案例一:学生总成绩计算

处理一份学生的成绩单,需要计算每个学生的总成绩。

数据准备

# 示例学生成绩数据
grades_data = {
    'student': ['John', 'Emma', 'Mark'],
    'math': [88, 76, 92],
    'science': [85, 90, 88]
}
grades_df = pd.DataFrame(grades_data)

计算总成绩

# 计算总成绩
grades_df['total'] = grades_df['math'] + grades_df['science']

4.3.4 拓展案例二:产品销售数据分析

假设你有一份产品的销售记录,需要分析每个产品的总销售额。

数据准备

# 示例产品销售数据
sales_data = {
    'product_id': [101, 102, 103],
    'units_sold': [30, 50, 20],
    'unit_price': [10, 20, 15]
}
sales_df = pd.DataFrame(sales_data)

计算总销售额

# 计算每个产品的总销售额
sales_df['total_sales'] = sales_df['units_sold'] * sales_df['unit_price']

通过这些案例,我们展示了如何在 Pandas 中有效地添加和删除列,以及如何基于现有数据创建新的数据列。这些技巧是数据预处理和特征工程的关键部分,无论是处理薪资数据、学生成绩,还是产品销售记录。

目录
相关文章
|
2月前
|
Serverless 数据处理 索引
Pandas中的shift函数:轻松实现数据的前后移动
Pandas中的shift函数:轻松实现数据的前后移动
184 0
|
18天前
|
Python
|
18天前
|
Python
|
17天前
|
Python
Pandas 常用函数-数据合并
Pandas 常用函数-数据合并
31 1
|
18天前
|
索引 Python
Pandas 常用函数-数据排序
10月更文挑战第28天
8 1
|
18天前
|
Python
Pandas 常用函数-查看数据
Pandas 常用函数-查看数据
14 2
|
18天前
|
SQL JSON 数据库
Pandas 常用函数-读取数据
Pandas 常用函数-读取数据
13 2
|
22天前
|
Python
通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法
在金融分析领域,&quot;死叉&quot;指的是短期移动平均线(如MA5)下穿长期移动平均线(如MA10),而&quot;金叉&quot;则相反。本文介绍了一种利用Python编程语言,通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法。该方法首先计算两种移动平均线,接着确定它们的交叉点,最后检查并输出最近一次死叉及其后是否形成了金叉。此技术广泛应用于股市趋势分析。
38 2
|
30天前
|
数据可视化 数据挖掘 Python
Pandas数据探索性可视化的最佳实践
【10月更文挑战第13天】数据可视化是数据分析中不可或缺的一环,它帮助我们更好地理解数据、发现趋势和模式,并有效地传达我们的发现。在Python领域,Pandas和Matplotlib是两个非常强大的库,它们提供了丰富的功能来进行数据分析和可视化。本文将介绍如何结合使用Pandas和Matplotlib进行数据探索性可视化的最佳实践。
57 9
|
17天前
|
Python
Pandas 常用函数-数据选择和过滤
Pandas 常用函数-数据选择和过滤
10 0

相关实验场景

更多
下一篇
无影云桌面