一、下标索引

位置下标,类似序列

  • 位置下标从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. 会计的思考(20):还原会计报表的企业个性之四(持续经营)
  2. ASP.NET MVC Bundles 用法和说明(打包javascript和css)
  3. 【杂谈】梦想与饼干,AI是你的谁?
  4. 怎样在sqlite3上执行SQL语句
  5. [渝粤教育] 西南石油大学 建设法规 参考 资料
  6. 2018-5-22-Python全栈开发day9-Python开发课程简介part2
  7. 从Oracle数据库故障到AIX内存管理
  8. 不能不说的C#特性-迭代器(下),yield以及流的延迟计算
  9. ZOJ 3605Find the Marble(dp)
  10. 027_《Delphi Direct X 图形与游戏程序设计》
  11. SQL语句的增删改查(详细)
  12. python 框选截图_python实现微信的区域截图功能
  13. 记一个藏得很深的bug
  14. 计算机组装图纸手画,手工绘图的方法和步骤 -工程
  15. 技术笔试面试题(上)
  16. 千里马android framework开发解决Accessing hidden method限制,让应用访问隐藏方法(需要可以修改系统源码方案)
  17. html编辑 手机浏览器,浏览器编辑HTML
  18. 2021-11-06(为什么程序员是青春饭)
  19. 人工智能时代,普通的我们如何提升自己的核心竞争力
  20. 揭开RedisShake的秘密

热门文章

  1. 花指令,LLVM简介
  2. C++继承、虚函数、覆盖、多态、纯虚函数
  3. (转)运行时: 使进程和线程同步
  4. WIN32 MENU
  5. Web2.0真的会改变了互联网吗?[网摘]
  6. 小试牛刀:SQL 注入攻击
  7. Android Studio VT-x is disabled in BIOS 的解决办法
  8. 斯沃琪起诉三星智能手表侵犯商标权
  9. 10 本最佳 Linux、UNIX 编程书籍
  10. 2019年计算机网络大学排行,2019电脑销量排行榜_2019世界大学排名 计算机专业