Pandas 概览

Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。经过多年不懈的努力,Pandas 离这个目标已经越来越近了。

Pandas 适用于处理以下类型的数据:

  • 与 SQL 或 Excel 表类似的,含异构列的表格数据。
  • 有序和无序(即非固定频率)的时间序列数据。
  • 带行列标签的矩阵数据,包括同构或异构型数据。
  • 任意其它形式的观测、统计数据集。数据转入 Pandas 数据结构时不必事先标记。

Pandas 的主要数据结构是 Series(一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。对于 R 用户,DataFrame 提供了比 R 语言 data.frame 更丰富的功能。Pandas 基于 NumPy 开发,可以与其它第三方科学计算支持库完美集成。

Pandas 就像一把万能瑞士军刀,下面仅列出了它的部分优势 :

  • 处理浮点与非浮点数据里的缺失数据,表示为 NaN
  • 大小可变:插入或删除 DataFrame 等多维对象的列;
  • 自动、显式数据对齐:显式地将对象与一组标签对齐,也可以忽略标签,在 Series、DataFrame 计算时自动与数据对齐;
  • 强大、灵活的分组(group by)功能:拆分-应用-组合数据集,聚合、转换数据;
  • 把 Python 和 NumPy 数据结构里不规则、不同索引的数据轻松地转换为 DataFrame 对象;
  • 基于智能标签,对大型数据集进行切片花式索引子集分解等操作;
  • 直观地合并(merge)连接(join)数据集;
  • 灵活地重塑(reshape)透视(pivot)数据集;
  • 支持结构化标签:即一个刻度支持多个标签;
  • 成熟的 IO 工具:用于读取文本文件(CSV 等支持分隔符的文件)、Excel 文件、数据库等来源的数据,利用超快的 HDF5 格式保存 / 加载数据;
  • 时间序列:支持日期范围生成、频率转换、移动窗口统计、移动窗口线性回归、日期位移等时间序列功能。

这些功能主要是为了解决其它编程语言、科研环境的痛点。数据科学家处理数据一般分为以下几个阶段:数据整理与清洗、数据分析与建模、数据可视化与制表,Pandas 是实现这些数据处理工作的理想工具。

其它说明:

  • Pandas 速度很快。Pandas 的很多底层算法都用 Cython 优化过。然而,为了保持通用性,必然要牺牲一些性能,如果专注于某一功能,您完全可以开发出比 pandas 更快的专用工具。
  • Pandas 是 statsmodels 的依赖项,因此,Pandas 也是 Python 中统计计算生态圈的重要组成部分。
  • Pandas 已广泛应用于金融领域。

数据结构

维数

名称

描述

1

Series

带标签的一维同构数组

2

DataFrame

带标签的,大小可变的,二维异构表格

为什么有多个数据结构?

Pandas 数据结构就像是低维数据的容器。比如,DataFrame 是 Series 的容器,而 Series 则是标量的容器。使用这种方式,可以在容器中以字典的形式插入或删除对象。

此外,通用 API 函数的默认操作要顾及时间序列与截面数据集的方向。多维数组存储二维或三维数据时,编写函数要注意数据集的方向,这对用户来说是一种负担;如果不考虑 C 或 Fortran 中连续性对性能的影响,一般情况下,不同的轴在程序里其实没有什么区别。Pandas 里,轴的概念主要是为了给数据赋予更直观的语义,即用“更恰当”的方式表示数据集的方向。这样做是为了让用户编写数据转换函数时,少费点脑子。

处理 DataFrame 等表格数据时,index(行)或 columns(列)比 axis 0axis 1 更直观。用这种方式迭代 DataFrame 的列,代码更易读易懂:

for col in df.columns:
    series = df[col]
    # do something with series

大小可变与数据复制

Pandas 所有数据结构的值都是可变的,但数据结构的大小并非都是可变的,比如,Series 的长度不可改变,但 DataFrame 里就可以插入列。

Pandas 里,绝大多数方法都不改变原始的输入数据,而是复制数据,生成新的对象。一般来说,原始输入数据不变更稳妥。

获得支持

发现 Pandas 的问题或有任何建议,请反馈到 Github 问题跟踪器。日常应用问题请在 Stack Overflow 上咨询 Pandas 社区专家。

社区

Pandas 如今由来自全球的同道中人组成的社区提供支持,社区里的每个人都贡献了宝贵的时间和精力,正因如此,才成就了开源 Pandas,在此,我们要感谢所有贡献者。

若您有意为 Pandas 贡献自己的力量,请先阅读贡献指南。

Pandas 是 NumFOCUS 赞助的项目。有了稳定的资金来源,就确保了 Pandas,这一世界级开源项目的成功,为本项目捐款也更有保障。

项目监管

自 2008 年以来,Pandas 沿用的监管流程已正式编纂为项目监管文档。这些文件阐明了如何决策,如何处理营利组织与非营利实体进行开源协作开发的关系等内容。

本文分享自微信公众号 - 飞总聊IT(feiitworld)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 花里胡哨![:n],[::n],[:,:,n],[...,n]都是什么鬼!

    a[:n]意思是取出a中的前n个元素,当n>len(a)时,不会报错哦,会返回a的所有元素。

    用户1564362
  • 深度解析腾讯云的国内首款Serverless数据库

    2020年4月7日,腾讯云正式发布了国内首个Serverless数据库产品--PostgreSQL for Serverless。该数据库不需要用户创建实例,完...

    用户1564362
  • 一只靴子落下来了

    今年以来整个世界都很紧张。美国股市经历了10月和11月两个月的漫长跌幅,终于赢来了12月。在美国的每个人多少都经历了财富贬值,天天上上下下波动的两个月。很多在美...

    用户1564362
  • 数据分析篇 | Pandas 概览

    Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Py...

    叫我龙总
  • Pandas 概览

    Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Py...

    石晓文
  • 人人都是数据分析师,人人都能玩转Pandas

    主要讲解了Pandas中常用的数据结构 Series 和 DataFrame 的用法。

    abs_zero
  • 数据分析 | 一文了解数据分析必须掌握的库-Pandas

    呆鸟云:“看了好久 Pandas 代码,先简单了解一下,到底什么是 Pandas 吧,看看它到底能干什么?如果想了解更多 Pandas,请关注 pypandas...

    叫我龙总
  • 太赞了,《快乐学 Pandas》中文教程已正式开源!

    寄语:Pandas 是基于 Numpy 的一种工具,是为了解决数据分析任务而创建的,其纳入了大量库和一些标准的数据模型,提供了大量能使我们快速便捷地处理数据的函...

    GitHubDaily
  • 教程 | 一文入门Python数据分析库Pandas

    选自Medium 作者:Ted Petrou 机器之心编译 参与:陈韵竹、李泽南 Pandas 通常用于快速简单的数据操作、聚合和可视化。在这篇文章中,我将概述...

    机器之心
  • Python学习手册:Pandas快速检查表

    之前有发过一篇Python学习手册:NumPy快速参考表 ,可做系列文章参考学习。 在Python语言里,Pandas库是数据科学家进行数据处理和数据分析最常用...

    小莹莹

扫码关注云+社区

领取腾讯云代金券