Python for Data Analysis 学习心得(二) - pandas介绍

 一、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等,可以可以查看图表的各种统计数据,下面为几个统计的指令

 

转载于:https://www.cnblogs.com/yenpaul/p/10120430.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Euler:欧拉函数&素数筛

一、欧拉函数 欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示。 通式: 其中p1, p2……pn为x的所有质因数,x是不为0的整数。比如x12,拆成质因数为122*2*3,12以内有1/2的数是2的倍数,那么有1-1/2…

大小端字节序

想起以前在汇编语言和数字逻辑的时候也有接触到一些这个概念,已经有点模糊了,搞不清楚哪个是低位在前哪个是高位在前。后来在Wiki和Google的帮助下也算摸清楚了一些Endianness的概念。 一、字节序的起源 在计算机中,字节序(Endian…

docker 部署nginx 使用keepalived 部署高可用

一.体系架构 在Keepalived Nginx高可用负载均衡架构中,keepalived负责实现High-availability (HA) 功能控制前端机VIP(虚拟网络地址),当有设备发生故障时,热备服务器可以瞬间将VIP自动切换过来&#xff0c…

虚拟字符设备驱动开发步骤

目录前言字符设备驱动简介内核驱动操作函数集合(file_operations结构体)字符设备驱动开发步骤.ko驱动模块的加载和卸载(module_init驱动入口、insmod驱动加载)字符设备注册与注销到内核register_chrdev(设备号、设备名) -- 很少用了实现设备的具体操作函数添加LICENSE 和作者信…

设计模式20——Mediator设计模式

2019独角兽企业重金招聘Python工程师标准>>> Mediator中介者设计模式是通过一个中介对象封装一系列关于对象交互行为. Mediator中介者设计模式中的角色如下: (1).中介者(Mediator):抽象定义了“同事”(co…

Linux LED驱动开发实验(直接操作寄存器 -- 实际开发很少这样做)

目录Linux 下LED 灯驱动原理地址映射(ioremap映射、iounmap释放)I/O 内存访问函数硬件原理图分析实验程序编写LED 灯驱动程序编写APP测试程序编写运行测试编译驱动程序和测试APP拷贝led.ko 和ledApp到指定目录加载led.ko 驱动模块到内核创建应用层“/dev/led”设备节点运行测试…

Strange Words 4

2019独角兽企业重金招聘Python工程师标准>>> abnormality 英[ˌbnɔːmləti] 美[ˌbnɔːrmləti] n.变态;反常;异常;畸形 tenor 英 [tenə(r)]  美 [tenər] n.大意;要旨;常规;男高音&…

新字符设备驱动实验(自动分配设备号、自动创建应用层设备节点、新字符设备注册到内核的结构体)

目录自动分配和释放设备号示例代码新的字符设备注册到内核方法字符设备结构体(前面的设备号也放进来)cdev_init结构体初始化函数cdev_add 添加到linux内核cdev_del内核注销函数自动创建应用层设备节点mdev 机制创建和删除类创建删除设备(生成/dev/xxx设备)参考示例(先删除设备再…

$Django importlib与dir知识,手写配置文件, 配置查找顺序 drf分页器drf版本控制

1 importlib与dir知识 # importlib简介动态导入字符串模块 # 常规导入 from ss.aa import b from ss import a print(b,type(b)) #<module ss.aa.b from F:\\python37\\pythonfiles\\ss\\aa\\b.py> #<class module># importlib动态导入py文件模块 import importli…

springMVC_07乱码及restful风格

乱码的解决 通过过滤器解决乱码问题:CharacterEncodingFilter 配置web.xml文件 <filter><filter-name>encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><para…

[转】HTTP请求流程(二)----Telnet模拟HTTP请求

转自&#xff1a; http://www.cnblogs.com/stg609/archive/2008/07/06/1237000.html 上一部分"流程简介"&#xff0c; 我们大致了解了下HTTP请求的流程&#xff0c;这一篇我向大家介绍下如何利用Telnet来模拟Http请求---访问百度。 我们直接开始吧&#xff01; …

设备树下的LED驱动实验

目录设备树LED驱动原理硬件原理图分析实验程序编写修改设备树文件(根节点下添加好区分)LED灯驱动程序编写编写测试APP运行测试编译驱动程序和测试APP运行测试上一章我们详细的讲解了设备树语法以及在驱动开发中常用的OF 函数&#xff0c;本章我们就开始第一个基于设备树的Linux…

《现代操作系统》精读与思考笔记 第七章 多媒体

第七章部分内容与前几章内容关联很大&#xff0c;比如进程调度、磁盘调度、文件系统&#xff0c;而且多为实现细节&#xff0c;这里不详述。 1.帧数与闪烁&#xff08;P476&#xff09; 画面动作的平滑性不是完全由每秒的帧数决定的&#xff0c;而是由每秒不同画面的数目决定的…

pinctrl和gpio子系统实验(芯片原厂做的,类似STM32的HAL库,我们只需调用API来直接操作GPIO)

目录pinctrl子系统pinctrl子系统简介(半导体厂商写的)I.MX6ULL的pinctrl子系统驱动分析0、通过compatbile属性查找对应驱动文件1、PIN配置信息详解(获取寄存器地址)2、PIN 驱动程序流程讲解(流程图&#xff0c;了解)设备树中添加pinctrl节点模板(半导体厂商瑞芯微、海思厂商写的…

成为你自己

2019独角兽企业重金招聘Python工程师标准>>> 一个看过许多国家、民族以及世界许多地方的旅行家&#xff0c;若有人问他&#xff0c;他在各处发现人们具有什么相同的特征&#xff0c;他或许会回答∶他们有懒惰的倾向。有些人会觉得&#xff0c;如 果他说他们全是怯懦…

网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

作为一个合格的运维人员&#xff0c;一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识。 废话不多说&#xff01;下面就逐一展开对这两个网络架构知识的说明&#xff1a;一、OSI七层网络协议OSI是Open System Interconnect的缩写&#xff0c;意为开放式系统互联。 OSI参考模…

Linux蜂鸣器实验(使用上一节子系统思想,摈弃了自己配置寄存器的繁琐操作)

目录子系统思想的蜂鸣器驱动流程硬件原理图分析实验程序编写修改设备树文件蜂鸣器驱动程序编写编写测试APP运行测试编译驱动程序和测试APP运行测试上一章实验中我们借助pinctrl 和gpio 子系统编写了LED 灯驱动&#xff0c;I.MX6U-ALPHA 开发板上还有一个蜂鸣器&#xff0c;从软…

gitbash如何修改可恶的蓝色字体

1、问题 这完全看不清啊&#xff01;&#xff01; 2、环境 git version 2.19.0 3、解决 1&#xff09;编辑/etc/bash.bashrc # Uncomment to use the terminal colours set in DIR_COLORS eval "$(dircolors -b /etc/DIR_COLORS)" 2&#xff09;编辑/etc/DIR…

Oracle分析函数

2019独角兽企业重金招聘Python工程师标准>>> Oracle分析函数——函数列表 SUM &#xff1a;该函数计算组中表达式的累积和 MIN &#xff1a;在一个组中的数据窗口中查找表达式的最小值 MAX &#xff1a;在一个组中的数据窗口中查找表达式的…

Linux并发与竞争介绍(原子操作、自旋锁、信号量、互斥体)

目录并发与竞争并发与竞争简介保护内容是什么原子操作原子操作简介原子整形操作API函数(atomic_t 结构体)原子位操作API 函数自旋锁自旋锁简介自旋锁API函数线程与线程线程与中断(获取锁之前关闭中断)其他类型的锁(读写锁、顺序锁)自旋锁使用注意事项信号量信号量简介信号量API…