Pandas数据分析教程(2)-数据读取之普通索引、loc/iloc索引

在上一期中,我们简单介绍了 SeriesDataFrame两种Pandas中常用的数据结构,那么问题来了,假设我已经有了这两种数据,如何从中提取我想要的部分?

DataFrame类型从某种程度上来说,只不过是比Series多了一个维度,在读取时少填一个参数就可以了,读取方法本质上没啥区别, 因此本文主要记录DataFrame的读取方法

由于Pandas建立在Numpy的基础之上,Pandas的索引与Numpy数组索引的功能类似。但是,回忆一下,Numpy数组的索引必须是整数,而Pandas的索引可以是字符串,这就是最主要的区别。

本文记录两种主要方法: 普通索引法和loc/iloc选择法。现建立一个DataFrame作为本文的例子:

>> table = pd.DataFrame(np.arange(16).reshape(4,4),
                     range(1,5),['A','B','C','D'])
>> table
    A   B   C   D
1   0   1   2   3
2   4   5   6   7
3   8   9  10  11
4  12  13  14  15

普通索引

普通索引主要用于选取 指定列或列序列的数据,另外也可通过上一篇中所讲的 布尔数组或者 切片选取指定行:

table['C']
table[['C','D']]

切片或者 布尔数组可以选取指定行:

table[1:4]
table[table['C']>7]

注意:Series在切片时可有以下形式:obj [‘b’:’d’],截取行b到行d间的行,包括b、d(假定索引从’a’到’d’),也即 左闭右闭

loc/iloc索引

loc和iloc是pandas的两种用于索引的函数,相较于普通索引,这种方法运用的更为广泛。loc方法称为 轴标签索引,iloc方法被称为 整数索引

首先来看 iloc方法

>> table.iloc[[2,3],[3,0,1]]
    D   A   B
3  11   8   9
4  15  12  13

本段代码代表选择第3行(下标为2)和第4行(下标为3)对应第4列、第1列、第2列的部分,注意输出数据的排列顺序是依据给出的索引数据来的。

loc方法与iloc方法的功能是一致的,区别在于,loc方法给出的索引可以不是整数, 该方法默认用户填入的参数为定义的标签,而不是从0 → {\rightarrow}→N-1的下标。譬如在本例中,列标签为[‘A’,’B’,’C’,’D’],那么可以做出如下示例:

>> table.loc[[2,3],['D','A','B']]
    D  A  B
2   7  4  5
3  11  8  9

这一次模块对索引的认定是用户自定义的索引了, 不再是0→N-1的下标了

当然两种方法也是可以进行切片操作的:

table.loc[1:3,:'C']
table.iloc[:,3:]

这些操作都是很好理解的。同时,我们也可以传入布尔数组,进行 条件筛选,来个复杂点的:

>> table.loc[2:4,['A','C','D']][(table.A>4) & (table.C>4)]
    A   C   D
3   8  10  11
4  12  14  15

其实还有一些其他的索引办法,例如 at/iat索引、_get_value方法、ix方法(注意!最新版已弃用)等等,但总的来说, 这些方法的功能loc/iloc索引可以做到,但loc/iloc索引能做到的这些方法做不到,所以一般都用的很少。at/iat索引、_get_value方法都是用于获取一个单元格的值的方法,其中at和iat的区别跟loc和iloc的区别是一样的。

下次?下次不知道会写啥了,写作内容随机 [狗头.jpg]。

转载请标注作者和出处链接

Original: https://blog.csdn.net/weixin_51972995/article/details/122709550
Author: 少喝凉水G
Title: Pandas数据分析教程(2)-数据读取之普通索引、loc/iloc索引

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/759834/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 求网络地址和广播地址例题详解

    全网最简单算法,段块数三步搞定。 例题如下: 确定以下IP地址的网络地址和广播地址。 190.100.159.140/20 80.130.30.50/14 195.240.240….

    Python 2023年11月6日
    058
  • 爬虫代理 IP 池及隧道代理(2022.05.24)

    日常开发中,偶尔会遇到爬取网页数据的需求,为了隐藏本机真实 IP,常常会用到代理 IP 池,本文将基于 openresty 与代理 IP 池搭建更为易用的隧道代理。 1. 代理 I…

    Python 2023年5月24日
    066
  • flask操作数据库

    flask操作数据库 准备工作 安装flask-script(版本过高可能会报错) pip install flask-script==2.0.3 使用flask-script里的…

    Python 2023年10月30日
    033
  • python离线安装flask_Python离线安装Flask

    受限于内网,无法使用pip install Flask直接安装。 以Flask-0.12.2为例 安装Flask需要以下的依赖性,在安装Flask离线版时可以看到依赖性要求。 离线…

    Python 2023年8月15日
    0118
  • 数据科学—赋能未来,Python崛起

    | 1.1 为什么是Python? 首先恭喜你朝着成为数据科学家迈出了一大步! 在本系列中,你将了解到数据科学中最流行的Python库: numpy、 pandas 和 matpl…

    Python 2023年8月28日
    033
  • 01 matplotlib绘图初体验

    matplotlib 可以绘制什么图? 前言 一、折线图 * 1.1 折线图的介绍 1.2 代码及运行结果 二、散点图 * 2.1 散点图的介绍 2.2 代码及运行结果 三、饼图 …

    Python 2023年9月5日
    044
  • 【 Apifox】一款前端开发、后端开发、测试人员连连叫好的开发工具

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年9月30日
    067
  • 数据清理

    学习目标: 1、熟悉常见数据问题的处理方式 2、掌握对缺失值的检测与处理 3、掌握重复值的检测与处理 数据清理主要是通过一定的检测与处理方法,将”脏”数据清…

    Python 2023年8月7日
    069
  • pandas读取csv相对路径_解决pandas使用read_csv()读取文件遇到的问题

    如下: 数据文件: 上海机场 (sh600009) 24.11 3.58 东风汽车 (sh600006) 74.25 1.74 中国国贸 (sh600007) 26.38 2.66…

    Python 2023年8月7日
    067
  • Pandas处理时间类型数据

    时间序列数据描述 数据分析的分析对象不仅仅限于数值型和类别型两种,常用的数据类型还包括了时间类型.通过时间类型数据能够获取东岸对应的年月日和星期等信息.但时间类型数据在读入Pyth…

    Python 2023年8月6日
    047
  • python 包之 selenium 自动化使用教程

    pip install Selenium Chrome 是初始化谷歌浏览器 Firefox 是初始化火狐浏览器 Edge 是初始化IE浏览器 PhantomJS 是一个无界面浏览器…

    Python 2023年11月9日
    044
  • Redis的基础与django使用redis

    1.1 Redis简介 Redis是一个用c语言开发的非关系型(NoSQL)数据库,它将数据以key-value的形式存储在内存中,性能高并且开源、免费。 redis的应用场景: …

    Python 2023年8月3日
    065
  • 安装allure-pytest报错

    D:\Python37\Scripts>pip install allure-pytestCollecting allure-pytestWARNING: Retrying …

    Python 2023年9月10日
    057
  • conda创建虚拟环境安装python类库

    在控制台查看pip的版本,看是否需要进行pip的版本更新; pip list –outdated 若需要更新,则输入如下命令; python -m pip instal…

    Python 2023年9月8日
    052
  • Python中可以用三种方法判断文件是否存在

    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。 这里将介绍三种判断文件或文件夹是否存在的方法,分别…

    Python 2023年11月2日
    068
  • 一文过pandas入门(结篇)——才疏学浅的莫笑天

    本来是准备直接上实战的,后来想了想还是先把必要的东西讲完吧,要不然到时候实战很多东西会很懵,又要递归的去讲就很麻烦。 这篇文章就是pandas的最后一篇内容讲解了,三篇连到一块应该…

    Python 2023年8月8日
    058
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球