一、下标索引

位置下标,类似序列

  • 位置下标从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的索引【下标索引、标签索引、切片索引、布尔型索引】相关推荐

  1. Pandas-数据结构-DataFrame(六):布尔型索引【用于逻辑筛选】

    一.不做索引则会对数据每个值进行判断 import numpy as np import pandas as pd# 布尔型索引 # 和Series原理相同df = pd.DataFrame(np.r ...

  2. python布尔系列_python数据分析类库系列-Numpy之布尔型索引

    我们了解了如何使用索引进行切片以及选择 ndarray 元素.当我们知道要选择的元素的确切索引时,这些方法很有用.但是,在很多情况下,我们不知道要选择的元素的索引.例如,假设有一个 10,000 x ...

  3. python布尔型索引_布尔型数组索引

    我看到有人用布尔数组索引数组.我做了一些研究并测试了以下代码import numpy as np A=np.arange(30) A.shape = (10,3) 这就是矩阵 ^{pr2}$ 然后我就 ...

  4. Pyhton科学计算工具pandas(一)—— Series 数据结构

    Pandas(一) -- 数据结构Series Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pand ...

  5. Pandas数据结构

    Pandas数据结构 "一维数组"Serise Series "系列" Series 数据结构 Series 是带有标签的一维数组,可以保存任何数据类型(整数, ...

  6. Pandas:数据结构DataFrame

    文章目录 1.基本概念及创建 DataFrame的数据结构 DataFrame的创建方法(5种) 2.索引 选择行 选择列 df.loc用法 df.iloc用法 布尔型索引 多重索引 Pandas基本 ...

  7. python布尔型数组_《Python数据分析》一2.10 用布尔型变量索引NumPy数组

    本节书摘来自异步社区<Python数据分析>一书中的第2章,第2.10节,作者[印尼]Ivan Idris,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.10 ...

  8. Pandas简明教程:二、Pandas基本数据结构-DataFrame与Series

    文章目录 1.什么是表格? 2.DataFrame类型 3.Series类型 本系列教程教程完整目录: 1.什么是表格? 月份 姓名 性别 应发工资 实发工资 职位 0 1 张三 男 2000 150 ...

  9. pandas中series一维数组的创建、索引的更改+索引切片和布尔索引+dataframe二维数组的创建、基本属性、索引方法(传统方法和lociloc)、nan操作、排序+案例

    目录 一.为什么要学习pandas? 二.pandas的常用数据类型 1.series--一维的且带标签的数组 (1)创建一维数组 (2)通过列表形式创建的series带标签数组可以改变索引,传入索引 ...

最新文章

  1. 2021-06-29快速找出Excel表格中两列数据不同内容的3种方法!
  2. 打造具备互补测试技能的团队
  3. 数据库中范式的理解1NF、2NF、3NF
  4. SAP UI5应用debug级别的日志打印如何设置
  5. c++中,可以用类名直接访问非静态成员函数?
  6. 【C#语言规范】从FxCop归纳出来的一些规范建议
  7. 【ArcGIS遇上Python】ArcGIS批量为多个矢量图层添加一个或多个字段(Add Field)案例实现
  8. CentOS7.4安装nginx和php5.40
  9. 通过Bigtop编译Hadoop组件的rpm包
  10. disruptor小结--消费者
  11. ❤️六万字《Spring框架从入门到精通》(建议收藏)❤️
  12. lcd显示c语言程序,LCD1602液晶显示(51单片机c语言)
  13. 给mBlock添加扩展模块
  14. 阻滞增长模型--Logistic模型
  15. 9106w android7,三星note4 SM-N9106W原厂刷机包4.4.4/5.0.1rom线刷包Root驱动
  16. 顺利通过2021年上工信部的网络工程师考试,在此感悟一下
  17. Windows官方纯净系统镜像下载及相关介绍
  18. 从头开始设计我的网游
  19. QT 黑色风格+白色风格+淡蓝色风格样式表。
  20. Wormhole连接教程

热门文章

  1. 8年测试工程师经验--送给最初的迷茫和手足无措的你
  2. elasticsearch unassigned错误解决
  3. RBF神经网络与BP神经网络优缺点比较
  4. 以防作弊,ChatGPT 遭教育部“拉黑”:师生禁用!
  5. windows CMD 命令总结
  6. Windows磁盘卷有几种?各有什么特点?
  7. fpga的jtag接口扫不到器件_FPGA相关知识点9——JTAG接口的教训
  8. 喜迎华诞,openEuler 22.09 正式发布,与1265名开发者共建面向数字基础设施的开源操作系统
  9. Windows系统重装后,mysql启动
  10. 前端实现ctrl+F搜索效果