读书笔记一、pandas数据结构介绍
#直接传入一组数据
from pandas import Series,DataFrame
obj=Series([4,2,3])
obj
#Series的values和index属性获取数组表示形式和索引对象
obj.values
obj.index
#创建一个对各个数据点进行标记索引的Series
obj2=Series([4,2,3],index=['a','b','c'])
obj2
obj2.index
#通过索引的方式选取Series中的单个或者一组值
obj2['a']
obj2[['a','c','b']]
obj2['d']=6 #对数组进行运算保留索引和值之间的关系
obj2
obj2+obj2
obj2[obj2>2]
obj2*2 #将Series看成一个定长的有序字典,它是索引值到数据值的一个映射
'b' in obj2
'e' in obj2 #通过字典来创建Series
#只传入一个字典,则结果Series中的索引就是原字典中的键。
sdata={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
obj3=Series(sdata)
obj3
states=['California','Ohio','Oregon','Texas']
obj4=Series(sdata,index=states)
obj4
sdata中和states索引相匹配的三个值会被找出来并放到相应的位置上,找不到“California"对应的sdata值,其结果就为NaN。在pandas中,NaN用于表示缺失或NA值。
#pandas的isnull函数、notnull函数用于检测缺失数据
pd.isnull(obj4)
pd.notnull(obj4) #Series也有类似的实例方法
obj4.isnull()
Series最重要的一个功能:在算术运算中会自动对齐不同索引的数据。(换句话说就是Series在进行算术运算时,index会自动对齐)
obj3
obj4
obj3+obj4 #会发现'California'和'Utah'索引对应的数据值是NaN #name属性
#Series本身以及其索引都有name属性
obj4.name='population'
obj4.index.name='state'
obj4 #通过赋值的方式就地修改Series的索引
obj.index=['Bob','Steve','Jeff']
obj
data={'state':['Ohino','Ohino','Ohino','Nevada','Nevada'],
'year':[2000,2001,2002,2001,2002],
'pop':[1.5,1.7,3.6,2.4,2.9]}
df=DataFrame(data)
df

#构造较为完整的DataFrame的参数:
DataFrame(data=None,index=None,columns=None)
#columns即“name”
如果指定了列序列,则DataFrame的列会按照指定顺序进行排列:
DataFrame(data,columns=['year','state','pop']) #如果传入的列找不到,就会产生NA值
df=DataFrame(data,index=['one','two','three','four','fiva'],
columns=['year','state','pop','debt'])
缺失值由NaN补上。
df.index
df.columns
type(df['debt'])
将DataFrame的列获取为一个Series
#两者等价
df['state']
df.state
df.ix['three']
列可以通过赋值的方式进行修改。
#对空列进行赋值
df['debt']=16.5
df['debt']=np.arange(5.)
将列表或数组进行赋值给某个列时,其长度必须跟DataFrame的长度相匹配。如果赋值的时一个Series,就会精确匹配DataFrame的索引,所有的空位都将被填上缺失值:
val=Series([-1.2,-1.5,-1.7],index=['two','four','fiva'])
df['debt']=val
df
为不存在的列赋值会创建出一个新列。关键字del用于删除列:
df['eastern']=df.state=='Ohino'
del df['eastern']
df.columns
另一种常见的数据形式是嵌套字典,将其传给DataFrame,被解释为:外层字典的键作为列,内层字典的键作为索引(也可以显示指定索引)
pop={'Nevada':{2001:2.4,2002:2.9},
'Ohio':{2000:1.5,2001:1.7,2002:3.6}}
frame=pd.DataFrame(pop)
#对frame进行转置,内层字典的键会被合并、排序以形成最终的索引
frame.T
#显示指定索引
DataFrame(pop,index=[2001,2002,2003]) #由Series组成的字典
pdata={'Ohio':frame3['Ohio'][:-1],
'Nevada':frame3['Nevada'][:2]} #设置DataFrame的index和columns的name属性,也会显示出来
frame3.index.name='year'
frame3.columns.name='state'
和Series一样,values属性也会以二维ndarray的形式分返回DataFrame中的数据:
frame3.values
读书笔记一、pandas数据结构介绍的更多相关文章
- [redis读书笔记] 第一部分 数据结构与对象 简单动态字符串
本读书笔记主要来自于<<redis设计与实现>> -- 黄键宏(huangz) redis主要设计了字符串,链表,字典,跳跃表,整数集合,压缩列表来做为基本的数据结构,实现键值 ...
- 深入探索Android热修复技术原理读书笔记 —— 热修复技术介绍
1.1 什么是热修复 对于广大的移动开发者而言,发版更新是最为寻常不过的事了.然而,如果你 发现刚发出去的包有紧急的BUG需要修复,那你就必须需要经过下面这样的流程: 这就是传统的更新流程,步骤十分繁 ...
- [REDIS 读书笔记]第一部分 数据结构与对象 跳跃表
下面是跳跃表的基本原理,REDIS的实现大致相同 跳跃表的一个特点是,插入NODE是通过随机的方式来决定level的,比较奇特 下面是skipList的一个介绍,转载来的,源地址:http://ken ...
- .Net中的AOP读书笔记系列之AOP介绍
返回<.Net中的AOP>系列学习总目录 本篇目录 AOP是什么? Hello,World! 小结 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注 ...
- [redis读书笔记] 第一部分 数据结构与对象 对象类型
- 从前面redis的基本数据结构来看,可以看出,redis都是在基本结构(string)的基础上,封装了一层统计的结构(SDS),这样让对基本结构的访问能够更快更准确,提高可控制度. - redis ...
- 读书笔记:《数据结构与算法分析Java语言描述》
目录 第 3 章 表.栈和队列 3.2 表 ADT 3.2.1 表的简单数组实现 3.2.2 简单链表 3.3 Java Collections API 中的表 3.3.1 Collection 接口 ...
- R语言实战读书笔记(一)R语言介绍
1.3.3 工作空间 getwd():显示当前工作目录 setwd():设置当前工作目录 ls():列出当前工作空间中的对象 rm():删除对象 1.3.4 输入与输出 source():执行脚本
- 深入理解linux网络技术内幕读书笔记(二)--关键数据结构
Table of Contents 1 套接字缓冲区: sk_buff结构 1.1 网络选项及内核结构 1.2 结构说明及操作函数 2 net_device结构 2.1 MTU 2.2 结构说明及操作 ...
- [redis读书笔记] 第一部分 数据结构与对象 对象特性
一 类型检查和多态 类型检查,即有的命令是只针对特定类型的,如果类型不对,就会报错,此处的类型,是指的键类型,即robj.type.下面为有类型检查的命令: 对于某一种类型,redis下底层的实 ...
随机推荐
- RMQ Topic
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11794927.html RMQ Topic Project Directory Maven Depen ...
- URL编码表
url编码是一种浏览器用来打包表单输入的格式. 定义 url编码是一种浏览器用来打包表单输入的格式.浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送 ...
- python学习笔记(十一)处理json
json串就是字符串,json串里必须是双引号 d={'car':{'color':'red','price':100,'count':50}, '爱分叉':{'color':'red','price ...
- python全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python理论知识,线程的创建)
昨日内容回顾 队列 队列:先进先出.数据进程安全 队列实现方式:管道+锁 生产者消费者模型:解决数据供需不平衡 管道 双向通信,数据进程不安全 EOFError: 管道是由操作系统进行引用计数的 必须 ...
- 科讯使用的:ckeditor编辑器.复制word图片.一直沾不上去.谁有好的解决办法呢
在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...
- DEDECMS编辑器粘贴Word
我司需要做一个需求,就是使用富文本编辑器时,不要以上传附件的形式上传图片,而是以复制粘贴的形式上传图片. 在网上找了一下,有一个插件支持这个功能. WordPaster 安装方式如下: 直接使用Wor ...
- [转] SQL datediff (时间差)
DATEDIFF 函数 [日期和时间] 功能 返回两个日期之间的间隔. 语法 DATEDIFF ( date-part, date-expression-1, date-expression-2 ) ...
- PB TB级数据
Byte.KB.MB.GB.TB.PB.EB.ZB.YB. 1KB=1000B1MB=1000KB1GB=1000MB1TB=1000GB 1TB=240B=1024MB 1PB=250B k M G ...
- leetcode 141. 环形链表(C++)
给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. 示例 1: 输入: ...
- 使用sqlalchemy创建单条数据-分层管理代码
这里主要是如何把整个流程的代码分层管理,方便维护 不拆分层次,整个流程顺下来的代码看这里:sqlAlchemy基本使用 项目结构: model.py用来描述表结构: from sqlalchemy i ...