pandas入门

 引入pandas和常用的数据结构Series,DataFrame

一、pandas的数据结构的介绍

1.Series

        Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据即可产生最简单的Series:


        默认索引是一个从0-N-1(N为数据长度)的整数型索引。你可以通过Series的values和index属性获取其数组表示形式和索引对象:

        可以通过index创建自己想要的索引:


        可以通过索引选取一个或者一组值,或者对其进行修改:

        NumPy数组运算都会保留索引和数值之间的链接:

        还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。它可以用在许多原本需要字典参数的函数中:

        如果数据被存在一个Python字典中,也可以直接通过这个字典来创建Series:

        如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)。

        在这个例子中,sdata中跟states索引相匹配的那3个值会被找出来并放到相应的位置上,但由于California所对应的sdata值找不到,就用NaN代替。在pandas中,可以用isnull和notnull

函数来检测缺失数据:

        Series也有类似的方法:

        对于许多应用而言,Series最重要的一个功能是:它在算术运算中会自动对齐不同索引的数据。

        Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切:

        Series的索引值可以通过赋值的方式就地修改:

2、DataFrame

                DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。DataFrame中面向行和面向列的操作基本上是平衡的。其实,DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)。

        注意:虽然DataFrame是以二维结构保存数据的,但你仍然可以轻松的将其表示为更高维的数据。

        构建DataFrame的办法有很多,最常用的是直接传人一个由等长列表或NumPy数组组成的字典:



debt没有值,自动填充为NaN

3、索引对象

        pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index:

        Index对象是不可修改的(immutable),因此用户不可对其修改:

        不可修改性非常重要,因为这样才能使Index对象在多个数据结构之间安全共享。


二、基本功能

        1、重新索引

            pandas对象的一个重要方法是reindex,其作用是创建一个适应新索引的新对象。








例子:


        DataFrame和Series之间的运算差不多也是如此,默认情况下,DataFrame和Series之间的算术运算会将Series的索引匹配到DataFrame的列,然后沿着行一直向下广播:

        如果某个索引值在DataFrame的列或者Series的索引中找不到,则参与运算的两个对象就会重新索引以形成并集:

        如果你希望匹配行且在列上广播,则必须使用算术运算方法。例如:

函数应用与映射

NumPy的ufunc(元素级数组方法)    也可用于操作pandas对象:

        另一个常见操作是,将函数应用到由各列或行所形成的一维数组上。DataFrame的apply方法即可实现此功能:

在DataFrame上,你希望根据一个或多个列中的值进行排序。将一个或多个列的名字传递给by选项即可达到该目的:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容