Pandas 数据结构

Pandas 有三种常用的数据结构

  • Series
  • DataFrame
  • Panel

这些数据结构建立在Numpy数组之上,这意味着它们运行速度都非常快。

Python、Numpy和Pandas对比

Python
  • list:Python自带数据类型,主要用一维,功能简单,效率低
  • Dict:Python自带数据类型,多维键值对,效率低
Numpy
  • ndarray:Numpy基础数据类型,单一数据类型
  • 关注数据结构/运算/维度(数据间关系)
Pandas
  • Series:1维,类似带索引的1维ndarray
  • DataFrame:2维,表格型数据类型,类似带行/列索引的2维ndarray 关注数据与索引的关系(数据实际应用)

从实用性、功能强弱和和可操作性比较:list < ndarray < Series/DataFrame

数据规整和分析工作中,ndarry数组作为必要补充,大部分数据尽量使用Pandas数据类型

考虑这些数据结构的最佳方法是高维数据结构是其低维数据结构的容器。例如,DataFrame是Series的容器,Panel是DataFrame的容器。

数据结构 维度 说明
Series 1 用于存储一个序列的一维数据
Data Frames 2 DataFrame作为更复杂的数据结构,则用于存储多维数据
Panel 3 通用的3D标签,大小可变的数组。

建立和处理二维数组是一项繁琐的工作,在编写函数时,要由用户来考虑数据集的方向。但是使用Pandas数据结构可以减少用户的精力。
例如,对于表格数据(DataFrame),在语义上考虑索引(行)和列比在轴0和轴1上更有帮助。

变异性

所有Pandas数据结构都是值可变的(可以更改),除了Series以外,其他大小都是可变的。系列是大小不变的。

注 -DataFrame被广泛使用,是最重要的数据结构之一。Panel面板使用少得多。

Series

Series是具有均匀数据的一维数组状结构。例如,以下系列是整数10、23、56的集合...

10 23 56 17 52 61 73 90 26 72

Series是具有均匀数据的一维数组状结构。例如,以下系列是整数10、23、56的集合...

关键点

  • 同类数据
  • 大小不变
  • 数据可变值

Data Frames

DataFrame是具有异构数据的二维数组。例如,

Name Age Gender Rating
Steve 32 Male 3.45
Lia 28 Female 4.6
Vin 45 Male 3.9
Katie 38 Female 2.78

上表代表组织的销售团队的数据及其总体绩效等级,数据以行和列表示,每列代表一个属性,每行代表一个人。

列的数据类型

Column Type
Name String
Age Integer
Gender String
Rating Float
关键点
  • 异构数据
  • 大小不变
  • 数据可变

Panel

Panel是具有异构数据的三维数据结构。很难用图形表示面板。但是面板可以说明为DataFrame的容器。

关键点
  • 异构数据
  • 大小可变
  • 数据可变

Pandas库学习笔记(2)的更多相关文章

  1. pandas库学习笔记(二)DataFrame入门学习

    Pandas基本介绍——DataFrame入门学习 前篇文章中,小生初步介绍pandas库中的Series结构的创建与运算,今天小生继续“死磕自己”为大家介绍pandas库的另一种最为常见的数据结构D ...

  2. pandas库学习笔记(一)Series入门学习

    Pandas基本介绍: pandas is an open source, BSD-licensed (permissive free software licenses) library provi ...

  3. python的pandas库学习笔记

    导入: import pandas as pd from pandas import Series,DataFrame 1.两个主要数据结构:Series和DataFrame (1)Series是一种 ...

  4. numpy, matplotlib库学习笔记

    Numpy库学习笔记: 1.array()   创建数组或者转化数组 例如,把列表转化为数组 >>>Np.array([1,2,3,4,5]) Array([1,2,3,4,5]) ...

  5. muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor

    目录 muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor Connector 系统函数connect 处理非阻塞connect的步骤: Connetor时序图 Accep ...

  6. muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制

    目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...

  7. muduo网络库学习笔记(三)TimerQueue定时器队列

    目录 muduo网络库学习笔记(三)TimerQueue定时器队列 Linux中的时间函数 timerfd简单使用介绍 timerfd示例 muduo中对timerfd的封装 TimerQueue的结 ...

  8. C++STL标准库学习笔记(三)multiset

    C++STL标准库学习笔记(三)multiset STL中的平衡二叉树数据结构 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标 ...

  9. 初步了解pandas(学习笔记)

    1 pandas简介 pandas 是一种列存数据分析 API.它是用于处理和分析输入数据的强大工具,很多机器学习框架都支持将 pandas 数据结构作为输入. 虽然全方位介绍 pandas API ...

  10. 【python】numpy库和matplotlib库学习笔记

    Numpy库 numpy:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成,并可与C++/Fortran语言无缝结合.树莓派Python v3默 ...

随机推荐

  1. 胃食管反流之 SAP分析( in the Ohmega software)

    原文:https://note.youdao.com/s/GED6wise SAP analysis in the Ohmega software ohmega software 关于胃食管反流疾病 ...

  2. 不到200行用Vue实现类似Swiper.js的轮播组件

    前言 大家在开发过程中,或多或少都会用到轮播图之类的组件,PC和Mobile上使用 Swiper.js ,小程序上使用swiper组件等. 本文将详细讲解如何用Vue一步步实现的类似Swiper.js ...

  3. 用.NET代码生成JSON Schema 验证器

    问题 对于验证复杂JSON数据是否合法的需求,通常的解决方式是标准JSON Schema,.Net下有对应的JSON Schema实现库.应用程序通常需要将标准JSON schema传入实现库,来做后 ...

  4. JavaSE的方法 (函数)

    目录 Java中的方法(函数) 方法声明格式:(与函数类似) Java中的方法(函数) Java方法是一段可重复使用的代码块,用于执行特定的任务.方法可以接受输入参数并返回一个值.在Java中,方法由 ...

  5. css摩天轮

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  6. kettle从入门到精通 第十八课 kettle Metadata Injection

    1.Metadata Injection 类似于java里面的模版,设置通用的模版,通过输入不同的数据,得到不同的结果.本示例演示两个字段拼接成一个新字段. 2.设置模版,设置模版时,只需要根据自己的 ...

  7. P1737

    problem \(\text{task 1}\) 要求: 输入:\(a,b\). 输出:\(-2a-2b\). 数据范围:\(|a|,|b| \le 10^9\). 做法: 先把 \(-2\) 提出 ...

  8. go 1.6 废弃 io/ioutil 包后的替换函数

    go 1.6 废弃 io/ioutil  包后的替换函数 io/ioutil 替代 ioutil.ReadAll -> io.ReadAll ioutil.ReadFile -> os.R ...

  9. 工具类——EventManager

    EventManager using UnityEngine; using System.Collections; using System.Collections.Generic; using Un ...

  10. arm linux 移植 e2fsprogs

    背景 之前在zynq平台下处理系统分区,用到了SPI-FLASH以及EMMC. 根据ZYNQ平台的特性以及产品升级需要,规划了 SPI-FLASH放置BootLoader EMMC中分为2个区,一个F ...