pandas 2 选择数据
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 选择数据的更多相关文章
- pandas选择数据-【老鱼学pandas】
选择列 根据列名来选择某列的数据 import pandas as pd import numpy as np dates = pd.date_range("2017-01-08" ...
- 【转】Pandas学习笔记(二)选择数据
Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...
- pandas 学习 第14篇:索引和选择数据
数据框和序列结构中都有轴标签,轴标签的信息存储在Index对象中,轴标签的最重要的作用是: 唯一标识数据,用于定位数据 用于数据对齐 获取和设置数据集的子集. 本文重点关注如何对序列(Series)和 ...
- [数据清洗]-使用 Pandas 清洗“脏”数据
概要 准备工作 检查数据 处理缺失数据 添加默认值 删除不完整的行 删除不完整的列 规范化数据类型 必要的转换 重命名列名 保存结果 更多资源 Pandas 是 Python 中很流行的类库,使用它可 ...
- [数据清洗]- Pandas 清洗“脏”数据(三)
预览数据 这次我们使用 Artworks.csv ,我们选取 100 行数据来完成本次内容.具体步骤: 导入 Pandas 读取 csv 数据到 DataFrame(要确保数据已经下载到指定路径) D ...
- [数据清洗]-Pandas 清洗“脏”数据(一)
概要 准备工作 检查数据 处理缺失数据 添加默认值 删除不完整的行 删除不完整的列 规范化数据类型 必要的转换 重命名列名 保存结果 更多资源 Pandas 是 Python 中很流行的类库,使用它可 ...
- Python 数据分析 - 索引和选择数据
loc,iloc,ix三者间的区别和联系 loc .loc is primarily label based, but may also be used with a boolean array. 就 ...
- Pandas透视表处理数据(转)
手把手教你用Pandas透视表处理数据(附学习资料) 2018-01-06 数据派THU 来源:伯乐在线 - PyPer 本文共2203字,建议阅读5分钟.本文重点解释pandas中的函数pivot ...
- Pandas怎样新增数据列
Pandas怎样新增数据列? 在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析. 直接赋值 df.apply方法 df.assign方法 按条件选择分组分别赋值 0.读取csv ...
随机推荐
- How to check Open vSwitch version and supports OpenFlow version
Open vSwitch (OVS) is an open-source virtual switch, featuring programmable switch forwarding capabi ...
- STM32 Cubemx 输出可调频率与占空比的PWM
这里就不对STM32的PWM进行讲解了,想要了解的可以百度一下,这里主要说怎么实现. 1.建立工程,我选的是STM32F103zet6芯片,选择定时器的PWM功能 2.配置时钟,我这里配的是内部时钟, ...
- LaTeX 图片色偏解决方法
本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50327113 在LaTeX的编辑模式中 ...
- angular-resource
上一篇中讲到使用$http同服务器进行通信,但是功能上比较简单,angularjs还提供了另外一个可选的服务$resource,使用它可以非常方便的同支持restful的服务单进行数据交互. 安装 n ...
- MyBATIS插件原理第一篇——技术基础(反射和JDK动态代理)(转)
在介绍MyBATIS插件原理前我们需要先学习一下一些基础的知识,否则我们是很难理解MyBATIS的运行原理和插件原理的. MyBATIS最主要的是反射和动态代理技术,让我们首先先熟悉它们. 1:Jav ...
- linux svn命令具体解释
检測是否安装svn:svnserve --version svn服务的关闭:killall svnserve 创建svn库:svnadmin create /opt/svn/repos 配置自己主动启 ...
- QQ在线人数统计图数据解析
转载请注明出处:http://blog.csdn.net/xiaoy_h/article/details/27980851 我相信非常多人一定去过这个地方: http://im.qq.com/onli ...
- Aizu - 2306 Rabbit Party (DFS图论)
G. Rabbit Party Time Limit: 5000ms Case Time Limit: 5000ms Memory Limit: 65536KB 64-bit integer IO f ...
- 实践补充 Installing Tomcat 7.0.x on OS X
我的 Mac 下是1.6的 SDK,下载 Tomcat 8.0 执行后,訪问 http://127.0.0.1:8080 并无反应,并且关闭脚本会报错 : Unsupported major.mino ...
- JBoss AS 7之文件夹结构(The Return Of The King)
1.2 JBoss As 7体系结构 以下介绍一下JBoss的体系结构,详细的文件夹结构. 假设熟悉曾经JBoss版本号的人,一定会发现JBoss AS 7与之前的JBoss的文件夹结构有了非常大的不 ...