详谈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进程间通信用法实例
Jun 04 Python
深入理解Django中内置的用户认证
Oct 06 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
python调用摄像头显示图像的实例
Aug 03 Python
Python爬取成语接龙类网站
Oct 19 Python
对Python使用mfcc的两种方式详解
Jan 09 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
May 23 Python
Python自动化导出zabbix数据并发邮件脚本
Aug 16 Python
python批量处理文件或文件夹
Jul 28 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
Python request使用方法及问题总结
Apr 26 Python
python在CMD界面读取excel所有数据的示例
Sep 28 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 SQL防注入代码集合
2008/04/25 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
php中namespace及use用法分析
2016/12/06 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
JavaScript知识点整理
2015/12/09 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
node.js基础知识小结
2018/02/26 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
python实现员工管理系统
2018/01/11 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
keras 读取多标签图像数据方式
2020/06/12 Python
荷兰本土平价百货:HEMA
2017/10/23 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
大学毕业生工作的自我评价
2013/10/01 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
2014年内勤工作总结
2014/11/24 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
投资意向协议书
2015/01/29 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
Vue vee-validate插件的简单使用
2021/06/22 Vue.js