pandas 索引、选取和过滤
Series索引的工作方式类似于NumPy数组的索引,不过Series的索引值不只是整数,如:
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
obj=Series(np.arange(4),index=['a','b','c','d'])
obj=Series(np.arange(4),index=['a','b','c','d'])
obj
Out[10]:
a 0
b 1
c 2
d 3
dtype: int32
obj['b']
Out[11]: 1 obj[1]
Out[12]: 1 obj[2:4]
Out[13]:
c 2
d 3
dtype: int32 obj[['b','a','d']]
Out[14]:
b 1
a 0
d 3
dtype: int32 obj[[1,3]]
Out[15]:
b 1
d 3
dtype: int32
obj[obj<2]
Out[17]:
a 0
b 1
dtype: int32
#利用标签索引与普通的Python切片运算不同
#因为末端是包含的
obj['b':'c']=5 obj
Out[24]:
a 0
b 5
c 5
d 3
dtype: int32
data=DataFrame(np.arange(16).reshape((4,4)),index=['Ohio','Colorado','Utah','New York'],columns=['one','two','three','four']) data
Out[26]:
one two three four
Ohio 0 1 2 3
Colorado 4 5 6 7
Utah 8 9 10 11
New York 12 13 14 15 data['two']
Out[27]:
Ohio 1
Colorado 5
Utah 9
New York 13
Name: two, dtype: int32 data[['three','one']]
Out[28]:
three one
Ohio 2 0
Colorado 6 4
Utah 10 8
New York 14 12
#切片获取行
data[:2]
Out[29]:
one two three four
Ohio 0 1 2 3
Colorado 4 5 6 7 #布尔型数组获取行
data[data['three']>5]
Out[30]:
one two three four
Colorado 4 5 6 7
Utah 8 9 10 11
New York 12 13 14 15 #布尔型DataFrame进行索引
data<5
Out[31]:
one two three four
Ohio True True True True
Colorado True False False False
Utah False False False False
New York False False False False #将data<5的数值赋值为0
data[data<5]=0 data
Out[33]:
one two three four
Ohio 0 0 0 0
Colorado 0 5 6 7
Utah 8 9 10 11
New York 12 13 14 15 #行上进行标签索引,使用索引字段ix
data.ix['Colorado',['two','three']]
Out[34]:
two 5
three 6
Name: Colorado, dtype: int32 data.ix[['Colorado','Utah'],[3,0,1]]
Out[35]:
four one two
Colorado 7 0 5
Utah 11 8 9 #索引的是行索引号为2的数据,也就是行Utah
data.ix[2]
Out[36]:
one 8
two 9
three 10
four 11
Name: Utah, dtype: int32 data.ix[:'Utah','two']
Out[37]:
Ohio 0
Colorado 5
Utah 9
Name: two, dtype: int32 #索引data.three>5的行
data.ix[data.three>5,:3]
Out[38]:
one two three
Colorado 0 5 6
Utah 8 9 10
New York 12 13 14
DataFrame的索引选项
#选取DataFrame的单个列或者一组列
obj[val]
#选取的单个行或者一组行
obj.ix[val]
#选取单个列或列的子集
obj.ix[:,val]
#同时选取行和列
obj.ix[val1,val2]
pandas 索引、选取和过滤的更多相关文章
- Pandas DataFrame 数据选取和过滤
This would allow chaining operations like: pd.read_csv('imdb.txt') .sort(columns='year') .filter(lam ...
- python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
1 引言 Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用.本文主要介绍Pandas的几种数据选取的方法. Pandas中,数据主要保存为Dataframe和Se ...
- pandas子集选取的三种方法:[]、.loc[]、.iloc[]
pandas读取Excel.csv文件中的数据时,得到的大多是表格型的二维数据,在pandas中对应的即为DataFrame数据结构.在处理这类数据时,往往要根据据需求先获取数据中的子集,如某些列.某 ...
- 【python】pandas 索引操作
选择.修改数据(单层索引) 推荐使用.at..iat..loc..iloc 操作 句法 结果 备注 选择列 df[col] Series 基于列名(列的标签),返回Series 用标签选择行 df.l ...
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix
先手工生出一个数据框吧 import numpy as np import pandas as pd df = pd.DataFrame(np.arange(0,60,2).reshape(10,3) ...
- pandas 索引与列相互转化
1. 准备数据 import pandas as pd from io import StringIO csv_txt = '''"date","player1" ...
- Pandas索引和选择数据
在本章中,我们将讨论如何切割和丢弃日期,并获取Pandas中大对象的子集. Python和NumPy索引运算符"[]"和属性运算符".". 可以在广泛的用例中快 ...
- pandas索引操作
Pandas的索引操作 索引对象Index 1. Series和DataFrame中的索引都是Index对象 示例代码: print(type(ser_obj.index)) print(type(d ...
- Pandas 索引和切片
Series和Datafram索引的原理一样,我们以Dataframe的索引为主来学习 列索引:df['列名'] (Series不存在列索引) 行索引:df.loc[].df.iloc[] 选择列 / ...
随机推荐
- @Validated和@Valid区别:Spring validation验证框架对入参实体进行嵌套验证必须在相应属性(字段)加上@Valid而不是@Validated
Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR- ...
- 服务器安装宝塔linux系统控制面板
一.使用远程连接软件 (如 Putty.XShell) 连接你的Linux服务器,本教程以 Putty 为例. 1 启动 Putty.exe 程序,进入 Putty 主界面. 2 在 Host ...
- mysql几个常见错误记录
select时找不到表:大小写问题 show variables like '%lower_case_table_names%'; MySQL表名大小写敏感导致的问题 使用help_topic时的se ...
- MySQL关闭查询缓存(QC)的两种方法
MySQL Query Cache 会缓存select 查询,安装时默认是开启的,但是如果对表进行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP ...
- mongodb的学习 (2)
1.条件查询 查询姓名为小明的学生 db.local.find({name:'小明'});; 查询英语成绩大于90分的同学 ...
- 数组循环移动 空间复杂度O(1)
---恢复内容开始--- 题目大意: 输入元素个数,输入数组,输入右移步数,输出结果: 基本思路: 可以把数组(从下标为0开始存储)看成两部分,分别是[0,n-step-1],[n-step,n-1] ...
- Vue学习笔记【19】——Vue中的动画(使用第三方 CSS 动画库)
导入动画类库: <link rel="stylesheet" type="text/css" href="./lib/animate.css& ...
- Shiro学习(2)身份验证
身份验证,即在应用中谁能证明他就是他本人.一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明. 在shiro中,用户需要提供principals (身份)和cre ...
- Vue2.0源码思维导图-------------Vue 构造函数、原型、静态属性和方法
已经用vue有一段时间了,最近花一些时间去阅读Vue源码,看源码的同时便于理解,会用工具画下结构图. 今天把最近看到总结的结构图分享出来.希望可以帮助和其他同学一起进步.当然里边可能存在一些疏漏的,或 ...
- (转)OpenFire源码学习之二十七:Smack源码解析
转:http://blog.csdn.net/huwenfeng_2011/article/details/43484199 Smack Smack是一个用于和XMPP服务器通信的类库,由此可以实现即 ...