from __future__ import print_function
import pandas as pd
import numpy as np np.random.seed(1)
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df['A'], df.A)                       # 选取属性值为‘A’的列,两种方法效果相同
print(df[0:3], df['20130102':'20130104']) # 选取数据的前三行,选取行属性之间的数据(包括了右边属性的数据) 两种方法效果相同

select by label: loc 属性值

# select by label: loc
print(df.loc['20130102']) # 选取行属性为‘20130102’的数据
print(df.loc[:,['A','B']]) # 选取列属性为‘A’,‘B’的所有数据
print(df.loc['20130102', ['A','B']]) # 选取行属性为‘20130102’,列属性为‘A’,‘B’的数据

select by position: iloc 属性编号

# select by position: iloc
print(df.iloc[3]) # 选取行第4行的数据
print(df.iloc[3, 1]) # 选取第4行第2列的数据
print(df.iloc[3:5,0:2]) # 选取行编号为3,4 列编号为0,1的数据
print(df.iloc[[1,2,4],[0,2]]) # 选取第2,3,5行,第1,3列的数据

mixed selection: ix 标签值+标签标号

# mixed selection: ix
print(df.ix[:3, ['A', 'C']]) # 选取前3行,列属性为‘A’,‘C’的数据

Boolean indexing 布尔

# Boolean indexing
print(df[df.A > 0]) # 选取所有值大于0的数据

下面是所有的输出结果:

print(df)

>                   A         B         C         D
> 2013-01-01 1.624345 -0.611756 -0.528172 -1.072969
> 2013-01-02 0.865408 -2.301539 1.744812 -0.761207
> 2013-01-03 0.319039 -0.249370 1.462108 -2.060141
> 2013-01-04 -0.322417 -0.384054 1.133769 -1.099891
> 2013-01-05 -0.172428 -0.877858 0.042214 0.582815
> 2013-01-06 -1.100619 1.144724 0.901591 0.502494
print(df['A'])
print('\n')
print(df.A) > 2013-01-01 1.624345
> 2013-01-02 0.865408
> 2013-01-03 0.319039
> 2013-01-04 -0.322417
> 2013-01-05 -0.172428
> 2013-01-06 -1.100619
> Freq: D, Name: A, dtype: float64 > 2013-01-01 1.624345
> 2013-01-02 0.865408
> 2013-01-03 0.319039
> 2013-01-04 -0.322417
> 2013-01-05 -0.172428
> 2013-01-06 -1.100619
> Freq: D, Name: A, dtype: float64
print(df[0:3])
print('\n')
print(df['20130102':'20130104']) > A B C D
> 2013-01-01 1.624345 -0.611756 -0.528172 -1.072969
> 2013-01-02 0.865408 -2.301539 1.744812 -0.761207
> 2013-01-03 0.319039 -0.249370 1.462108 -2.060141 > A B C D
> 2013-01-02 0.865408 -2.301539 1.744812 -0.761207
> 2013-01-03 0.319039 -0.249370 1.462108 -2.060141
> 2013-01-04 -0.322417 -0.384054 1.133769 -1.099891
# select by label: loc
print(df.loc['20130102']) > A 0.865408
> B -2.301539
> C 1.744812
> D -0.761207
> Name: 2013-01-02 00:00:00, dtype: float64
print(df.loc[:, ['A', 'B']])

>                    A         B
> 2013-01-01 1.624345 -0.611756
> 2013-01-02 0.865408 -2.301539
> 2013-01-03 0.319039 -0.249370
> 2013-01-04 -0.322417 -0.384054
> 2013-01-05 -0.172428 -0.877858
> 2013-01-06 -1.100619 1.144724
print(df.loc['20130102', ['A', 'B']])

> A    0.865408
> B -2.301539
> Name: 2013-01-02 00:00:00, dtype: float64
# select by position: iloc
print(df.iloc[3]) > A -0.322417
> B -0.384054
> C 1.133769
> D -1.099891
> Name: 2013-01-04 00:00:00, dtype: float64
print(df.iloc[3, 1])

> -0.38405435466841564
print(df.iloc[3:5, 0:2])

>                    A         B
> 2013-01-04 -0.322417 -0.384054
> 2013-01-05 -0.172428 -0.877858
print(df.iloc[[1, 2, 4], [0, 2]])

                   A         C
2013-01-02 0.865408 1.744812
2013-01-03 0.319039 1.462108
2013-01-05 -0.172428 0.042214
# mixed selection: ix
print(df.ix[:3, ['A', 'C']]) > A C
> 2013-01-01 1.624345 -0.528172
> 2013-01-02 0.865408 1.744812
> 2013-01-03 0.319039 1.462108
# Boolean indexing
print(df[df.A > 0]) > A B C D
> 2013-01-01 1.624345 -0.611756 -0.528172 -1.072969
> 2013-01-02 0.865408 -2.301539 1.744812 -0.761207
> 2013-01-03 0.319039 -0.249370 1.462108 -2.060141

END

pandas 2 选择数据的更多相关文章

  1. pandas选择数据-【老鱼学pandas】

    选择列 根据列名来选择某列的数据 import pandas as pd import numpy as np dates = pd.date_range("2017-01-08" ...

  2. 【转】Pandas学习笔记(二)选择数据

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  3. pandas 学习 第14篇:索引和选择数据

    数据框和序列结构中都有轴标签,轴标签的信息存储在Index对象中,轴标签的最重要的作用是: 唯一标识数据,用于定位数据 用于数据对齐 获取和设置数据集的子集. 本文重点关注如何对序列(Series)和 ...

  4. [数据清洗]-使用 Pandas 清洗“脏”数据

    概要 准备工作 检查数据 处理缺失数据 添加默认值 删除不完整的行 删除不完整的列 规范化数据类型 必要的转换 重命名列名 保存结果 更多资源 Pandas 是 Python 中很流行的类库,使用它可 ...

  5. [数据清洗]- Pandas 清洗“脏”数据(三)

    预览数据 这次我们使用 Artworks.csv ,我们选取 100 行数据来完成本次内容.具体步骤: 导入 Pandas 读取 csv 数据到 DataFrame(要确保数据已经下载到指定路径) D ...

  6. [数据清洗]-Pandas 清洗“脏”数据(一)

    概要 准备工作 检查数据 处理缺失数据 添加默认值 删除不完整的行 删除不完整的列 规范化数据类型 必要的转换 重命名列名 保存结果 更多资源 Pandas 是 Python 中很流行的类库,使用它可 ...

  7. Python 数据分析 - 索引和选择数据

    loc,iloc,ix三者间的区别和联系 loc .loc is primarily label based, but may also be used with a boolean array. 就 ...

  8. Pandas透视表处理数据(转)

    手把手教你用Pandas透视表处理数据(附学习资料) 2018-01-06 数据派THU 来源:伯乐在线 -  PyPer 本文共2203字,建议阅读5分钟.本文重点解释pandas中的函数pivot ...

  9. Pandas怎样新增数据列

    Pandas怎样新增数据列? 在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析. 直接赋值 df.apply方法 df.assign方法 按条件选择分组分别赋值 0.读取csv ...

随机推荐

  1. NTP同步底层实现

    RFC http://www.ietf.org/rfc/rfc5905.txt https://www.eecis.udel.edu/~mills/ntp/html/select.html https ...

  2. Flask-Babel 使用简介(翻译文档)

    最近用flask-bable翻译一个项目,在网站上查找到有一个示例文档,地址:http://translations.readthedocs.io/en/latest/flask-babel.html ...

  3. bitset优化背包

    题目:https://agc020.contest.atcoder.jp/tasks/agc020_c 回忆下一题,是零一背包,主要的做法就是凑出最接近sum/2的价值,然后发现现在的背包的容量是20 ...

  4. php 魔术方法和魔术常量

    魔术方法:PHP把类中所有以__(两个下划线)开头的方法当成魔术方法,一般建议用户不要将自定义的方法前面加上__作为前缀.魔术方法: 1. __construct() 类的默认构造方法,如果__con ...

  5. 【henuacm2016级暑期训练-动态规划专题 C】Little Girl and Maximum XOR

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑r最后的二进制形式为 1xxxxx 那么我们肯定想让第一个最高位的1保留. 因此我们选取的另外一个数字 一定是 0xxxxx的形 ...

  6. [terry笔记]对人员列表文件进行数据库操作

    原文件(数据已经脱敏): staff_id,name,age,phone,dept,enroll_date1,姬建明,25,152015410,运维,2013-11-012,刘海龙,26,186184 ...

  7. C++ throw的实验 & 异常类继承关系

    如果定义了 throw() 表示函数不抛出异常,这时候如果还是抛出,会导致运行时错误. #include <iostream> #include <exception> #in ...

  8. Markdown简单介绍和基本的语法

    原文发表自我的个人站点 http://www.hainter.com/markdown.欢迎大家訪问,谢谢支持~ Markdown是一种语言,能够用于编写高质量的文章,语法简单易用 Markdown的 ...

  9. libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)

    libLAS 是一个用来读写三维激光雷达数据(LiDAR) 的 C++ 库.在学习.科研和研发中都会广泛运用.怎样编译和配置自己所须要版本号的libLAS库确是一件麻烦耗时的事情. 笔者在Win7 6 ...

  10. 《UNIX环境高级编程》读书笔记之系统数据文件和信息(1)

    1.UNIX系统口令文件包括了下图所看到的的各字段,这些字段包括在<pwd.h>中定义的passwd结构体中 POSIX定义了两个获取口令文件项的函数. 在给出用户登录名或用户ID后.这两 ...