【项目实战】自监控-07-DataFrame行列操作(中篇)

来源:互联网 发布:苹果电脑用于软件开发 编辑:程序博客网 时间:2024/05/29 15:01

系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2

  • 这个系列主要是实际在做项目的一个笔记
  • 自监控项目,主要是对采集的质量监控数据做的一个实时预警
  • 今天继续讲讲如何从DataFrame获取需要的行或者列
  • 主要涉及:iloc

Part 1:构建一个DataFrame

  1. 一个DataFrame可以看成一个二维表格,不过这个二维表格有行标题也有列标题,而且每类标题可能不止一级
  2. 示例中由一个字典构建一个DataFrame
  3. 通过index参数制定行名称
import pandas as pddict1 = {"a": [1, 3, 5, 6], "b": [11, 12, 15, 16],         "c": [22, 27, 29, 30], "d": [82, 87, 89, 80]}df = pd.DataFrame(dict1, index=["x", "y", "z", "q"])print("df= \n", df)

运行结果
这里写图片描述

Part 2:行操作

  1. 直接使用iloc属性获取,loc可以理解成locationiloc可以理解成integer location
  2. iloc依然紧跟一个[行,列],中括号中放入拟需要的行索引和列索引,但是行列索引只能使用整数,所以表示的是一种位置,起始位为0
  3. 若不对列进行筛选,则表示列信息的区域可以省略
  4. 若多于1行,可以使用一个列表表示对应的行信息,也可以使用切片操作
  5. 切片操作[1:3],表示的是[1, 2],不包括结束位
df1 = df.iloc[[1, 3]]print("\ndf1= \n", df1)df11 = df.iloc[1:3]print("\ndf11= \n", df11)

运行结果
这里写图片描述

Part 3:列操作

  1. 使用iloc属性获取
  2. [:,列]其中的行使用即可,即保持所有行信息,只筛选列信息
  3. 若多于1列,可以使用一个列表表示对应的列信息,也可以使用切片操作
df2 = df.iloc[:, [1, 3]]print("\ndf2= \n", df2)df22 = df.iloc[:, 1:3]print("\ndf22= \n", df22)

运行结果
这里写图片描述

Part 4:行列混合操作

  1. 就是以上两种的综合,[行,列]对应的行列信息都需要
  2. 当多于1行或者1列的时候,可以使用列表切片操作
df3 = df.iloc[[1, 3], [1, 3]]print("\ndf3= \n", df3)df33 = df.iloc[1:3, 1:3]print("\ndf33= \n", df33)

运行结果
这里写图片描述


以上为本次的学习内容,下回见

本文为原创作品,如若转载请标明出处,如发现有错误,欢迎留言指出


更多原创请关注微信公众号

扫描二维码,关注公众号
Python 优雅 帅气

这里写图片描述