pandas 2 选择数据

摘要:
Columns=['A',df['20130102':locprint(df.loc['20130102'])#选择具有行属性“20130102”(df.loc[:'B'])的数据打印#选择列属性“A”,“B”]])#选择行属性“20130102”,“C”])#选中前3行,
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('
')
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('
')
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 选择数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇telegraf、influxDB、Grafana的安装与基本使用maven配置多个镜像下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

RAID和LVM磁盘阵列

RAID磁盘冗余阵列  CPU的处理性能保持着高速增长,Intel公司在2017年最新发布的i9-7980XE处理器芯片更是达到了18核心36线程。但与此同时,硬盘设备的性能提升却不是很大,因此逐渐成为当代计算机整体性能的瓶颈。而且,由于硬盘设备需要进行持续、频繁、大量的IO操作,相较于其他设备,其损坏几率也大幅增加,导致重要数据丢失的几率也随之增加。 1...

爬取js加密和混淆的例子

作业讲解:js逆向 概述 url:https://nyloner.cn/proxy 需求:将这个网页中的代理ip和端口号进行爬取 难点: 动态变化的请求参数 js加密 需要js逆向 分析 爬取的数据是动态加载 并且我们进行了抓包工具的全局搜索,没有查找到结果 意味着:爬取的数据从服务端请求到的是加密的密文数据 页面每10s刷新一次,刷新后...

vue移动app扫码功能

第一步:      上面这段代码写在index.html里面,我也不知道为什么,可能是全局的关系; 第二步:      定义一个按钮,点击启动扫码功能,另外再定义一个盒子来当做扫码的容器;我给这个盒子定义了一个id类名:bcid 第三步: 第三步代码多,直接粘贴,方便你我他,我也是在别人手上抄过来,作了部分改变      //创建扫描控件 startRec...

react-antd蚂蚁金服组件实例

React框架已经火了好长一段时间了,再不学就out了! 对React还没有了解的同学可以看看我之前的一篇文章,可以快速简单的认识一下React。React入门最好的实例-TodoList 自己从开始接触react一窍不通,到慢慢的似懂非懂,通过各种途径学习也有一阵了。学习过程中还会接触到很多新的东西,比如ES6、 webpack,过程艰辛谁人懂,见坑填...

正则表达式过滤联系方式,微信手机号QQ等

有些输入不允许用户输入联系方式。可以使用以下正则表达式来判断是否输入敏感信息 var reg = new RegExp("(微信|QQ|qq|weixin|1[0-9]{10}|[a-zA-Z0-9-\_]{6,16}|[0-9]{6,11})+",'g'); 解读: 以上正则表达可判断用户是否输入指定规则的数字、字母组合和关键字。 匹配的内容有: 1:关...

360独角兽实习,连载周记(gnuradio 低功耗蓝牙BLE 综合工具模块编写)

(有点乱,之后会有整理) 最近在用写一套gnuradio的OOT模块,主要用来进行BLE嗅探的,github上有了一些工具,可是他们并没有很好的模块化,于是打算自己写一个,这样以后做一些其他的项目,模块可以在grc流图里直接用,复用性会好很多。 我在github上找到了一个项目叫做BLE_dump,我参考了他的解调方式,事实证明这种解调方式的效果非常好,具...