Python——pandas模块—Series数据结构
Python——pandas模块—Series数据结构
- Python——pandas模块—Series数据结构
- pandas
- Series
- 创建Series
- 没有指定索引列时,自动创建:0~~(N-1)(N:数组长度)的整数型索引
- 指定索引列index(数字,字符串)这点与数组不同,数组中的元素类型要相同
- 使用列表、数组构建Series
- 通过字典/字典对象的方式创建Series
- 访问Sreies
- Series.head()从前访问
- Series.tail()从后访问
- Sreies.index查看索引列
- Sreies.values查看数据列
- Series.dtype查看数据类型
- Series的使用
- 使用一个Series创建另一个Series
- 缺失值检测
- 非缺失值检测
- 练习
- 查找Series(索引)
- [索引名]
- [索引位置下标]
- 切片操作
- 索引位置切片 [索引位置:索引位置:步长]
- 索引值切片[索引值:索引值]
- 索引列重新赋值
- Series的运算
- 一个Series与数值做运算
- 两个Series运算
- 总结:
Python——pandas模块—Series数据结构
pandas
Numpy更适合处理统一的数值数组数据
pandas是专门为处理表格和混杂数据设计的
panda有两种数据结构:
- Series
- DataFrame
Series
- Series数据类型能够保存 任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组轴标签统称为索引,每个元素都带有一个索引
- Series表现形式:索引在左边,值在右边
- 可以通过Series的属性:
index ——获取——索引列
values——获取——数据列
可以这样想:每一个元素可以类似的看成一个字典,整个Series可以类似的看成一个二维数组
如图:
创建Series
没有指定索引列时,自动创建:0~~(N-1)(N:数组长度)的整数型索引
import pandas as pd
#通过传入一个列表用Series函数创建
obj = pd.Series([4,7,-5,3])
print('创建的Series对象为')
print(obj)
自动添加整数索引 0~~4(数组长度为4)
指定索引列index(数字,字符串)这点与数组不同,数组中的元素类型要相同
#指定索引列创建Series对象
obj = pd.Series([4,2,-5,3],index=[2,1,1,'r_4'])
print('指定索引列创建Series对象')
print(obj)
使用列表、数组构建Series
lis = [1,2,3,4,5,6,7]
array = np.arange(7)
Series_lis = pd.Series(lis)
Series_array = pd.Series(array)
print('通过列表创建的Series')
print(Series_lis)
print('通过数组创建的Series')
print(Series_array)
同样,还是自动添加索引列
通过字典/字典对象的方式创建Series
不同的是,在字典里的key不可重复
但是在Series中index是可以重复的
#创建一个字典对象方式
dic = dict(zip(lis,array))
#zip打包zip(lis,array)操作之后形成一个元组列表
Series_dict = pd.Series(dic)
print('通过字典对象创建的Series对象:')
print(Series_dict)
#直接传入字典方式
Series_dict2 = pd.Series({'a':1,'b':2,'c':3,'d':4})
print('直接传入字典的方式创建的Series')
print(Series_dict2)
访问Sreies
再来看一个字典构建Series实例
dic = {'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
a = pd.Series(dic)
print(a)
Series.head()从前访问
默认访问前5个元素
print(a.head(2))
Series.tail()从后访问
默认访问后5个元素
print(a.tail(2))
Sreies.index查看索引列
print(a.index)
Sreies.values查看数据列
print(a.values)
Series.dtype查看数据类型
print(a.dtype)
Series的使用
使用一个Series创建另一个Series
上面我们创建了一个Series对象a
接下来,我们用a创建另一个Series对象
'''字典构建Serise实例'''
dic = {'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
a = pd.Series(dic)
b = pd.Series(a,index=['California','Ohio','Oregon','Texas'])
print('通过一个对象构建的Series对象:')
print(b)
创建的时候,新的对象的索引列为传入的index
样板对象有的index直接取其value
样板对象没有的index,添加进去,value值设为缺失值NaN
缺失值检测
返回的是一个 数据列为bool型的对象
True:缺失值
False:不是缺失值
#缺失值检测
print('缺失值检测')
print(pd.isnull(b))
非缺失值检测
pd.notnull(Series)
练习
生成一个和sd长度相同的随机数Series
sd = pd.Series([1,2,3,4,5])
sd = pd.Series([1,2,4,1,2])
#生成一个与sd长度相同的随机数数列
a = np.random.random(len(sd))
#用数组创建Series对象
s = pd.Series(a)
print('创建的Series对象:')
print(s)
查找Series(索引)
[索引名]
当有相同索引名时,返回多条数据
再次验证了,Series对象中索引的名字不唯一,可以重复出现
#Series[索引名]
import pandas as pd
obj = pd.Series([1,2,3,4],index=['d','f','d','c'])
print('创建的Series:')
print(obj)
obj2 = obj['d']
print('查找索引为d的数据:')
print(obj2)
[索引位置下标]
下标的取值范围:[o,len(Series.values)]
可以是:
整数:正取,从0开始
负数:倒取,从-1开始
# [索引位置下标]
import pandas as pd
obj = pd.Series([1,2,3,4],index=['d','f','d','c'])
print('索引1的数据:',obj[1])
print('索引最后一个的数据:',obj[-1])
切片操作
类似Numpy的ndarray切片操作
不同的是,Series切片中的数据除了索引号,还可以是索引值
注意:
当使用索引值进行切片时,索引列里的索引值要唯一,除非切片的起始值为唯一索引
索引位置切片 [索引位置:索引位置:步长]
#索引位置切片
import pandas as pd
obj = pd.Series([1,2,3,4],index=['d','f','d','c'])
print(obj[1:3])
索引值切片[索引值:索引值]
当使用索引值进行切片时,索引列里的索引值要唯一,除非切片的起始值为唯一索引
#索引位置切片
import pandas as pd
obj = pd.Series([1,2,3,4],index=['d','f','d','c'])
print(obj['f':'c']
切片起始索引为不唯一索引时
import pandas as pd
obj = pd.Series([1,2,3,4],index=['d','f','d','c'])
print(obj['d':'c']
索引列重新赋值
import pandas as pd
obj = pd.Series([1,2,3,4],index=['d','f','d','c'])
obj.index = ['one','two','three','four']
print(obj)
此方法只能对index进行修改,不可以对values进行修改
Series的运算
Series保留了Numpy中的数组运算,均可以使用
Series进行数组运算的时候,索引与值之间的映射关系不会发生改变
一个Series与数值做运算
# Series运算
import pandas as pd
obj = pd.Series([100,200,300,400],index = ['one','two','three','four'])
print('初始数组:')
print(obj)
print('+1数组:')
print(obj+1)
print('-2初始数组:')
print(obj-2)
print('*3初始数组:')
print(obj*3)
print('/2初始数组:')
print(obj/2)
两个Series运算
两个对应元素进行+ - * /,对方没有的返回index,且value=NaN
import pandas as pd
obj = pd.Series([100,200,300,400],index = ['one','two','three','four'])
obj2 = pd.Series([1,2,3],index=['a','b','one'])
print(obj+obj2)
当两个Series对象中的某一重复索引个数为多个
要用Series1的索引对应的value,与Series2 中重复的索引对应的value分别运算,分别返回
总结:
对Series对象进行操作时,基本上可以看成对Numpy中的ndarray进行操作
ndarray中的绝大多数操作都可以用在Series上
Python——pandas模块—Series数据结构相关推荐
- Python Pandas模块教程
Python Pandas模块 (Python Pandas Module) Pandas is an open source library in Python. It provides ready ...
- Pandas知识点-Series数据结构介绍
Pandas知识点-Series数据结构介绍 本文用到的数据来源于网易财经,具体下载方式可以参考上一篇文章:https://blog.csdn.net/weixin_43790276/article/ ...
- python pandas模块_Python3.5 Pandas模块中Series用法详解
Python3.5 Pandas模块中Series用法实例 本文实例讲述了Python3.5 Pandas模块之Series用法.分享给大家供大家参考,具体如下: 1.Pandas模块引入与基本数据结 ...
- Python Pandas 常用的数据结构有哪些?详解Series、DataFrame、Index数据结构。
Pandas常用数据结构 Pandas简介 Series 构建 Series 对象 通过数组/列表 通过ndarray 通过dict 指定index Series 数据结构 查看 Series 数据 ...
- Python pandas模块
1 pandas数据读取 Pandas需要先读取表格类型的数据,然后进行分析 1.1 读取文件和基础语句: 读取csv文件数据: import pandas as pd filepatch=r&quo ...
- Python pandas模块输出每行中间省略号问题
关于Python数据分析中pandas模块在输出的时候,每行的中间会有省略号出现,和行与行中间的省略号....问题,其他的站点(百度)中的大部分都是瞎写,根本就是复制黏贴以前的版本,你要想知道其他问题 ...
- pandas基础 -- Series数据结构
Series数据结构 简介 Series又称之为序列 Series是一种类似于一维数组的对象,由下面两个部分组成: values:一组数据(ndarray类型) index:相关的数据索引标签 nam ...
- Python Pandas库 Series.dt.tz_localize()和 Series.dt.tz_convert()的简单使用
概念理解: **Series.dt.tz_localize()**方法的作用为: 官方解释:Localize tz-naive Datetime Array/Index to tz-aware Dat ...
- [python]python pandas 模块
一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作. Pandas所支持的数据类型: 1. float 2. int 3. bool 4. datetime ...
最新文章
- OOP 面向对象 七大原则 (一)
- JSONObject JSONArray各种用法以及js eval()函数与JSON.parse的区
- cisco 2960 VLAN MAC_思科交换机交换机中ip、mac地址绑定
- ABAP-DOI技术的优化
- 从字符串中检索字符实现翻页
- dncnn图像去噪_基于强化学习的图像去噪方法与流程
- 微服务学习之02支付模块构建(单个、集群)【Hoxton.SR1版】
- 数学建模常用模型之秩和比综合评价法
- CREO:CREO软件之零件【模型】形状之拉伸、旋转、旋转混合的简介及其使用方法(图文教程)之详细攻略
- linux IIC子系统分析(七)——实例分析通过i2c-dev操作I2C设备
- 复旦MBAer聊“进博”:希望已至,寻路未来!
- Mybatis insert、update 、delete返回值
- wps office 2005:不得不用的14绝技
- <span>的宽高到底是多少?
- cytoscape作图难?10分钟搞定OTU的互作网络分析相关性联系图+MENA使用教程!
- 微信公众号开发002-微信网页授权
- coreldraw sp2精简版 x4_coreldraw下载
- html ajax 图片上传,Ajax实现图片上传并预览功能
- 《三国蜀汉赵云传》隐私政策
- 景德镇特色的部门级别与权限
热门文章
- Edsger Wybe Dijkstra
- 阿里云服务器华北1、华北2、华北3、华北5地域在哪个城市为什么没有华北4?...
- php 栏目名称,PHPCMS V9调用栏目ID,栏目名称,父栏目,顶级父栏目
- 2019爪哇部落第十届新生选拔赛 题解
- 三面蚂蚁金服,分享面试经历总结(已拿offer)
- “软件测试”一般都在测试什么你知道吗?
- c语言课程设计之黑白棋游戏,c语言课程设计黑白棋游戏.doc
- emoji 絵文字意思对照
- $vjudge-$基本算法专题题解
- 将音频翻译成文字的软件叫什么?这几个软件值得你一试