当前位置: 首页 > news >正文

【数据分析】第四章 pandas简介(1)

4.1 pandas: Python 数据分析库

pandas 是一个专门为数据分析量身定制的开源Python库。在当今的Python数据科学界,无论是专业研究还是进行统计分析和决策,pandas都是每一位数据专业人士不可或缺的基础工具。

这个强大的库由 Wes McKinney 于2008年开始设计和开发。到了2012年,他的同事 Sien Chang 也加入了开发团队。正是他们二人的共同努力,造就了Python社区中最重要的库之一——pandas。

那么,为什么需要这样一个专门的库呢?因为数据分析工作需要一个能够以最简单、最直观的方式提供数据处理、数据抽取和数据操作所需全部工具的平台。开发pandas的初衷正是为了满足这一核心需求。

Wes McKinney做出了一个极具远见的决定:将 NumPy 库作为pandas的基础。事实证明,这一选择对于pandas的巨大成功和迅速普及起到了至关重要的作用。基于NumPy,不仅让pandas能够与大多数其他Python数据科学模块兼容,而且还充分利用了NumPy在数值计算方面卓越的性能优势。

另一个同样意义深远的决定是,pandas并没有沿用Python已有的内置数据结构,也没有依赖其他库的数据结构,而是为数据分析专门设计了两种全新的、高效的数据结构。这两种数据结构的设计初衷是为了更便捷地管理那些类似关系型数据库表或Excel工作表的数据,它们尤其适用于处理关系型或带有标签的数据。

在本书中,我们将接触一系列基础数据分析操作,它们通常都作用于数据库表或工作表。pandas提供了众多函数和方法来执行这些操作,在许多情况下,它们是实现这些任务的最佳方式。

因此,简单来说,pandas的核心目标就是为每一位数据分析师提供全面、高效的基础工具集。


4.2 安装

安装pandas库最简单和最常用的方法是首先安装一个Python发行版,例如 AnacondaEnthought,然后通过该发行版来安装pandas。这些发行版通常会预打包好pandas及其所有依赖项,省去了手动配置的麻烦。

4.2.1 使用 Anaconda 安装

如果你选择使用 Anaconda 发行版,安装 pandas 将非常简单。

首先,我们可以检查你的环境中是否已经安装了 pandas,以及它的版本号。在终端或 Anaconda Prompt 中输入以下命令:

conda list pandas

如果你已经安装了 pandas,你可能会看到类似下面的输出(请注意,版本号可能与你当前的环境不同,此处仅为示例):

# packages in environment at C:\Users\YourUser\Anaconda3:
#
pandas                                    1.3.5                     py39h6d944e8_0

如果你运行上述命令后没有看到类似的输出,或者想安装/更新到最新版本,你需要安装 pandas 库。请输入以下命令:

conda install pandas

Anaconda 会自动检查 pandas 的所有依赖库,并管理其他模块的安装,为你省去大量的配置工作。

如果将来你想更新 pandas 库到最新版本,命令也非常直接:

conda update pandas

Anaconda 会检查 pandas 及其所有依赖模块的版本。如果有更新的版本可用,它会提示你,并询问你是否想继续更新。你将看到类似这样的提示(具体包名和版本号会根据实际情况变化):

Fetching package metadata: ....
Solving package specifications:.Package plan for installation in environment C:\Users\Fabio\Anaconda3:The following NEW packages will be INSTALLED:pytz:        2023.3-py39_0requests:    2.31.0-py39_0six:         1.16.0-py39_0The following packages will be UPDATED:conda:       23.7.4-py39_0 -> 23.9.0-py39_0pandas:      1.3.5-py39_0  -> 2.1.1-py39_0pip:         23.2.1-py39_0 -> 23.3-py39_0scipy:       1.11.2-py39_0 -> 1.11.3-py39_0Proceed ([y]/n)?

敲入 y 键后,Anaconda 将开始从网上下载所有新的模块和依赖。因此,执行此步骤时,你的计算机需要保持网络连接。

Fetching packages...
scipy-1.11.3-p      100%###################################################| Time: 0:01:11   1.05 MB/s
Extracting packages...
[COMPLETE] |###################################################################| 100%
Unlinking packages ...
[COMPLETE] |###################################################################| 100%
Linking packages ...
[COMPLETE] |###################################################################| 100%
4.2.2 使用 PyPI 安装

除了 Anaconda,你也可以通过 Python 包索引(PyPI)来安装 pandas。这是 Python 生态系统中最常见的包安装方式,适用于没有使用 Anaconda 等发行版的用户。

pip install pandas
4.2.3 在 Linux 系统的安装方法

如果你使用的是特定的 Linux 发行版,并且不打算使用打包好的 Python 发行版(如 Anaconda),你可以像安装其他系统包那样安装 pandas。

  • 对于 Debian 和 Ubuntu Linux 系统,使用以下命令:

    sudo apt-get install python3-pandas
    

    注意:在较新的Ubuntu/Debian版本中,Python 2.x 的包通常是 python-pandas,而 Python 3.x 的包是 python3-pandas。我们此处使用 python3-pandas 以确保安装Python 3.x版本兼容的pandas。


4.3 开始 pandas 之旅

本章的核心目标是解释 pandas 的数据结构以及用于处理这些数据结构的相关函数和方法,因此我们不需要编写大段的代码。

我建议大家在学习本章时,打开 Jupyter Notebook,逐条输入并执行命令。这样,你将有机会亲手操作并熟悉本章依次讲解的单个函数和数据结构。

此外,在整个本章中,前面例子中定义的数据和函数在后面仍然是有效的,你无需每次都重复定义。在每个例子结束后,我强烈鼓励你重复练习这些命令,并尝试做一些适当的修改。在操作过程中,请仔细观察如何操纵数据结构中的数据。这种交互式探索命令作用的学习方法,非常适合熟悉本章讲解的几项主要内容,它能帮助你避免机械地编写和执行代码,真正理解每个操作的含义。

注意:本章假定你对 Python 和 NumPy 有一定的了解。如果你在学习过程中遇到任何困难,请回顾前面的第2章(Python 基础)和第3章(NumPy 基础)。

首先,在 Python Shell 中启动一个会话,并导入 pandas 库。pandas 的常用导入约定如下:

>>> import pandas as pd
>>> import numpy as np

因此,在本书中,从此往后,当你看到 pd 时,它指代的是与 pandas 库相关的对象或方法;当你看到 np 时,它指代的是与 NumPy 库相关的对象或方法。

虽然你可能经常想使用以下方式导入 pandas 模块:

>>> from pandas import *

这样,你就不需要每次都用 pd. 前缀来指定函数、对象或方法。然而,通常来说,这种“全部导入”(import *) 的方法在 Python 社区中被认为是不太好的实践,因为它可能会导致命名冲突,降低代码的可读性。所以我们推荐使用 import pandas as pd 的方式。


4.4 pandas 数据结构简介

pandas 的核心是其两大基础数据结构。所有与数据分析相关的任务,几乎都是围绕着这两种结构进行的:

  • Series(序列)

  • DataFrame(数据框)

正如我们稍后会详细介绍的,Series 这种数据结构用于存储一维数据,类似一个序列。而 DataFrame 作为更复杂的数据结构,则用于存储多维数据。

尽管这两种数据结构并非能解决所有问题,但它们为绝大多数数据分析应用提供了高效且强大的工具。就简洁性而言,它们理解和使用起来都非常简单。此外,许多更复杂的数据结构都可以追溯到这两种基础结构。

然而,这两种数据结构最独特和强大的地方在于,它们将 Index(索引)对象和标签无缝地整合到自己的结构中。你很快就会体会到,这一特性使得这两种数据结构具有极其强大的可操作性和灵活性。

4.4.1 Series 对象

pandas 库的 Series 对象用于表示一维数据结构,它与数组类似,但增加了额外的功能。它的内部结构非常简单(如图 4-1 所示),由两个相互关联的数组组成:

  • 主数组:用于存放实际数据(可以是 NumPy 支持的任意类型数据)。

  • 索引数组:存储

http://www.xdnf.cn/news/767449.html

相关文章:

  • Caliper压力测试
  • mac安装brew时macos无法信任ruby的解决方法
  • 智慧零工平台后端开发实战:Spring Boot 3 + MyBatis-Flex 现代化架构
  • Linux中的mysql备份与恢复
  • Unity + HybirdCLR热更新 入门篇
  • GStreamer开发笔记(六):gstreamer基本概念:组件、箱柜、管道、衬垫、链接组件
  • 【端午安康】龙舟争渡Plug-In
  • 计算机组成原理核心剖析:CPU、存储、I/O 与总线系统全解
  • 空调清洗教程
  • Python----目标检测(《YOLOv3:AnIncrementalImprovement》和YOLO-V3的原理与网络结构)
  • 20250602在Ubuntu20.04.6下修改压缩包的日期和时间
  • 分布式锁优化:使用Lua脚本保证释放锁的原子性问题
  • SQL进阶之旅 Day 12:分组聚合与HAVING高效应用
  • 微服务-Sentinel
  • Oracle expdp过滤部分表数据
  • vue-12 (路由守卫:全局、每个路由和组件内)
  • 【Unity】相机 Cameras
  • 项目管理进阶:56页大型IT项目管理实践经验分享【附全文阅读】
  • 数据库系统概论(十四)详细讲解SQL中空值的处理
  • Leetcode 2123. 使矩阵中的 1 互不相邻的最小操作数
  • 数据结构之堆:解析与应用
  • 高阶数据结构——并查集
  • vscode 插件 eslint, 检查 js 语法
  • mysql分布式教程
  • 构建高性能风控指标系统
  • AIGC工具平台-GPT-SoVITS-v4-TTS音频推理克隆
  • Arbitrum Stylus 合约实战 :Rust 实现 ERC721
  • Windows 账号管理与安全指南
  • Java后端优化:对象池模式解决高频ObjectMapper实例化问题及性能影响
  • SCAU8639--折半插入排序