详谈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写的windows服务不能启动的问题
Apr 15 Python
Python生成器(Generator)详解
Apr 13 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
简单了解python反射机制的一些知识
Jul 13 Python
python实现拉普拉斯特征图降维示例
Nov 25 Python
Python之Django自动实现html代码(下拉框,数据选择)
Mar 13 Python
Python 跨.py文件调用自定义函数说明
Jun 01 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
python中实现词云图的示例
Dec 19 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数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
通过js脚本复制网页上的一个表格的不错实现方法
2006/12/29 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
vue实现分页栏效果
2019/06/28 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
Python logging模块原理解析及应用
2020/08/13 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
董事长助理岗位职责
2014/02/18 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
初婚初育证明范本
2014/11/24 职场文书
先进个人评语大全
2015/01/04 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
Python List remove()实例用法详解
2021/08/02 Python
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python
Python开发五子棋小游戏
2022/04/28 Python