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 ...
随机推荐
- Build rpm example:zram
rpmbuild #ll zram-1.0.0 total 32 -rw-r--r-- 1 root root 948 Aug 21 16:44 Makefile -rw-r--r-- 1 root ...
- IOS - PDF合并
#pragma mark - Merge PDF - (void)mergePDF { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSD ...
- 数据库ifnull方法
IFNULL(expr1,expr2)如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值.例如: ifnull() 如果sum(t ...
- java.lang.RuntimeException: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
这种情况可能是因为在设置数据库的时候,没有配置数据库的方言,导致sql语句无法被识别. 例如在配置Jfinal的配置文件的时候 如果不配置数据库的方言,默认下它是MySQL的,当使用oracle数据库 ...
- 什么是PL/SQL,有什么用
1.什么是PL/SQL,有什么用 Procedure Language+SQL PL/SQL是Oracle数据库特有的编程语言. PL/SQL程序是以SQL为基础,引入了 编程语言特点,例如变 ...
- ASP.NET-属性与过滤器
目的:在调用操作之前或者之后执行特定的逻辑代码 系统定义: 1.日志记录 2.防图像盗链 3.爬虫 4.本地化,用于设定区域设置 5.动态操作,用于将操作注入到控制器当中 用来过滤HTTP请求 高级 ...
- AssetBundle打包优化解决方式
第一阶段:AssetBundle出一套解决方式 1.解决如今同一个资源打2个bundle的冗余问题 2.測试验证节省资源的比率是多少 问题拆分 一.bundle反复 问 题 :同样资源拆分问题? ...
- oracle 下操作blob字段是否会产生大量redo
操作blob字段是否会产生大量redo,答案是不会.以下来做一个实验,測试数据库版本号是11.2.0.1.0: --创建一张表做測试之用 create table test_blob ( id n ...
- Android 6.0 开发人员对系统权限的使用与练习(Permissions Best Practices)
Permissions Best Practices 在安装的过程中,用户非常easy忽略权限请求. 假设一个用户相应用感觉沮丧或者操心泄漏个人信息,那么这些用户就会不用他或者卸载它. 怎样规避这个问 ...
- nyoj--914--Yougth的最大化(二分查找)
Yougth的最大化 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Yougth现在有n个物品的重量和价值分别是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价值最 ...