• Python for Data Analysis 学习心得(二)


     一、pandas介绍

    本篇程序上篇内容,在numpy下面继续介绍pandas,本书的作者是pandas的作者之一。pandas是非常好用的数据预处理工具,pandas下面有两个数据结构,分别为Series和DataFrame,DataFrame之前我在一些实战案例中有用过,下面先对这两个数据结构做介绍。

    二、Series

    Series最简单的一个功能就是对一组数字打上ID,用法为下

    可以看到Series会自动把数字打上0~3对应的ID,也可以对ID自定义名称

    这样就可以用key-value的形式将序列里的值调出,也可透过索引来修改值,比如obj2['d'] = 2

    如果将字典导入,由于字典本身就是key-value对应的格式,所以Series也会继续沿用这种对应方式

    三、DataFrame

    1、表的基本操作

    Dataframe同样也是可以将字典导入,并会对字典做索引,如下

     

    对于数据量较大的资料,可以用head( )来查看前五项的数据。

    使用frame['列名称']或是frame.列名称的方式查看某一列的数据。使用frame.loc['索引值']可以查看某一行的数据。而frame.values则可以看到完整的行列数据

    可以对选取的值进行修改,例如frame['year'] = 2000会把年份都修改成2000,del frame['year']则会把year这一列删除, drop('1')会把这行数据删除

    如果字典导入时某个值缺失了会用NaN来表示

    另外如果导入的是嵌套式字典的话则会把第一层当做列,第二层的key为行,下面为嵌套式的案例

    可以看到第一层的Nevada和Ohio为列,第二层的key 2000,2001,2002 为列,缺失的数据显示为NaN

     DataFrame可以对行和列做编辑,frame = pd.DataFrame(np.arange(9).reshape(3,3), index = [ 'a', 'c', 'd' ], colume = ['Ohio', 'Texas', 'California']),就会成为下面的矩阵

    2、计算

    当DataFrame对两个表进行运算时,假设一个表某个值要和另外一个表的值做计算,但是其中有一个值为空缺值(NaN),那运算的结果就会是空缺值(NaN),例如5+NaN = NaN,下面为范例说明

    为了避免这种情况发生,我们会希望系统可以假设这个不存在的值为0,这样我们的缺失值才不会在计算过程中扩散,我们希望的是5+NaN = 5, 所以就需要让pandas在做运算的时候对缺失值补上数字,方法为在运算指令后面加上fill_value这个选项。

    另外在做矩阵的计算时,如果是对单行做计算,则会使用广播,对每行都进行一次计算,如下图

     3、排序

    DataFrame也可以利用sort进行排序,默认的排序方式是由小到大,最后是NaN。可以指定以某列为基准进行排列,如下图就是以b这一列为基准进行排列

    另外还有一种排序方式称为rank,他可以为Series里面的每个值大小做排序,并给与由小到大的评分(从1开始),如下图,由于第2行的-5最小,所以rank值为1,再依序增加。

    4、重复标签索引

    和关系型数据库的唯一索引不同,pandas可以使用重复的索引,可使用以下代码查看表索引是否有重复的值

    使用索引查找数据时,pandas会将所有相同索引的值都返回

     5、统计

    pandas支援各式各样的统计,有常见的sum、mean、count等,可以可以查看图表的各种统计数据,下面为几个统计的指令

  • 相关阅读:
    webstorm11.0下载地址和webstorm11.0破解程序patcher.exe下载使用方法说明 前端IDE工具的利器
    20151224今天发现到的两篇关于CSS架构、可复用可维护CSS和CSS学习提升能有改变思想观念意识的文章 分别是CSS架构目标和说说CSS学习中的瓶颈
    GOF提出的23种设计模式是哪些 设计模式有创建形、行为形、结构形三种类别 常用的Javascript中常用设计模式的其中17种 详解设计模式六大原则
    HTML过滤器,用于去除XSS漏洞隐患。
    springboot的快速集成多数据源的启动器
    Springboot根据url后缀返回json或者xml或者html
    Springboot打包成War包并使其可以部署到Tomcat中直接运行
    数据脱敏工具类(包含手机号,银行卡号,邮箱,中文名称等)
    MySQL函数find_in_set介绍
    防止同一IP多次请求攻击
  • 原文地址:https://www.cnblogs.com/yenpaul/p/10120430.html
Copyright © 2020-2023  润新知