【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析

简介: 【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析

1 描述性统计(Descriptive Statistics)

       描述性统计是一种用于汇总和理解数据集的方法,它提供了关于数据分布、集中趋势和离散度的信息。Pandas 提供了 describe() 方法,它可以生成各种描述性统计信息,包括均值、标准差、最小值、最大值、四分位数等。以下是详细的描述性统计示例:

首先,假设你有一个包含一些学生考试成绩的 DataFrame:

import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
        'Math': [85, 92, 78, 88, 95],
        'English': [78, 85, 89, 92, 88],
        'Science': [90, 86, 76, 93, 89]}
df = pd.DataFrame(data)
# 使用 describe() 方法生成描述性统计信息
description = df.describe()
# 输出结果
print(description)

输出结果将会是:

2 数据分组和聚合

       数据分组和聚合是数据分析中常用的操作,用于根据某些特征将数据分组,并对每个分组应用聚合函数,以便获得有关每个组的统计信息。在 Pandas 中,你可以使用 groupby() 方法来实现数据分组,然后使用各种聚合函数对分组后的数据进行计算。以下是详细的示例和解释:

假设你有一个包含不同城市销售数据的 DataFrame:

import pandas as pd
data = {'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Chicago', 'Los Angeles'],
        'Sales': [1000, 750, 800, 1200, 900, 850]}
df = pd.DataFrame(data)
# 使用 groupby() 方法按城市分组
grouped = df.groupby('City')
# 对每个组应用聚合函数(例如,计算平均销售额)
result = grouped['Sales'].mean()
# 输出结果
print(result)

使用 groupby() 方法将数据按城市分组,并对每个城市的销售数据进行聚合:

输出结果:

       在这个示例中,我们首先使用 groupby() 方法按城市分组,然后对每个城市的销售数据应用了 mean() 聚合函数。结果中包含了每个城市的平均销售额。

       你还可以应用其他聚合函数,如 sum()、max()、min() 等,以获取更多信息。例如,你可以计算每个城市的总销售额:

total_sales = grouped['Sales'].sum()

     除了单个聚合函数外,你还可以同时应用多个聚合函数,并将结果合并到一个 DataFrame 中。这可以通过 agg() 方法来实现

import pandas as pd
data = {'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Chicago', 'Los Angeles'],
        'Sales': [1000, 750, 800, 1200, 900, 850]}
df = pd.DataFrame(data)
# 使用 groupby() 方法按城市分组
grouped = df.groupby('City')
# 同时计算平均销售额和总销售额,并将结果合并到一个 DataFrame 中
result = grouped['Sales'].agg(['mean', 'sum'])
# 输出结果
print(result)

输出结果:

3 数据透视表

       数据透视表是一种用于对数据进行多维度汇总和分析的工具。在 Pandas 中,你可以使用 pivot_table() 函数来创建数据透视表。下面是一个详细的数据透视表示例:

假设你有一个包含销售数据的 DataFrame:

import pandas as pd
data = {'Date': ['2023-09-01', '2023-09-01', '2023-09-02', '2023-09-02', '2023-09-03'],
        'Product': ['A', 'B', 'A', 'B', 'A'],
        'Sales': [1000, 750, 1200, 800, 900]}
df = pd.DataFrame(data)

现在,假设你想要创建一个数据透视表,以便查看每个产品每天的总销售额。你可以使用 pivot_table() 来实现这个目标:

# 创建数据透视表,以Date为行索引,Product为列,计算总销售额
pivot = df.pivot_table(index='Date', columns='Product', values='Sales', aggfunc='sum')
# 输出结果
print(pivot)

输出结果:

       在这个示例中,我们使用了 pivot_table() 函数,将 "Date" 列作为行索引,"Product" 列作为列,并计算了每个组合的销售额之和。结果是一个数据透视表,它以日期为行,以产品为列,每个单元格中包含了对应日期和产品的销售额。

       如果某个日期没有某个产品的销售数据,相应的单元格将显示为 NaN(Not a Number)。你还可以在 aggfunc 参数中指定其他聚合函数,例如 'mean'、'max'、'min' 等,以根据你的需求生成不同类型的数据透视表。


4 相关性分析

        相关性分析是用来确定两个或多个变量之间关系的统计方法,通常用于了解它们之间的相关程度和方向。在 Pandas 中,你可以使用 corr() 方法来计算相关性系数(如 Pearson 相关系数)来衡量两个数值列之间的相关性。以下是相关性分析的详细示例和解释:

假设你有一个包含两个数值列的 DataFrame,表示学生的数学和英语成绩:

import pandas as pd
data = {'Math': [85, 92, 78, 88, 95],
        'English': [78, 85, 89, 92, 88]}
df = pd.DataFrame(data)

接下来,你可以使用 corr() 方法来计算这两个列之间的相关性:

# 使用 corr() 方法计算数学和英语成绩之间的相关性
correlation = df['Math'].corr(df['English'])
# 输出结果
print("Correlation between Math and English scores:", correlation)

输出结果:

在这个示例中,我们使用了 corr()法计算了数学和英语成绩之间的相关性系数。相关性系数的值范围从 -1 到 1,其中:

  • 1 表示完全正相关:当一个变量增加时,另一个变量也增加,变化方向相同。
  • 0 表示无相关性:两个变量之间没有线性关系。
  • -1 表示完全负相关:当一个变量增加时,另一个变量减少,变化方向相反。
目录
相关文章
|
7天前
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化
|
12天前
|
存储 安全 算法
显微镜下的安全战!Python加密解密技术,透视数字世界的每一个安全细节
【9月更文挑战第7天】在数字世界中,数据安全至关重要。Python加密解密技术如同显微镜下的精密工具,确保信息的私密性和完整性。以大型医疗机构为例,通过AES和RSA算法的结合,既能高效加密大量医疗数据,又能安全传输密钥,防止数据泄露。以下是使用Python的`pycryptodome`库实现AES加密和RSA密钥交换的简化示例。此方案不仅提高了数据安全性,还为数字世界的每个细节提供了坚实保障,引领我们迈向更安全的未来。
21 1
|
17天前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【9月更文挑战第2天】数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
44 5
|
22天前
|
存储 数据可视化 前端开发
7个Pandas&Jupyter特殊技巧,让Python数据分析更轻松
7个Pandas&Jupyter特殊技巧,让Python数据分析更轻松
|
22天前
|
SQL 数据可视化 数据挖掘
一文带你看懂Python数据分析利器——Pandas的前世今生
一文带你看懂Python数据分析利器——Pandas的前世今生
|
28天前
|
数据采集 数据挖掘 数据处理
解锁Python数据分析新技能!Pandas实战学习,让你的数据处理能力瞬间飙升!
【8月更文挑战第22天】Python中的Pandas库简化了数据分析工作。本文通过分析一个金融公司的投资数据文件“investment_data.csv”,介绍了Pandas的基础及高级功能。首先读取并检查数据,包括显示前几行、列名、形状和数据类型。随后进行数据清洗,移除缺失值与重复项。接着转换日期格式,并计算投资收益。最后通过分组计算平均投资回报率,展示了Pandas在数据处理与分析中的强大能力。
30 0
|
4天前
|
Python
Python编程中的异常处理:理解与实践
【9月更文挑战第14天】在编码的世界里,错误是不可避免的。它们就像路上的绊脚石,让我们的程序跌跌撞撞。但是,如果我们能够预见并优雅地处理这些错误,我们的程序就能像芭蕾舞者一样,即使在跌倒的边缘,也能轻盈地起舞。本文将带你深入了解Python中的异常处理机制,让你的代码在面对意外时,依然能保持优雅和从容。
139 73
|
4天前
|
人工智能 数据挖掘 数据处理
揭秘Python编程之美:从基础到进阶的代码实践之旅
【9月更文挑战第14天】本文将带领读者深入探索Python编程语言的魅力所在。通过简明扼要的示例,我们将揭示Python如何简化复杂问题,提升编程效率。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开一扇通往高效编码世界的大门。让我们开始这段充满智慧和乐趣的Python编程之旅吧!
|
3天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从零基础到实战应用
【9月更文挑战第15天】本文将引导读者从零开始学习Python编程,通过简单易懂的语言和实例,帮助初学者掌握Python的基本语法和常用库,最终实现一个简单的实战项目。文章结构清晰,分为基础知识、进阶技巧和实战应用三个部分,逐步深入,让读者在学习过程中不断积累经验,提高编程能力。
|
4天前
|
机器学习/深度学习 数据采集 人工智能
探索Python的奥秘:从基础到进阶的编程之旅
在这篇文章中,我们将深入探讨Python编程的基础知识和进阶技巧。通过清晰的解释和实用的示例,无论您是编程新手还是有经验的开发者,都能从中获得有价值的见解。我们将覆盖从变量、数据类型到类和对象的各个方面,助您在编程世界里游刃有余。
21 10