详谈Pandas中iloc和loc以及ix的区别


Posted in Python onJune 08, 2018

Pandas库中有iloc和loc以及ix可以用来索引数据,抽取数据。但是方法一多也容易造成混淆。下面将一一来结合代码说清其中的区别。

1. iloc和loc的区别:

iloc主要使用数字来索引数据,而不能使用字符型的标签来索引数据。而loc则刚好相反,只能使用字符型标签来索引数据,不能使用数字来索引数据,不过有特殊情况,当数据框dataframe的行标签或者列标签为数字,loc就可以来其来索引。

好,先上代码,先上行标签和列标签都为数字的情况。

import pandas as pd
import numpy as np
a = np.arange(12).reshape(3,4)
print a
>>>
[[ 0 1 2 3]
 [ 4 5 6 7]
 [ 8 9 10 11]]
df = pd.DataFrame(a)
print df
>>>
 0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
print df.loc[0]
>>>
0 0
1 1
2 2
3 3
Name: 0, dtype: int32
print df.iloc[0]
0 0
1 1
2 2
3 3
Name: 0, dtype: int32
print df.loc[:,[0,3]]
 0 3
0 0 3
1 4 7
2 8 11
print df.iloc[:,[0,3]]
 0 3
0 0 3
1 4 7
2 8 11

接下来是把行标签[0, 1, 2]改成['a', 'b', 'c'],则成这样了。

df.index = ['a','b','c'] 
print df 
>>> 
 0 1 2 3 
a 0 1 2 3 
b 4 5 6 7 
c 8 9 10 11 
print df.loc[0] 
# TypeError: cannot do label indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [0] of <type 'int'> 
print df.iloc[0] 
>>> 
0 0 
1 1 
2 2 
3 3 
Name: a, dtype: int32 
print df.iloc['a'] # TypeError: cannot do positional indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [a] of <type 'str'> 
print df.loc['a'] # 正确 
>>> 
0 0 
1 1 
2 2 
3 3 
Name: a, dtype: int32

同样地,把列标签[0, 1, 2, 3]改成['A', 'B, 'C', 'D'],则成这样了。

df.columns = ['A','B','C','D']
print df
>>>
 A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
print df.loc[:,'A']
>>>
a 0
b 4
c 8
Name: A, dtype: int32
print df.iloc[:,'A'] # ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types

2.ix是一种混合索引,字符型标签和整型数据索引都可以。

print df.ix[0]
>>>
A 0
B 1
C 2
D 3
Name: a, dtype: int32
print df.ix['a']
>>>
A 0
B 1
C 2
D 3
Name: a, dtype: int32
print df.ix[:,0]
>>>
a 0
b 4
c 8
Name: A, dtype: int32
print df.ix[:,'A']
>>>
a 0
b 4
c 8
Name: A, dtype: int32

以上这篇详谈Pandas中iloc和loc以及ix的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python批量导出导入MySQL用户的方法
Nov 15 Python
python实现2014火车票查询代码分享
Jan 10 Python
python使用htmllib分析网页内容的方法
May 08 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
手写一个python迭代器过程详解
Aug 27 Python
Python函数式编程实例详解
Jan 17 Python
Python os库常用操作代码汇总
Nov 03 Python
Python numpy大矩阵运算内存不足如何解决
Nov 19 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 Python
python实现人人自动回复、抢沙发功能
Jun 08 #Python
利用Python写一个爬妹子的爬虫
Jun 08 #Python
python os用法总结
Jun 08 #Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 #Python
浅谈Pandas 排序之后索引的问题
Jun 07 #Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 #Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 #Python
You might like
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
php使用cookie保存登录用户名的方法
2015/01/26 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
JavaScript的document对象和window对象详解
2010/12/30 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
Bootstarp 基础教程之表单部分实例代码
2017/02/03 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
上学迟到的检讨书
2014/01/11 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis