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

来源:互联网 发布:php类与对象做出兔子 编辑:程序博客网 时间:2024/05/25 23:25

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

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

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. 直接使用ix属性获取,可以理解成lociloc的混合版
  2. ix依然紧跟一个[行,列],行列既可以使用索引名称也可以使用表示位置的整数
df1 = df.ix["x":"z", [1, 3]]print("\ndf1= \n", df1)df11 = df.ix[1:3, "a":"c"]print("\ndf11= \n", df11)

运行结果
这里写图片描述

Part 3:布尔操作

  1. 获取某一列中值满足特定条件的行
  2. 对整体DataFrame进行判断,不符合的则将其对应值置为NaN
df2 = df[df.a > 3]print("\ndf2= \n", df2)df3 = df[df > 11]print("\ndf3= \n", df3)

运行结果
这里写图片描述

Part 4:获取单个值

  1. 使用at[行,列]或者iat[行,列]或者get_value(行,列),注意[]()的区别
  2. atiat的区别类似lociloc,一个使用索引名称,一个是整数
df4 = df.at["x", "a"]print("\ndf4= \n", df4)df5 = df.get_value("x", "a")print("\ndf5= \n", df5)df6 = df.iat[1, 2]print("\ndf6= \n", df6)

运行结果
这里写图片描述


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

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


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

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

这里写图片描述

阅读全文
1 0