作者:耿远昊、Datawhale团队


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

Datawhale又一开源项目来了!Joyful-Pandas(顾名思义:快乐学习Pandas)由Datawhale成员耿远昊发起,作者结合了三份经典教材的学习经验,历时2个多月时间,结合最新的Pandas版本,编写了这套关于Pandas的开源教程,梳理了Pandas的主线内容。

本项目从Pandas基础、数据分析方法、数据处理类型及动手实践四个模块,对Pandas进行系统性学习。同时,针对内容设计了大量的练习及案例,理论结合实践,巩固数据处理分析能力。

开源初衷

在使用Pandas之前,几乎所有的大型表格处理问题都是用xlrd/xlwt和python循环实现,虽然这已经几乎能完成一切的需求,但其缺点也显而易见,其一就是速度问题,其二就是代码的复用性几乎为0。

曾经也尝试过去零星地学Pandas,但不得不说这个包实在太过庞大,每次使用总觉得盲人摸象,每个函数的参数也很多,学习的路线并不是十分平缓。如果你刚刚手上使用Pandas,那么在碎片的学习过程中,报错是常常发生的事,并且很难修(因为不理解内部的操作),即使修好了下次又不会,令人有些沮丧。

2019年秋季,笔者偶然接触到了Theodore Petrou所著的《Pandas Cookbook》。快速地学习了一遍后,发现之前很多搞不清的概念得到了较好的解答。

之后,笔者又逐步地对着官方的User Guide一字一句查看,通读后建立了大的一些宏观概念。这是一个非常重要的台阶,官方的教程总是会告诉你重点在哪里。

经过了一段时间的思考,结合《Python for Data Analysis》(作者:Pandas之父)、《Pandas Cookbook》和官方的User Guide,按照自己的思路编写了一套关于Pandas的教程,完整梳理Pandas的主线内容。

本着杜绝浅尝辄止的理念,本教程涉及了每个部分的核心概念和函数。最后,希望达到“所写所得即所想”的境界,这大概需要更多的实践,也是笔者努力实现的目标方向。

关于项目的名字,笔者在原先使用Pandas时非常的痛苦(Painful),那现在是时候转变为“Joyful-Pandas”了!

开源内容

Joyful-Pandas共有11个章节,分成了4个模块,涵盖了Pandas基础内容,数据处理过程中常用的数据类型,及在处理过程中涉及到的操作。具体目录详情如下:

模块1 Pandas基础(第1章)

拿到数据后必然先要读取,分析完了数据必然是要保存;读取数据之后,我们面对了怎样的对象(Series? or Dataframe?)是第一重要的课题,因此了解序列和数据框的常规操作及其组件(component)便是必须涉及的内容。

模块2 数据分析方法(第2-5章)

对于一个Series或DataFrame而言,Pandas存在以下四种操作:

索引:如果一个操作使得它的元素信息减少了,那就对应了索引;

分组:数据被分组,从组内提取了关键的信息,使得数据信息被充分地使用;

变形:数据呈现结构或形态上的变化,使得我们更容易地能够地进一步处理数据;

合并:如果一个操作使得原本不属于这个数据框的信息被加入了进来,那往往是涉及到了合并操作。

笔者从数据信息增减的角度出发,将四类操作拆解成了3个板块,分别对应了本项目第2-5章的内容,串联了官方文档关于数据框操作的全部内容,帮助学习者系统梳理。

模块3 数据处理类型(第6-9章)

对序列和数据框这两种容器,Pandas基础对其的结构有了初步理解,而四种操作熟悉了所有相关操作,那么下面就要关心其中的数据类型。

其中涉及来四类特殊的数据类型:

缺失型数据

文本型数据

分类型数据

时间序列型数据

四种数据类型,分别对应了6-9章的内容。同时,在缺失型数据和文本型数据中,详细涉及Pandas1.0版本新的Nullable和string数据类型,这也是从Pandas 0.x升级后具有最大改动的方面。

模块4 动手实践(第10章)

最终,教程1-9章的最后都会加入两个练习题帮助读者巩固本章所学,每一道题都有多个小问,难度逐个上升,与知识点紧密结合。同时在第10章中会添加若干难度不一的综合问题,目前已添加两个经典案例,供大家学习实践。



最后,所有的练习都提供了参考答案,保证了完备性。

写到最后

除了教程主体和练习内容,每一章还加入了问题部分。每个章节设置3-8个问题,问题的内容包含了对知识点的细化认识、对复杂知识点的梳理、对某个函数或Pandas对象设计的思考等,如果在完成练习的基础上认真思考了这些问题,那么相信你对Pandas的掌握程度一定会再上一层楼,最后衷心的希望你能快乐的学习Pandas,体验用Pandas进行数据处理和分析的乐趣。

开源地址

https://github.com/datawhalechina/joyful-pandas

告别痛苦,快乐学习Pandas!开源教程《Joyful-Pandas》发布的更多相关文章

  1. 【干货分享】Node.js 中文学习资料和教程导航

    这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...

  2. Node.js 中文学习资料和教程导航

    这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...

  3. [转]Caffe 深度学习框架上手教程

    Caffe 深度学习框架上手教程 机器学习Caffe caffe 原文地址:http://suanfazu.com/t/caffe/281   blink 15年1月 6   Caffe448是一个清 ...

  4. Python 数据处理库 pandas 入门教程

    Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...

  5. Caffe 深度学习框架上手教程

    Caffe 深度学习框架上手教程   blink 15年1月   Caffe (CNN, deep learning) 介绍 Caffe -----------Convolution Architec ...

  6. 快速学习 Python 数据分析包 之 pandas

    最近在看时间序列分析的一些东西,中间普遍用到一个叫pandas的包,因此单独拿出时间来进行学习. 参见 pandas 官方文档 http://pandas.pydata.org/pandas-docs ...

  7. 学习Objective-C入门教程(分享)

    原百度文库连接:http://wenku.baidu.com/view/6786064fe518964bcf847c63.html PS:需要原文档的可以留邮箱发送! (我叫雷锋,不要谢我) 学习Ob ...

  8. 程序员用于机器学习编程的Python 数据处理库 pandas 进阶教程

    数据访问 在入门教程中,我们已经使用过访问数据的方法.这里我们再集中看一下. 注:这里的数据访问方法既适用于Series,也适用于DataFrame. **基础方法:[]和. 这是两种最直观的方法,任 ...

  9. 程序员用于机器学习编程的Python 数据处理库 pandas 入门教程

    入门介绍 pandas适合于许多不同类型的数据,包括: · 具有异构类型列的表格数据,例如SQL表格或Excel数据 · 有序和无序(不一定是固定频率)时间序列数据. · 具有行列标签的任意矩阵数据( ...

随机推荐

  1. Nginx 的五大应用场景

    一.HTTP服务器 Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署. 1.在文档根目录Do ...

  2. Morphological Image Processing

    目录 概 reflection and translation Erosion and Dilation Erosion 示例 skimage.morphology.erosion dilation ...

  3. matplotlib 进阶之Constrained Layout Guide

    目录 简单的例子 Colorbars Suptitle Legends Padding and Spacing spacing with colobars rcParams Use with Grid ...

  4. [C++]C++ STL库函数大全

    #include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> //定义错误码 # ...

  5. 01 Java基础

    Java基础 01 Hello 随便新建一个文件夹,存放代码 新建一个Java文件 文件后缀名为.java Hello.java [注意点]系统可能没有显示文件后缀名,我们需要手动打开 编写代码  p ...

  6. Flink sql 之 微批处理与MiniBatchIntervalInferRule (源码分析)

    本文源码基于flink1.14 平台用户在使用我们的flinkSql时经常会开启minaBatch来优化状态读写 所以从源码的角度具体解读一下miniBatch的原理 先看一下flinksql是如何触 ...

  7. nssm常用命令(在Windows系统下安装服务的工具)

    nssm install servername //创建servername服务 nssm start servername //启动服务 nssm stop servername //暂停服务 ns ...

  8. 如何下载安装JDBC_jar包,MySQL_JDBC_jar包的下载与使用(Windows)

    一. 下载 (1) 打开MySQL_JDBC的下载网站:https://dev.mysql.com/downloads/connector/j/ (2) 选择操作系统:Platform Indepen ...

  9. ORA-09925:Unable to create audit trail file 数据库启动失败

    问题描述:生产库停机加内存和CPU,重启完服务器,启动数据库报错. ORA-09925: Unable to create audit trail file Linux-x86_64 Error 2: ...

  10. eDiary电子日记本

    1.简介 eDiary是一款小巧的本地电子日记本, 也可以用来管理资料文档, 支持常用的文字编辑排版功能, 也支持插入图片功能. 支持多用户,可以设置登录用户名和密码, 每个用户可拥有多个日记文件, ...