数据分析培训吧 关注:82贴子:158
  • 2回复贴,共1

Pandas应该这样学(1)

只看楼主收藏回复

最近在准备数据分析的课程,正好趁这个机会把之前用过的Pandas知识都梳理了一下。整体上来说,Pandas、Numpy和Matplotlib作为数据分析的三大利器,毕竟都属于工具一类,学起来并不难,但知识点很多,比较繁琐,所以我准备专门写一个系列教程,来介绍新手应该如何学习这三个工具,咱们就先从应用最广泛的Pandas开始。
作为一个对新手友好、以“通俗易懂”为最核心理念的技术公众号,当然要全面考虑到小白的需求,所以大家在学习的本系列文章的时候,不必担心自己的基础问题,只要你会加减乘除、Python的helloworld,理论上来说就应该能学会(学不会的来打我呀。。)。


1楼2021-03-29 11:06回复
    01 Pandas是什么
    首先,我们来看看Pandas是什么。很多新手应该都是一个好奇宝宝,经常爱问的一个问题就是,为什么这玩意叫Pandas呢?难道它是一个熊猫吗?它产自四川吗?(对不起,由一个问题衍生出来三个问题,哈哈哈)

    好奇虽然会害死猫,但不会害死人。作为一个新手,保持对细节的关注是可以的,当然也别太钻牛角尖。Pandas其实是几个单词组成的一个合成词,并不是我们平常意义上的熊猫之意。Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,现在大家不必深究这些名词术语,知道它的来历就好。
    Pandas作为一个强大的数据分析工具,是在Python数据分析领域必不可少必须掌握的C位工具。我前面说过,Pandas本身应用起来并不难,但知识点较多,学习起来是比较繁琐的,特别是很多童鞋学了一段时间之后反应最大的问题就是方法太多了,怎么都记不住,实在是太难了。

    确实,不得不承认诸如Numpy、Pandas等等这类工具的方法确实多,每个方法还有几十个参数,要死记硬背确实很难。但学习一定是有方法可循的,面对这种超多的知识点的工具,要怎么才能更好地学习和记忆呢?我们不妨想想生活中,如果你是一个妹纸,买了超多的鞋子、衣服裙子、化妆品,你是怎么管理的?如何快速找到你想要的东西的?答案很显而易见,我们首先要做的就是分类管理,我们不可能在化妆品柜子上去找裙子,也不可能在鞋柜上去找化妆品,只要分好了类,要找哪类东西的时候,直接再去里面找就好了。
    所以,首先,我会带大家对Pandas中涉及的常用方法进行分类,然后再根据不同类型介绍对应的方法的用法。从应用层面,Pandas可以分为以下几个大类的方法(我做成了思维导图,大家可以感受一下。当然具体的小点没有展开,展开的话怕吓着大家,哈哈哈):

    所以,Pandas这个系列会分成以下几个部分:
    Pandas常用数据类型
    Series的概念和构造方法
    Series里的常见操作
    Dataframe的概念和构造方法
    数据的读取
    数据的探索
    数据预处理
    数据选择
    数据操作
    当然,分类里面并不是严格区分的,因为有些方法是很多操作里面都会涉及的,所以大家不要纠结于具体的分类,如果是重复了,权当是在复习就好。而且,针对不同的场景,可能具体的使用上会有些区别,大家注意一下就好。
    具体每篇文章会涉及到几个部分呢?这个得看具体的知识点难度和文章的长度,从学习角度,咱这个不像是散文或小说,长度不宜过长,一般让大家在5分钟内看完就比较OK了。
    好了,开场白基本上算是讲完了,咱们就按照计划进入正题。


    2楼2021-03-29 11:12
    回复
      2025-08-14 00:16:02
      广告
      不感兴趣
      开通SVIP免广告
      02 Pandas中的基本数据类型
      Pandas作为一个数据分析的专业工具,当然最核心的作用就是操作数据了。所以,我们在学习之前,一定要了解Pandas究竟能操作哪些类型的数据。从学习的角度来看,我们只需要掌握Pandas中最核心的两类数据类型:Series和Dataframe。
      Series大家可以看成是一个一维数组,跟咱们在Python中使用的列表差不多,但跟列表还是有一定的区别的。一个明显的区别就是,Series中的每个元素除了有位置索引外,还有一个标签,我们除了使用元素的位置索引能够定位到一个元素,还能通过标签来定位到Series中的元素。从这个角度来看,Series是比列表更灵活的,这种设计的初衷是更适合于我们数据分析中的应用。
      接下来,我们通过例子来说明。首先来看看Python中的列表
      mylist = ['张三', '李四', '王五']# 张三的index固定是0,mylist[0]# 李四是1,mylist[1]# 王五是2,mylist[2]# 我们可以利用index来定位到列表中任何一个元素
      这个很简单,很多童鞋应该都很熟悉,就不多说了。我们重点来看看Pandas中的Series。Series长下面这样:
      import pandas as pdser = pd.Series(['张三', '李四', '王五']) # 生成一个series对象print(ser)
      运行这段代码,结果长这样:

      从上面打印出来的结果可以看到,Series对象打印出来会显示两列,左边的那列0,1,2就是Series中的index,也叫元素标签,跟右边的元素一一对应。右边显示的张三、李四、王五就是Series中的value,也就是元素的值。在默认情况下,如果你没有明确给Series中的元素指定对应的标签,Pandas就会将元素的位置索引作为元素的标签。
      当然,我们也可以手工指定各个元素的标签是什么,比如下面这个例子,我们将默认的0,1,2这三个标签换成了one,two,three这三个标签了:
      import pandas as pdser = pd.Series(['张三', '李四', '王五'])# 修改series元素标签ser.index = ['one', 'two', 'three'] print(ser)
      这个时候,ser打印出来是长这个样子:

      大家可以看到,标签的值改变了。标签的值可以随意改,这在数据分析中是有意义的,因为很多时候,我们在分析不同维度的数据时,需要用不同的标签去标识这个数据的意义,让我们在做数据分析时更加方便,而不像传统的Python列表中,只需要用位置索引来获取元素。同样的,在获取Series中的元素的时候,我们既可以按照传统的列表的位置索引方式来获取特定的元素,也可以按照标签的形式来获取Series中的元素。代码如下:
      import pandas as pdser = pd.Series(['张三', '李四', '王五'])# 修改series元素标签ser.index = ['one', 'two', 'three'] # 通过元素位置坐标来获取元素print(ser[0]) # 打印张三# 通过元素标签来获取元素print(ser['two']) # 打印李四
      接下来再看看Dataframe这种数据类型。Dataframe是一种比Series更常用的数据类型,因为它是一种模仿表格的二维数组结构,由行数据和列数据组成,对应的也有行标签和列标签。比如一个典型的Dataframe长下面这个样子:

      熟悉数据库的童鞋应该都知道,这就是典型的表结构。我们也可以修改行标签和列标签的值,并且在获取元素时也可以根据标签和位置来进行获取,后面的系列文章中将详细为大家进行讲解。
      好了,本文是Pandas应该这样学的第一篇,主要内容比较简单,主要给大家讲了下Pandas中两种最重要的数据结构Series和Dataframe。它们两者的区别大家一定要搞清楚,一个是一维的,一个是二维的。虽然Dataframe中也有多维数据结构,比如在有多级索引时,但这种是比较特殊的情况,后面我们遇到之后再说。目前,大家记住这些就足够了,我们的内容还很多,我们下一篇再见。


      4楼2021-03-29 11:18
      回复