Pandas-数据结构-Series(二):Series的索引【下标索引、标签索引、切片索引、布尔型索引】
一、下标索引
位置下标,类似序列
- 位置下标从0开始
- 输出结果为numpy.float格式,
- 可以通过float()函数转换为python float格式
- numpy.float与float占用字节不同
import numpy as np
import pandas as pds = pd.Series(np.random.rand(5))
print('s = \n', s)
print('\ns[0] = {0}, type(s[0]) = {1}, s[0].dtype = {2}'.format(s[0], type(s[0]), s[0].dtype))
print('\nfloat(s[0]) = {0}, type(float(s[0]) = {1})'.format(float(s[0]), type(float(s[0]))))
打印结果:
s =
0 0.221458
1 0.430786
2 0.096305
3 0.262580
4 0.993637
dtype: float64s[0] = 0.22145841095529073, type(s[0]) = <class 'numpy.float64'>, s[0].dtype = float64float(s[0]) = 0.22145841095529073, type(float(s[0]) = <class 'float'>)Process finished with exit code 0
二、标签索引
方法类似下标索引,用[]表示,内写上index,注意index是字符串
- 如果需要选择多个标签的值,用[[]]来表示(相当于[]中包含一个列表)
- 多标签索引结果是新的数组
import numpy as np
import pandas as pd# 方法类似下标索引,用[]表示,内写上index,注意index是字符串
s = pd.Series(np.random.rand(5), index=['a', 'b', 'c', 'd', 'e'])
print('\ns = \n{0}, \n\ntype(s) = {1}'.format(s, type(s)))print("\ns['a'] = {0}, type(s['a']) = {1}, s['a'].dtype = {2}".format(s['a'], type(s['a']), s['a'].dtype))print('-' * 100)sci = s[['a', 'b', 'e']]
print('\nsci = \n{0}, \n\ntype(sci) = {1}'.format(sci, type(sci)))
打印结果:
s =
a 0.648198
b 0.356047
c 0.375873
d 0.811611
e 0.070581
dtype: float64, type(s) = <class 'pandas.core.series.Series'>s['a'] = 0.6481978904955534, type(s['a']) = <class 'numpy.float64'>, s['a'].dtype = float64
----------------------------------------------------------------------------------------------------sci =
a 0.648198
b 0.356047
e 0.070581
dtype: float64, type(sci) = <class 'pandas.core.series.Series'>Process finished with exit code 0
三、切片索引
注意:
- 用index做切片是末端包含
- 下标索引做切片,和list写法一样
import numpy as np
import pandas as pd# 注意:用index做切片是末端包含s1 = pd.Series(np.random.rand(5))
s2 = pd.Series(np.random.rand(5), index = ['a','b','c','d','e'])
print('s1 = \n', s1)
print('-' * 30)
print('s1[1:4] = \n', s1[1:4])
print('-' * 30)
print('s1[4] = \n', s1[4])
print('-' * 100)
print('s2 = \n', s2)
print('-' * 30)
print("s2['a':'c'] = \n", s2['a':'c'])
print('-' * 30)
print("s2['c'] = \n", s2['c'])
print('-' * 30)
print("s2[0:3] = \n", s2[0:3])
print('-' * 30)
print("s2[3] = \n", s2[3])
print('-' * 30)
print("s2[:-1] = \n", s2[:-1])
print('-' * 30)
print("s2[::2] = \n", s2[::2])
print('-' * 100)
打印结果:
s1 =
0 0.786107
1 0.223454
2 0.591863
3 0.911600
4 0.672031
dtype: float64
------------------------------
s1[1:4] =
1 0.223454
2 0.591863
3 0.911600
dtype: float64
------------------------------
s1[4] = 0.6720314874669562
----------------------------------------------------------------------------------------------------
s2 =
a 0.398821
b 0.856505
c 0.795255
d 0.985476
e 0.724451
dtype: float64
------------------------------
s2['a':'c'] =
a 0.398821
b 0.856505
c 0.795255
dtype: float64
------------------------------
s2['c'] = 0.7952552440685834
------------------------------
s2[0:3] =
a 0.398821
b 0.856505
c 0.795255
dtype: float64
------------------------------
s2[3] = 0.9854755359882719
------------------------------
s2[:-1] =
a 0.398821
b 0.856505
c 0.795255
d 0.985476
dtype: float64
------------------------------
s2[::2] =
a 0.398821
c 0.795255
e 0.724451
dtype: float64
----------------------------------------------------------------------------------------------------Process finished with exit code 0
四、布尔型索引
数组做判断之后,返回的是一个由布尔值组成的新的数组
- .isnull() / .notnull() 判断是否为空值 (None代表空值,NaN代表有问题的数值,两个都会识别为空值)
- 布尔型索引方法:用[判断条件]表示,其中判断条件可以是 一个语句,或者是 一个布尔型数组!
import numpy as np
import pandas as pds = pd.Series(np.random.rand(3)*100)
s[4] = None # 添加一个空值
print("s = \n", s)
print('-' * 100)
# 数组做判断之后,返回的是一个由布尔值组成的新的数组
bs1 = s > 50
print("bs1 = \n{0}, \ntype(bs1) = {1}, \nbs1.dtype = {2}".format(bs1, type(bs1), bs1.dtype))
print('-' * 30)
# .isnull() / .notnull() 判断是否为空值 (None代表空值,NaN代表有问题的数值,两个都会识别为空值)
bs2 = s.isnull()
bs3 = s.notnull()
print("bs2 = \n{0}, \ntype(bs2) = {1}, bs2.dtype = {2}".format(bs2, type(bs2), bs2.dtype))
print('-' * 30)
print("bs3 = \n{0}, \ntype(bs3) = {1}, bs3.dtype = {2}".format(bs3, type(bs3), bs3.dtype))
print('-' * 100)print("s[s > 50] = \n", s[s > 50])
print('-' * 30)
print("s[bs3] \n", s[bs3])
打印结果:
s =
0 11.735721
1 62.482804
2 51.381651
4 None
dtype: object
----------------------------------------------------------------------------------------------------
bs1 =
0 False
1 True
2 True
4 False
dtype: bool,
type(bs1) = <class 'pandas.core.series.Series'>,
bs1.dtype = bool
------------------------------
bs2 =
0 False
1 False
2 False
4 True
dtype: bool,
type(bs2) = <class 'pandas.core.series.Series'>, bs2.dtype = bool
------------------------------
bs3 =
0 True
1 True
2 True
4 False
dtype: bool,
type(bs3) = <class 'pandas.core.series.Series'>, bs3.dtype = bool
----------------------------------------------------------------------------------------------------
s[s > 50] =
1 62.482804
2 51.381651
dtype: object
------------------------------
s[bs3]
0 11.735721
1 62.482804
2 51.381651
dtype: objectProcess finished with exit code 0
Pandas-数据结构-Series(二):Series的索引【下标索引、标签索引、切片索引、布尔型索引】相关推荐
- Pandas-数据结构-DataFrame(六):布尔型索引【用于逻辑筛选】
一.不做索引则会对数据每个值进行判断 import numpy as np import pandas as pd# 布尔型索引 # 和Series原理相同df = pd.DataFrame(np.r ...
- python布尔系列_python数据分析类库系列-Numpy之布尔型索引
我们了解了如何使用索引进行切片以及选择 ndarray 元素.当我们知道要选择的元素的确切索引时,这些方法很有用.但是,在很多情况下,我们不知道要选择的元素的索引.例如,假设有一个 10,000 x ...
- python布尔型索引_布尔型数组索引
我看到有人用布尔数组索引数组.我做了一些研究并测试了以下代码import numpy as np A=np.arange(30) A.shape = (10,3) 这就是矩阵 ^{pr2}$ 然后我就 ...
- Pyhton科学计算工具pandas(一)—— Series 数据结构
Pandas(一) -- 数据结构Series Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pand ...
- Pandas数据结构
Pandas数据结构 "一维数组"Serise Series "系列" Series 数据结构 Series 是带有标签的一维数组,可以保存任何数据类型(整数, ...
- Pandas:数据结构DataFrame
文章目录 1.基本概念及创建 DataFrame的数据结构 DataFrame的创建方法(5种) 2.索引 选择行 选择列 df.loc用法 df.iloc用法 布尔型索引 多重索引 Pandas基本 ...
- python布尔型数组_《Python数据分析》一2.10 用布尔型变量索引NumPy数组
本节书摘来自异步社区<Python数据分析>一书中的第2章,第2.10节,作者[印尼]Ivan Idris,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.10 ...
- Pandas简明教程:二、Pandas基本数据结构-DataFrame与Series
文章目录 1.什么是表格? 2.DataFrame类型 3.Series类型 本系列教程教程完整目录: 1.什么是表格? 月份 姓名 性别 应发工资 实发工资 职位 0 1 张三 男 2000 150 ...
- pandas中series一维数组的创建、索引的更改+索引切片和布尔索引+dataframe二维数组的创建、基本属性、索引方法(传统方法和lociloc)、nan操作、排序+案例
目录 一.为什么要学习pandas? 二.pandas的常用数据类型 1.series--一维的且带标签的数组 (1)创建一维数组 (2)通过列表形式创建的series带标签数组可以改变索引,传入索引 ...
最新文章
- 2021-06-29快速找出Excel表格中两列数据不同内容的3种方法!
- 打造具备互补测试技能的团队
- 数据库中范式的理解1NF、2NF、3NF
- SAP UI5应用debug级别的日志打印如何设置
- c++中,可以用类名直接访问非静态成员函数?
- 【C#语言规范】从FxCop归纳出来的一些规范建议
- 【ArcGIS遇上Python】ArcGIS批量为多个矢量图层添加一个或多个字段(Add Field)案例实现
- CentOS7.4安装nginx和php5.40
- 通过Bigtop编译Hadoop组件的rpm包
- disruptor小结--消费者
- ❤️六万字《Spring框架从入门到精通》(建议收藏)❤️
- lcd显示c语言程序,LCD1602液晶显示(51单片机c语言)
- 给mBlock添加扩展模块
- 阻滞增长模型--Logistic模型
- 9106w android7,三星note4 SM-N9106W原厂刷机包4.4.4/5.0.1rom线刷包Root驱动
- 顺利通过2021年上工信部的网络工程师考试,在此感悟一下
- Windows官方纯净系统镜像下载及相关介绍
- 从头开始设计我的网游
- QT 黑色风格+白色风格+淡蓝色风格样式表。
- Wormhole连接教程
热门文章
- 8年测试工程师经验--送给最初的迷茫和手足无措的你
- elasticsearch unassigned错误解决
- RBF神经网络与BP神经网络优缺点比较
- 以防作弊,ChatGPT 遭教育部“拉黑”:师生禁用!
- windows CMD 命令总结
- Windows磁盘卷有几种?各有什么特点?
- fpga的jtag接口扫不到器件_FPGA相关知识点9——JTAG接口的教训
- 喜迎华诞,openEuler 22.09 正式发布,与1265名开发者共建面向数字基础设施的开源操作系统
- Windows系统重装后,mysql启动
- 前端实现ctrl+F搜索效果