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

目录

1 描述性统计(Descriptive Statistics)

2 数据分组和聚合

3 数据透视表

4 相关性分析


1 描述性统计(Descriptive Statistics)

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

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

import pandas as pddata = {'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 pddata = {'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 pddata = {'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 pddata = {'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 pddata = {'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 表示完全负相关:当一个变量增加时,另一个变量减少,变化方向相反。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/109875.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis专题】一线大厂Redis高并发缓存架构实战与性能优化

目录 前言为什么要用Redis前置知识一、缓存问题1.1 缓存击穿1.2 缓存穿透1.3 缓存雪崩 二、缓存方案2.1 普通缓存2.2 冷热分离2.3 多级缓存2.4 缓存预热 *课程内容一、一个案例引发的思考(电商场景)二、代码优化方案的演进2.1 问题一:纯【读】…

IDM(Internet Download Manager)下载器2024最新版本如何下载?

IDM(Internet Download Manager)下载器能够兼容支持多种浏览器进行文件下载,很多时候只要复制一个地址IDM的下载弹窗就自动弹出来,有时候不需要下载的时候也会弹,时间久了就会感觉很烦,不过这个问题其实可以…

2019版本idea启动tomcat8.5版本控制台中文乱码

目录 一,检查tomcat安装 二,检查idea配置 前言: 最近使用idea去启动tomcat8.5版本时,控制台语句出现了乱码情况,最终解决了。 情况如下: 一,检查tomcat安装 第一步:检查安装的tomcat找到tomca…

【数据结构】串的模式匹配:简单的模式匹配算法,KMP算法

欢~迎~光~临~^_^ 目录 知识树 1、什么是串的模式匹配 2、简单的模式匹配算法 3、KMP算法 3.1 算法原理 3.2 C语言实现KMP算法 3.3 求next数组 3.4 KMP算法优化(对next数组的优化) 知识树 1、什么是串的模式匹配 串的模式匹配是在一个字符串中…

C#,数值计算——Hashfn1的计算方法与源程序

1 文本格式 using System; using System.Collections; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Hashfn1 { private Ranhash hasher { get; set; } new Ranhash(); private int n { get; set; } public Hash…

栈与队列经典题目——用队列实现栈

本篇文章讲解栈和队列这一部分知识点的经典题目:用栈实现队列、用队列实现栈。对应的题号分别为:Leetcode.225——用队列实现栈,。 在对两个题目进行解释之前,先回顾以下栈和队列的特点与不同: 栈是一种特殊的线性表…

怎么激活IDM

IDM是一个下载软件。 激活它需要用到git上面的一个项目,同时网络要能连到github GitHub - lstprjct/IDM-Activation-Script: IDM Activation & Trail Reset Script WINR 输入powershell 输入命令行 iex(irm is.gd/idm_reset) 或者 iwr -useb https://raw.…

Unity - Shader Compiled Log

文章目录 吐槽开启 Log Shader Compilation实践资源准备Build ABTesting ScriptShader Compiled Log Project 吐槽 先说一下,最近几天前,纷纷看到 unity install fee 的天才收费方案 真的忍不住吐槽,我只想说: “no zuo no die”…

easycms v5.5 分析 | Bugku S3 AWD排位赛

前言 这个awd打的悲,后台默认用户名密码为admin:admin,但是几乎所有人都改了 而且一进去看到这个cms就有点懵逼,都不知道这个cms是干嘛的(没用过相似的cms) 虽然网上找出了很多相关的漏洞,但是不知道为什…

山洪灾害预警方案(山洪预警解决方案的组成)

​ 随着气候变化的不断加剧,山洪灾害在许多地区成为了极具威胁性的自然灾害之一。为了帮助地方政府和居民更好地预防和应对山洪灾害,我们设计了一套基于星创易联的SR600工业路由器和DTU200的山洪灾害预警方案,并成功在某地区进行了部署。 案…

HTML显示中文空格字符,emsp;一个中文字符,ensp;半个中文字符

&emsp;一个中文字符 &ensp;半个中文字符 <ul><li class"li">姓&emsp;&emsp;名&#xff1a;<input type"text" /></li><li class"li">手&ensp;机&ensp;号&#xff1a;<input type"…

idea装载jerbel以及文件上传下载

一、JRebel 1.1 Jrebel介绍 JRebel是一个Java开发工具&#xff0c;它是一款用于实时代码重载的插件。它的主要功能是在不重新启动应用程序的情况下&#xff0c;将修改后的Java代码实时应用到正在运行的应用程序中&#xff0c;从而加快开发周期&#xff0c;提高开发效率。 实…