loc——通过行标签索引行数据
# iloc——通过行号索引行数据
# ix——通过行标签或者行号索引行数据(基于loc和iloc 和at 和iat 的混合)
# 同理,索引列数据也是如此!
# : 在切片操作相当于数组,前后没有值时取全部,前后为数字序号时,不包括末端,前后为名称时则包括末端
# 特殊情况 df[1:] 相当于第一行到最后一行, df[1:-1] 第一行到倒数第二行
# at等价于loc, iat等价于iloc,但是只能取到一个数据, 单数速度更快
# 直接通过df获取数据,和ix的区别,默认序号取行, 默认字符串其他取列, 正常获取格式 df[行][列],(注意列的格式不能使用 :格式, 另外不能使用 df[行,列] 格式获取) data=[[1,2,3],[4,5,6]]
index=['A','B']#行号
columns=['a','b','c']#列号
df=pd.DataFrame(data,index=index,columns=columns)#生成一个数据框 #---------------------------------------获取单行数据-----------------------------------------------------------
# 只能用索引名,如果未指定索引,则是自带(0--N)
print df.loc['A'] # 只能用索序号, 取第一行
print df.iloc[0] # 使用ix测试,取第一行
print df.ix['A']
print df.ix[0] #---------------------------------------获取单行数据----------------------------------------------------------- #---------------------------------------获取列数据-----------------------------------------------------------
# 全部行,列名为'a'的数据 , 等价于 df.loc[:][ 'a'] 和 df['a']
# 使用loc
print df.loc[:, 'a']
print df.loc[:][ 'a']
print df['a']
# 使用iloc
print df.iloc[:, 0]
# 使用ix
print df.ix[:, 0]
print df.ix[:, 'a'] #---------------------------------------获取列数据----------------------------------------------------------- #---------------------------------------获取多行数据-----------------------------------------------------------
# 使用名称时末端包含
print df.loc['A':'B']
# 使用默认索引时,末端不包含,所以需要使用0: 2
print df.iloc[0:2]
print df.ix['A':'B']
print df.ix[0:2]
#---------------------------------------获取多行数据----------------------------------------------------------- #---------------------------------------获取多列数据-----------------------------------------------------------
# 等价于 df.loc[:, ['a','b']]
# 取全部行,'a', 'b'列
print df.loc[:, 'a':'b']
print df.iloc[:, 0:2]
print df.ix[:, 'a':'b']
print df.ix[:, 0:2]
#---------------------------------------获取多列数据----------------------------------------------------------- #---------------------------------------获取多行多列数据-----------------------------------------------------------
#取第一行 'a','b'列
print df.loc['A','a':'b']
print df.iloc[0, 0:2]
print df.ix['A','a':'b']
print df.ix[0, 0:2]
#---------------------------------------获取多行多列数据----------------------------------------------------------- #---------------------------------------直接用df获取数据-----------------------------------------------------------
# 取全部行
# 取全部行,全部列
print df[:]
# 取第一行,全部列
print df[0:1]
# 取第二行到最后一行
print df[1:]
# 取第1行到倒数第二行, 不包括最后一行
print df[0:-1]
# 取倒数第二行
print df[-2:-1]
# 获取前2行
print df[0:2] # 获取'a','b'列, 在df直接取的情况下,不能使用'a':'b', 使用['a', 'b']代替,而且不能和行出现在同一个数组中
print df[['a','b']]
# 第一行,'a','b'列, 在df直接取的情况下,不能使用'a':'b', 使用['a', 'b']代替,而且不能和行出现在同一个数组中,而且必须出现在列后,df[0:1, [['a','b']]]这种写法非法
# 等价于 df.ix[0:1, 'a':'b']
print df[0:1][['a','b']]
print df.ix[0:1, 'a':'b']
print df.ix[0:1, ['a','b']]
print df.ix[0:1][['a','b']] #操作列
#获取列最后一行
print df['a'][-1]
#获取列最后两行
print df['a'][-2:] #---------------------------------------直接用df获取数据----------------------------------------------------------- #---------------------------------------直接用at获取数据-----------------------------------------------------------
print df.at['A', 'a']
#---------------------------------------直接用at获取数据----------------------------------------------------------- #---------------------------------------直接用iat获取数据-----------------------------------------------------------
print df.iat[0, 0]
#---------------------------------------直接用iat获取数据-----------------------------------------------------------

  

dataFrame 切片操作的更多相关文章

  1. Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档

    array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片 ...

  2. pandas 对数据帧DataFrame中数据的索引及切片操作

    1.创建数据帧 index是行索引,即每一行的名字:columns是列索引,即每一列的名字.建立数据帧时行索引和列索引都需要以列表的形式传入. import pandas as pd df = pd. ...

  3. python切片操作

    序列类型是其元素被顺序放置的一种数据结构类型,这种方式允许通过下标的方式来获得某一个数据元素,或者通过指定下标范围来获得一组序列的元素.这种访问序列的方式叫做切片.字符串也可以使用切片操作.切片操作符 ...

  4. Python序列的切片操作与技巧

    切片操作 对于具有序列结构的数据来说,切片操作的方法是:consequence[start_index: end_index: step]. start_index: 表示是第一个元素对象,正索引位置 ...

  5. 关于javascript里面仿python切片操作数组的使用方法

    其实在使用了好一段时间的 python之后,我觉得最让我念念不忘的并不是python每次在写函数或者循环的时候可以少用{}括号这样的东西(ps:其实也是了..感觉很清爽,而且又开始写js的时候老是想用 ...

  6. python学习之“切片操作从入门到精通”

    在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? >>> L ...

  7. Numpy入门 - 数组切片操作

    本节主要演示数组的切片操作,数组的切片操作有两种形式:更改原数组的切片操作和不更改原数组的切片操作. 一.更改原数组的切片操作 import numpy as np arr = np.array([1 ...

  8. 【Python实践-4】切片操作去除字符串首尾的空格

    #利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法 def trim(s): while s[0:1]==' ': s=s[1:] while s[ ...

  9. python迭代-如何对迭代器做切片操作

    如何对迭代器做切片操作 问题举例 读取某个文件内容的100~300行内容,我们是否可以使用 类似列表切片的方式得到一个100~300行文件内容的生成器 分析 列表的切片操作其实是在重载方法__getI ...

随机推荐

  1. 《JavaWeb从入门到改行》分页功能的实现

    @目录 什么是分页 ? 两个子模块功能的问题分析 和 解决方案 有条件查和无条件查询的影响 和 解决方案 项目案例: mysql + commons-dbutils+itcast-tools+Base ...

  2. <Android 基础(二十二)> EditText 无法显示完全以及尝鲜Android N

    前言 最近将Android Studio更新到了2.2 ,模拟器的Android版本也来到了最新的Nougat.很令人兴奋的一件事情呢! 对, 我就是这么没出息.文章结尾来几张图. 问题 最近遇到一个 ...

  3. Android 图片缩略图显示

    //通过openRawResource获取一个inputStream对象 InputStream inputStream = getResources().openRawResource(R.draw ...

  4. 有关平台支持的从经典部署模型到 Azure Resource Manager 的迁移的技术深入探讨

    本文将深入探讨如何从 Azure 经典部署模型迁移到 Azure Resource Manager 部署模型. 本文将介绍资源和功能级别的资源,让用户了解 Azure 平台如何在两种部署模型之间迁移资 ...

  5. CAShapeLayer的使用[1]

    CAShapeLayer的使用[1] 使用CoreAnimation绘制动画带来的系统开销非常的小,CoreAnimation通常都是使用GPU的. CAShapeLayer属于CoreAnimati ...

  6. cocos ide使用binding-generator导出来的c++类

    time:2015/03/19 cocos版本:3.2 描述:用了ide运行一个实例[1]的时候需要增加c++类,正确导出来之后,直接使用vs2012启动是没有问题的,但是使用ide启动却提示找不到模 ...

  7. ubuntu13.04更新源

    最近163的源出问题了,又要换一次源. 报错如下: 查更新源的命令查了好多次,这次还是记下来吧,估计以后还会用到很多次. 常规来说,是要先备份的,不过感觉备份也没什么用,所以就直接跳过吧.. 1  打 ...

  8. mysql资源地址

    http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.7/

  9. ppt基本操作

    一.概述及作用 ppt是一种表达用户思想的有力工具,无论是介绍一个计划,介绍一个新的产品,或是员工报告,员工培训,只要事先做一个演示文稿,那么阐述的过程就会变得见面,简明和清晰. 二.界面构成 演示文 ...

  10. Java学习---Java代码编写规范

    编码规范 1 前言为确保系统源程序可读性,从而增强系统可维护性,java编程人员应具有基本类似的编程风格,兹制定下述Java编程规范,以规范系统Java部分编程.系统继承的其它资源中的源程序也应按此规 ...