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
 
DataFrame 进行索引其实就是获取一个或者多个列:
 
获取列:指定列名称即可
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
获取行:
(1)通过切片或布尔型数组;
(2)通过布尔型DataFrame进行索引;
(3)在行上标签索引,引入索引字段ix,它可以通过NumPy式的标记法及轴标签从DataFrame中选取行和列的子集。

#切片获取行
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 索引、选取和过滤的更多相关文章

  1. Pandas DataFrame 数据选取和过滤

    This would allow chaining operations like: pd.read_csv('imdb.txt') .sort(columns='year') .filter(lam ...

  2. python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]

    1 引言 Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用.本文主要介绍Pandas的几种数据选取的方法. Pandas中,数据主要保存为Dataframe和Se ...

  3. pandas子集选取的三种方法:[]、.loc[]、.iloc[]

    pandas读取Excel.csv文件中的数据时,得到的大多是表格型的二维数据,在pandas中对应的即为DataFrame数据结构.在处理这类数据时,往往要根据据需求先获取数据中的子集,如某些列.某 ...

  4. 【python】pandas 索引操作

    选择.修改数据(单层索引) 推荐使用.at..iat..loc..iloc 操作 句法 结果 备注 选择列 df[col] Series 基于列名(列的标签),返回Series 用标签选择行 df.l ...

  5. 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) ...

  6. pandas 索引与列相互转化

    1. 准备数据 import pandas as pd from io import StringIO csv_txt = '''"date","player1" ...

  7. Pandas索引和选择数据

    在本章中,我们将讨论如何切割和丢弃日期,并获取Pandas中大对象的子集. Python和NumPy索引运算符"[]"和属性运算符".". 可以在广泛的用例中快 ...

  8. pandas索引操作

    Pandas的索引操作 索引对象Index 1. Series和DataFrame中的索引都是Index对象 示例代码: print(type(ser_obj.index)) print(type(d ...

  9. Pandas 索引和切片

    Series和Datafram索引的原理一样,我们以Dataframe的索引为主来学习 列索引:df['列名'] (Series不存在列索引) 行索引:df.loc[].df.iloc[] 选择列 / ...

随机推荐

  1. 《Javascript权威指南》学习笔记之十七:BOM新成就(1)--client存储数据(Storage实现)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u011043843/article/details/30255899     数据构成了web网站的 ...

  2. Oracle如何杀同库不同实例的会话

    今天处理了一个生产上的问题,主要就是杀会话, 生产环境是Oracle11gR2 RAC:有同事开发报表,报表工具连接到数据库上特别嚣张,把内存pin住: Select s.INST_ID, s.Mac ...

  3. 使用sass

    sass安装 compass安装 1.sass 需要安装ruby,然后通过gem安装sass. 2. less有想=两种安装方: 客户端安装: 引入less.js,然后就可以直接用.less文件 &l ...

  4. android 串口 android-serialport-api

    最近在做Android串口的开发,找到一个开源的串口类android-serialport-api.其主页在这里http://code.google.com/p/android-serialport- ...

  5. dubbo-源码阅读之容器启动

    dubbo Main 例子 public class Start { public static void main(String[] args) throws Exception { com.ali ...

  6. Python中 将数据插入到Word模板并生成一份Word

    搬运出处: https://blog.csdn.net/DaShu0612/article/details/82912064

  7. C# 三层架构的一个小练习(Winfrom与SQLite数据库组合)

    本文文字方面引用 微冷的風丶(博客地址:https://www.cnblogs.com/smbk/) 代码部分是本人亲自写的一个sqlite数据库的最简单登录界面练手(当时写的太烂了,现在回顾重构一下 ...

  8. HTML5中的Canvas和SVG

    Canvas 和 SVG 都允许我们在浏览器中创建图形,但是它们在根本上是不同的. 1 SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中 ...

  9. Vue学习笔记【9】——Vue指令之v-for和key属性

    迭代数组(普通数组.对象数组) <ul> <li v-for="(item, i) in list">索引:{{i}} --- 姓名:{{item.name ...

  10. 云原生数据库崛起,阿里云POLARDB当选世界互联网领先科技成果!

    第六届世界互联网大会来了!千年水乡古镇乌镇又一次吸引了全世界的目光. 刚刚,阿里云自研数据库POLARDB在会上当选世界互联网领先科技成果.POLARDB解决了企业在云时代的数据库难题,帮助企业在数小 ...