【Python从入门到进阶】57、Pandas入门:背景、应用场景与基本操作

一、引言

1、Pandas简介

在数字化时代,数据已经成为企业决策和个人洞察的重要基础。无论是金融市场的波动、零售业的销售趋势,还是科研实验的结果,都蕴含在大量的数据之中。然而,如何有效地提取、分析和解读这些数据,成为了摆在人们面前的一大挑战。这时,Python的Pandas库便成为了数据分析领域的得力助手。

Pandas是一个开源的Python数据分析工具,它提供了高效、灵活且易于使用的数据结构和数据分析功能,使得数据工作者能够轻松地进行数据处理和分析。作为Python数据分析生态中的核心库之一,Pandas不仅广泛应用于商业领域,也深受科研人员和数据分析爱好者的喜爱。

在接下来的内容中,我们将从Pandas的起源与发展讲起,带领大家领略这个强大工具的魅力。

2、Pandas能够处理的数据类型

Pandas是一个专为数据处理和分析而设计的Python库,它支持多种数据类型,使得数据科学家和数据分析师能够高效地处理各种类型的数据集。以下是Pandas能够处理的几种主要数据类型:
(1)与SQL或Excel表类似的数据
Pandas的DataFrame类似于SQL数据库中的表或Excel表格。它允许你以行和列的形式组织数据,每一列可以有不同的数据类型(如整数、浮点数、字符串等),并且每一列和每一行都有唯一的索引。这种结构使得Pandas能够轻松地处理大量结构化的数据,并支持各种数据查询和统计分析操作。
(2)有序或无序的时间序列数据
Pandas提供了对时间序列数据的强大支持。你可以使用DatetimeIndex或TimedeltaIndex作为 DataFrame的索引,以便轻松地对时间序列数据进行排序、筛选和聚合。此外,Pandas还提供了丰富的日期和时间函数,使得你能够方便地进行时间计算、时间窗口操作等。
(3)带行列标签的矩阵数据
Pandas的DataFrame本质上是一个带行列标签的矩阵。这意味着你可以将任何二维数组或矩阵数据导入到Pandas中,并为行和列添加有意义的标签。这种结构使得你可以轻松地对数据进行切片、索引、筛选和聚合等操作,而无需担心数据的顺序或位置。
(4)任意其他形式的观测、统计数据
除了上述几种类型的数据外,Pandas还能够处理几乎任何形式的观测和统计数据。无论是来自实验的数据、调查的结果还是网络爬虫收集的信息,只要能够将其组织成结构化的形式(如CSV、JSON、Excel等),Pandas都能够轻松地进行处理和分析。此外,Pandas还提供了丰富的数据处理和分析功能,如缺失值处理、异常值检测、数据转换、统计建模等,以满足各种数据分析和挖掘的需求。

3、Pandas库的作用:一个直白的例子

想象一下,你是一家大型电商公司的数据分析师。每天,你的团队都会收集到成千上万的订单数据,这些数据包括商品的名称、价格、销量、用户的购买时间、支付方式等。现在,你的任务是从这些庞杂的数据中找出一些有价值的信息,比如哪些商品最受欢迎、哪些时间段的销量最高、哪种支付方式的用户最多等等。

在没有Pandas的情况下,你可能会用Python的列表(list)或字典(dict)来存储这些数据,然后编写复杂的循环和条件语句来筛选、整理和分析这些数据。但这样做不仅效率低下,而且代码会非常冗长和难以维护。

而Pandas库的出现,就像是为数据分析师提供了一把瑞士军刀。它提供了两种核心的数据结构:Series(一维数组,带标签)和DataFrame(二维表格型数据结构,带行列标签)。你可以轻松地将订单数据加载到DataFrame中,然后通过简单的几行代码就能实现数据的筛选、排序、分组和聚合等操作。

例如,要找出销量最高的前10个商品,你只需要对DataFrame中的“销量”列进行排序,并取前10行即可。同样地,要统计每个时间段的销量,你可以使用Pandas的groupby函数对“购买时间”列进行分组,并计算每个组的销量总和。

更重要的是,Pandas还支持多种数据格式的读写,包括CSV、Excel、SQL等。这意味着你可以方便地将数据从各种来源导入到Pandas中进行分析,也可以将分析结果导出为各种格式供其他人使用。

总之,Pandas库就像一个强大的数据分析工具箱,它能够帮助数据分析师更加高效、灵活地处理和分析数据,从而发现数据中隐藏的价值。

二、Pandas背景介绍

1. 起源与发展


Pandas最初由数据科学家Wes McKinney于2008年开始开发,旨在解决Python中数据分析和处理的一些局限性。
2011年,Pandas库正式发布第一个版本,并很快在数据科学和数据分析领域得到了广泛应用。
Pandas的名字来源于“Panel Data”(面板数据)和“Data Analysis”(数据分析)的组合,体现了其强大的数据处理和分析能力。

2. 开发者与贡献者



Pandas最初由Wes McKinney开发,他的贡献奠定了Pandas的基础。
目前,Pandas由PyData团队进行日常的开发和维护工作。PyData是一个由众多数据科学家和开发者组成的社区,致力于推动Python在数据科学领域的发展。

3. 在Python数据分析生态中的地位

Pandas已经成为Python数据分析的必备高级工具之一,与NumPy和Matplotlib并称为数据分析的“三剑客”。

Pandas提供了简单、高效、灵活的数据结构和数据操作功能,使得Python在数据分析领域的地位得到了显著提升。

4. 版本更新与演进

Pandas库自发布以来,不断进行版本更新和功能优化。

例如,在2024年4月10日,PyData团队公布了最新的Pandas2.2.2版本,引入了更多新的功能和性能优化。
Pandas官方中文网:https://www.pypandas.cn/

5. 应用领域与影响力

Pandas最初被应用于金融量化交易领域,现在其应用领域已经扩展到农业、工业、交通等多个行业。
Pandas的广泛使用不仅提高了数据分析的效率和准确性,也推动了数据科学领域的发展。
总之,Pandas作为Python数据分析领域的核心库之一,其起源、发展、贡献者、在Python数据分析生态中的地位以及版本更新和演进等方面都体现了其强大的实力和广泛的影响力。

三、Pandas的应用场景

Pandas是一个功能强大的数据分析工具,广泛应用于各种数据处理和分析的场景中。以下是Pandas的一些主要应用场景:

1、数据清洗与预处理

Pandas提供了丰富的数据清洗和预处理功能,如缺失值处理、重复值删除、数据类型转换、异常值检测等。通过Pandas,数据科学家可以快速清理数据中的噪声和错误,为后续的数据分析提供高质量的数据集。

2、数据探索与可视化

Pandas支持对数据进行各种统计计算和描述性分析,如均值、中位数、标准差、四分位数等。此外,Pandas还与Matplotlib、Seaborn等可视化库紧密结合,可以轻松地将数据分析结果以图表的形式展现出来,帮助用户更好地理解数据。

3、时间序列分析

Pandas提供了强大的时间序列数据处理功能,支持日期和时间的索引和计算。这使得Pandas在金融、经济、气象等领域的时间序列数据分析中表现出色。用户可以利用Pandas对时间序列数据进行趋势分析、周期性分析、相关性分析等。

4、数据合并与连接

在实际的数据分析中,经常需要将多个数据集进行合并或连接。Pandas提供了多种数据合并和连接的方法,如内连接、外连接、左连接、右连接等。这些功能使得用户能够轻松地将多个数据集整合在一起,进行更深入的数据分析。

5、数据挖掘与机器学习

Pandas常常作为数据挖掘和机器学习项目的预处理工具。用户可以使用Pandas对数据进行清洗、转换、降维等操作,以便将数据转换为机器学习算法所需的格式。此外,Pandas还提供了特征选择、特征工程等高级功能,有助于用户构建更高效的机器学习模型。

6、数据报告与可视化

Pandas可以与 Jupyter Notebook、PandasProfiling 等工具结合使用,快速生成数据报告和可视化图表。这些报告和图表可以帮助用户更直观地了解数据分布、数据关系以及数据变化趋势等信息,为决策提供支持。

7、Web应用与API开发

Pandas也可以用于 Web 应用和 API 开发中。例如,可以使用Pandas处理从 Web 爬虫获取的网页数据,或者将Pandas的数据分析结果通过 API 接口提供给其他系统使用。这使得Pandas在构建数据驱动的应用和服务中发挥着重要作用。
总之,Pandas凭借其强大的数据处理和分析能力,在各个领域的数据分析和挖掘项目中都有着广泛的应用。

四、Pandas包含的内容与功能

Pandas提供了高效且易于使用的数据结构和数据分析工具。以下是Pandas包含的主要内容与功能:

1、核心数据结构

●Series:一维数组,能够保存任何数据类型(整数、字符串、浮点数、Python对象等),并且每个元素都有一个标签(索引)。
●DataFrame:二维的、大小可变的、有标签的数据结构。你可以把它想象成一个Excel表格,或者是一个SQL表,或者是一个字典对象,其中包含了多个Series对象。DataFrame既有行索引也有列索引。

2、数据读取与写入

●Pandas支持从各种数据源读取数据,如CSV、Excel、SQL数据库、JSON、HTML等。同时,它也可以将数据输出到这些格式的文件中。
●使用read_csv(), read_excel(), read_sql(), read_json(), read_html()等函数可以方便地读取数据。
●使用to_csv(), to_excel(), to_sql(), to_json()等函数可以将数据保存到文件中。

3、数据清洗

●缺失值处理:Pandas提供了多种处理缺失值的方法,如填充、删除等。
●重复值处理:可以轻松识别并删除数据中的重复项。
●数据类型转换:能够方便地将一列数据从一种类型转换为另一种类型。
●文本数据处理:包含字符串分割、替换、去除空格等功能。

4、数据筛选与查询

●通过标签或位置索引数据,可以轻松地选择DataFrame的列或行。
●使用布尔索引或条件表达式筛选数据。
●提供了query()函数,允许用户以SQL查询的方式筛选数据。

5、数据转换与聚合

●使用apply()函数对数据应用自定义函数。
●提供了groupby()函数对数据进行分组,并可以使用聚合函数(如sum(), mean(), count()等)对分组后的数据进行统计。

6、时间序列处理

●Pandas具有强大的时间序列数据处理功能,支持日期和时间的索引和计算。
●提供了to_datetime()函数将日期字符串转换为日期时间对象。
●提供了resample()函数对数据进行重采样,如按天、周、月等频率进行汇总。

7、数据可视化

虽然Pandas本身不直接提供数据可视化功能,但它与Matplotlib、Seaborn等可视化库紧密集成,可以轻松地将数据分析结果以图表的形式展现出来。

8、其他功能

●提供了数据合并与连接的功能,如merge(), concat(), join()等。
●支持数据排序和排名。
●提供了数据透视表的功能。
●提供了对分类数据的支持,如设置和获取分类数据的类别。

五、安装Pandas

以下是安装Pandas的详细步骤:

1、确保已安装Python

Pandas需要Python环境来运行。在安装Pandas之前,请确保童鞋们的计算机上已经安装了Python。童鞋们可以在命令行中输入python --version或python3 --version来检查Python是否已经安装以及安装的版本。

2、使用pip安装Pandas

pip是Python的包管理工具,通常随Python一起安装。童鞋们可以使用pip来安装Pandas。打开终端或命令提示符,输入以下命令进行安装:

pip install pandas

或者,如果童鞋们使用的是Python 3.x版本,可以输入:

pip3 install pandas

pip将会从Python软件仓库(PyPI)下载Pandas并将其安装到童鞋们的Python环境中。安装完成后,童鞋们可以在Python解释器中尝试导入Pandas来验证是否安装成功:

import pandas as pd

如果没有出现错误提示,说明Pandas已经成功安装。

3、使用conda安装Pandas

如果童鞋们使用的是Anaconda或Miniconda发行版,可以使用conda来安装Pandas。conda是一个流行的环境管理和包管理工具,能够方便地管理不同版本的Python和Python包。打开终端或命令提示符,输入以下命令进行安装:

conda install pandas

同样地,安装完成后童鞋们可以在Python解释器中尝试导入Pandas来验证是否安装成功。

4、从源代码安装Pandas(可选)

如果童鞋们想从源代码安装Pandas,首先需要从pandas的官方GitHub仓库下载源代码。这通常需要童鞋们先安装git来获取源代码。然后,在终端或命令提示符中运行以下命令:

git clone https://github.com/pandas-dev/pandas.git  
cd pandas  
python setup.py install

这将从GitHub仓库中克隆Pandas的源代码,并使用Python的setup.py文件进行安装。请注意,从源代码安装可能需要更多的依赖项和配置。

5、使用IDE集成的包管理工具安装Pandas(可选)

如果童鞋们使用的是集成开发环境(IDE)如PyCharm、Spyder等,这些IDE通常集成了包管理工具,大家可以在IDE中打开包管理工具,搜索Pandas并进行安装。这种方法通常更直观和方便,特别是对于初学者来说。

6、验证和更新Pandas

安装完成后,童鞋们可以通过在Python解释器中尝试导入Pandas来验证是否安装成功。同时,也可以使用pip或conda来更新Pandas到最新版本。例如,使用pip更新Pandas的命令是:

pip install --upgrade pandas

更新Pandas可以确保童鞋们使用的是最新版本的库,并享受到最新的功能和改进。
以上是关于如何安装Pandas的详细步骤。请根据童鞋们的实际情况选择最适合的安装方法,并确保环境中已经安装了Python。

六、编写第一个Pandas程序

在本节中,我们将编写一个简单的Pandas程序,用于读取Excel文件中的数据,并将其打印到控制台。首先,您需要确保已经安装了Pandas库和用于读取Excel文件的库,如openpyxl(用于.xlsx文件)或xlrd(用于较旧的.xls文件)。
以下是步骤和示例代码:

步骤 1:安装必要的库

如果您还没有安装Pandas和Excel读取库,可以使用pip进行安装:

pip install pandas openpyxl

注意:openpyxl库用于读取和写入.xlsx文件,如果您需要读取.xls文件,可以使用xlrd库(但请注意,xlrd库在2.0版本后不再支持.xlsx文件)。

步骤 2:编写代码

接下来,我们编写一个简单的Python脚本来读取Excel文件中的数据。假设我们有一个名为data.xlsx的Excel文件,它包含一个名为Sheet1的工作表,并且该工作表中包含一些数据:

代码如下:

import pandas as pd

# 指定Excel文件路径和工作表名称
file_path = 'data.xlsx'
sheet_name = 'Sheet1'

# 使用Pandas的read_excel函数读取Excel文件
# 如果Excel文件需要密码,可以使用参数password='your_password'
df = pd.read_excel(file_path, sheet_name=sheet_name)

# 打印数据到控制台
print('【打印数据到控制台】')
print(df)

# 如果需要,可以打印数据的形状(行数和列数)
print('【打印数据的形状】')
print(df.shape)

# 还可以打印数据的列名
print('【打印数据的列名】')
print(df.columns)

步骤 3:运行代码

直接使用pycharm编辑器新建文件(例如read_excel.py),编写代码然后右键运行查看控制台结果。或者在命令行中运行它:

python read_excel.py

如果一切设置正确,程序将读取data.xlsx文件中的Sheet1工作表,并将其内容打印到控制台。同时,它还会显示数据的形状(即行数和列数)以及列名,效果如下:

注意事项

●确保Excel文件的路径正确无误,并且文件可以被Python脚本访问。
●如果Excel文件需要密码才能打开,您需要在pd.read_excel()函数中使用password参数来提供密码。
●如果Excel文件中包含多个工作表,您可以通过修改sheet_name参数来读取不同的工作表。如果sheet_name设置为None或省略,Pandas将返回一个包含所有工作表的字典。
●Pandas的read_excel()函数还提供了许多其他参数,允许您更精细地控制读取过程,例如指定要读取的列、跳过某些行等。大家可以通过查阅Pandas文档来了解更多详细信息。

至此,关于Pandas库的基础介绍就到这里,下一篇我们来讲解Pandas库中有关Series对象的操作。

转载请注明出处:https://guangzai.blog.csdn.net/article/details/139578157

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式应用之FIFO模块原理与实现

FIFO介绍与原理 FIFO是First-In First-Out的缩写,它是一个具有先入先出特点的缓冲区。FIFO在嵌入式应用的非常广泛,可以说有数据收发的地方,基本就有FIFO的存在。或者为了降低CPU负担,提高数据处理效率,可以在积累到一…

2、数据操作

索引从0开始 一行 [1,:] 一列[:,1] 子区域:[1:3,1:] 第一行和第二行,从第一列开始 [::3,::2] 每3行一跳,每2列一跳 torch.tensor([[1,2,3,4]] 按位置算 xy ,x-y x*y x**y(幂) 1、广播机制形状不一样,…

一个简单好用的 C# Easing Animation 缓动动画类库

文章目录 1.类库说明2.使用步骤2.1 创建一个Windows Form 项目2.2 安装类库2.3 编码2.4 效果 3. 扩展方法3.1 MoveTo 动画3.2 使用回调函数的Color动画3.3 属性动画3.4 自定义缓动函数 4.该库支持的内置缓动函数5.代码下载 1.类库说明 App.Animations 类库是一个很精炼、好用的…

C-MAPSS数据集探索性分析

实验数据为商用模块化航空推进系统仿真C-MAPSS数据集,该数据集为NASA格林中心为2008年第一届预测与健康管理国际会议(PHM08)竞赛提供的引擎性能退化模拟数据集,数据集整体信息如下所示: 涡扇发动机仿真模拟模型如下图所示。 仿真建模主要针对…

【前端】使用window.print() 前端实现网页打印详细教程(含代码示例)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深…

Vuex3学习笔记

文章目录 1,入门案例辅助函数 2,mutations传参辅助函数 3,actions辅助函数 4,getters辅助函数 5,模块拆分6,访问子模块的state辅助函数 7,访问子模块的getters辅助函数 8,访问子模块…

Java--递归

1.递归就是A方法调用A方法,也就是调用自己本身 2.利用递归可以用简单的程序来解决一些复杂的问题,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复…

【MySQL数据库】:MySQL索引特性

目录 索引的概念 磁盘 磁盘的基本特征 MySQL与磁盘交互的基本单位 索引的理解 建立测试表 理解单个Page 理解多个Page 页目录 单页情况 多页情况 索引的数据结构 聚簇索引 VS 非聚簇索引 索引操作 创建主键索引 创建唯一索引 创建普通索引 创建全文索引 查询…

Nginx服务配置

一、Nginx服务的主配置文件nginx.conf vim /usr/local/nginx/conf/nginx.conf 全局块:全局配置,对全局生效;events块:配置影响 Nginx 服务器与用户的网络连接;http块:配置代理,缓存&#xff0c…

重温共射放大电路

1、放大概念 小功率信号变成一个大功率信号,需要一个核心器件做这件事,核心器件的能量由电源提供,通过核心器件用小功率的信号去控制大电源,来实现能量的转换和控制,前提是不能失真,可以用一系列正弦波进行…

conda 创建环境失败

conda create -n pylableimg python3.10在conda (base)环境下,创建新的环境,失败。 报错: LookupError: didn’t find info-scipy-1.11.3-py310h309d312_0 component in C:\Users\Jane.conda\pkgs\scipy-1.11.3-py310h…

RK3568-修改fiq-debugger调试串口

瑞芯微SDK默认将uart2_m0作为调试串口,以下方法将调试串口修改为uart5_m1。修改bootloader 修改/OK3568-linux-source/rkbin/tools/ddrbin_param.txt文件,5表示串口5。1表示复用m1。执行./ddrbin_tool ddrbin_param.txt ../bin/rk35/rk3568_ddr_1560MHz_v1.11.bin命令修改ub…

素数的无穷大的证明

素数的无穷大——欧几里得的证明 文章目录 一、说明二、欧几里得证据三、哥德巴赫对素数无穷性的证明(1730)四、Frstenberg 对素数无穷性的证明(1955)五、库默尔对欧几里得证明的重述 一、说明 众所周知,素数是无限多的。然而,两…

代码随想录算法训练营第36期DAY56

DAY56 套磁很顺利,发现又有书读了! 300最长递增子序列 朴素法,这个好想,但是不对,比如 0 1 0 3 2 3 我的算法会找出0 1 3作为答案,而不是0 1 2 3 可以看出,后面的状态依赖于前面的状态&am…

CMake详细解读

原文来自:CMake 保姆级教程 视频来自B站:CMake 保姆级教程C/C 1、快速操作: 原文来自:在 VScode 中使用 CMake 快速创建cpp工程 首先创建一个 C/C 工程文件夹 CALC,用 VSCode 打开,目录结构如下&#x…

探索软件工程师在新能源汽车研发中的角色与贡献

随着全球对可持续发展的关注不断增加,新能源汽车的研发与应用成为了汽车行业的一个重要方向。作为软件工程师,参与新能源汽车研发不仅能够推动科技创新,还能为环保事业贡献力量。本文将深入探讨软件工程师在新能源汽车研发中的具体贡献、所需…

如何画系统架构图学习

原文链接:https://learn.lianglianglee.com/%E4%B8%93%E6%A0%8F/%E4%BB%8E%200%20%E5%BC%80%E5%A7%8B%E5%AD%A6%E6%9E%B6%E6%9E%84/51%20%E5%A6%82%E4%BD%95%E7%94%BB%E5%87%BA%E4%BC%98%E7%A7%80%E7%9A%84%E8%BD%AF%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E5%9B%BE%EF…

C语言学习系列:初识C语言

前言,C语言是什么 语言,比如中文、英语、法语、德语等,是人与人交流的工具。 C语言也是语言,不过是一种特殊的语言,是人与计算机交流的工具。 为什么叫C语言呢? 这就要从C语言的历史说起了。 一&#…

RAG vs Fine-Tuning 微调哪种大模型(LLM)技术更好?

数据科学和机器学习的研究人员和从业者都在不断探索创新策略来增强语言模型的能力。在众多方法中,出现了两种突出的技术,即检索增强生成 (RAG)和微调。本文旨在探讨模型性能的重要性以及 RAG 和微调策略的比较分析。 模型性能在 NLP 中的重要性 增强用…

[数据集][图像分类]黑色素瘤分类数据集10015张7类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):10015 分类类别数:7 类别名称:[“0”,“1”,“2”,“3”,“4”,…