Pandas的 loc iloc ix 区别
先看代码:
In [46]: import pandas as pd
In [47]: data = [[1,2,3],[4,5,6]]
In [48]: index = [0,1]
In [49]: columns=['a','b','c']
In [50]: df = pd.DataFrame(data=data, index=index, columns=columns)
In [51]: df
Out[51]:
a b c
0 1 2 3
1 4 5 6
1. loc——通过行标签索引行数据
In [52]: df.loc[1]
Out[52]:
a 4
b 5
c 6
Name: 1, dtype: int64
1.2 loc['d']表示索引的是第’d’行(index 是字符)
In [53]: import pandas as pd
...: data = [[1,2,3],[4,5,6]]
...: index = ['d','e']
...: columns=['a','b','c']
...: df = pd.DataFrame(data=data, index=index, columns=columns)
...:
In [54]: df
Out[54]:
a b c
d 1 2 3
e 4 5 6
In [55]: df.loc['d']
Out[55]:
a 1
b 2
c 3
Name: d, dtype: int64
1.3 如果想索引列数据,像这样做会报错
In [56]: df.loc['a']
Traceback (most recent call last):
File "<ipython-input-56-5dbae926782f>", line 1, in <module>
df.loc['a']
File "E:\Anaconda\lib\site-packages\pandas\core\indexing.py", line 1328, in __getitem__
return self._getitem_axis(key, axis=0)
...
KeyError: 'the label [a] is not in the [index]'
1.4 loc可以获取多行数据
In [57]: df.loc['d':]
Out[57]:
a b c
d 1 2 3
e 4 5 6
1.5 loc扩展——索引某行某列
In [58]: df.loc['d',['b','c']]
Out[58]:
b 2
c 3
Name: d, dtype: int64
1.6 loc扩展——索引某列
In [59]: df.loc[:,['c']]
Out[59]:
c
d 3
e 6
当然获取某列数据最直接的方式是df.[列标签],但是当列标签未知时可以通过这种方式获取列数据。
需要注意的是,dataframe的索引[1:3]是包含1,2,3的,与平时的不同。
2. iloc——通过行号获取行数据
2.1 想要获取哪一行就输入该行数字
先看之前df数据:
In [54]: df
Out[54]:
a b c
d 1 2 3
e 4 5 6
现在调用iloc命令
In [60]: df.iloc[1] #获取第1行
Out[60]:
a 4
b 5
c 6
Name: e, dtype: int64
In [61]: df.iloc[0] #获取第0行
Out[61]:
a 1
b 2
c 3
Name: d, dtype: int64
2.2 通过行标签索引会报错
In [62]: df.iloc['a']
Traceback (most recent call last):
File "<ipython-input-62-0c5fe4e92254>", line 1, in <module>
df.iloc['a']
File "E:\Anaconda\lib\site-packages\pandas\core\indexing.py", line 1328, in __getitem__
return self._getitem_axis(key, axis=0)
...
TypeError: cannot do positional indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [a] of <class 'str'>
2.3 同样通过行号可以索引多行
In [63]: df.iloc[0:] #获取0和其他行
Out[63]:
a b c
d 1 2 3
e 4 5 6
2.4 iloc索引列数据
In [64]: df.iloc[:,[0]]
Out[64]:
a
d 1
e 4
In [65]: df.iloc[:,[1]]
Out[65]:
b
d 2
e 5
3. ix——结合前两种的混合索引 (现在ix用法不推荐,这是Python2.x常用的)
3.1 通过行号索引
先看之前df数据:
In [54]: df
Out[54]:
a b c
d 1 2 3
e 4 5 6
现在看看.ix用法
In [66]: df.ix[1]
__main__:1: DeprecationWarning: .ix is deprecated. Please use .loc for label based indexing or .iloc for positional indexing
See the documentation here: http://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate_ix
Out[66]:
a 4
b 5
c 6
Name: e, dtype: int64
3.2 通过行标签索引
In [67]: df.ix['e']
Out[67]:
a 4
b 5
c 6
Name: e, dtype: int64
参考来源:https://blog.csdn.net/roamer314/article/details/52179191
Pandas的 loc iloc ix 区别的更多相关文章
- Pandas:loc iloc ix用法
参考:Pandas中关于 loc \ iloc \ ix 用法的理解 相同点 使用形式都是 df.xxx[ para1 , para2 ] #xxx表示loc iloc ix#df表示一个DataFr ...
- python pandas 中 loc & iloc 用法区别
转自:https://blog.csdn.net/qq_21840201/article/details/80725433 ### 随机生DataFrame 类型数据import pandas as ...
- pandas 定位 loc,iloc,ix
In [114]: df Out[114]: A B C D 2018-06-30 0.318501 0.613145 0.485612 0.918663 2018-07-31 0.614796 0. ...
- pandas的loc, iloc, ix的操作
参考: https://blog.csdn.net/xw_classmate/article/details/51333646 1. loc——通过行标签索引行数据 2. iloc——通过行号获取行数 ...
- Pandas之loc\iloc\ix
---------------------------------------------------------------------------------------------------- ...
- pandas中DataFrame的ix,loc,iloc索引方式的异同
pandas中DataFrame的ix,loc,iloc索引方式的异同 1.loc: 按照标签索引,范围包括start和end 2.iloc: 在位置上进行索引,不包括end 3.ix: 先在inde ...
- [译]pandas中的iloc loc的区别?
loc 从特定的 gets rows (or columns) with particular labels from the index. iloc gets rows (or columns) a ...
- 3、pandas的loc和iloc数据筛选
选择列: 选择一列: 选择多列(选择的内容变成list,也就是要两个方括号): 选择一行或多行(loc函数): 选择连续的行(以索引标签为选择参数): 选择非连续的行(以索引标签为选择参数): 选择包 ...
- pandas 选取数据 修改数据 loc iloc []
pandas选取数据可以通过 loc iloc [] 来选取 使用loc选取某几列: user_fans_df = sample_data.loc[:,['uid','fans_count']] 使 ...
随机推荐
- python 自动化之路 day 20 Django进阶/BBS项目【一】
一.django进阶 1.django orm 增删改查 1.1.创建表: 1 2 3 >>> from blog.models import Blog >>> b ...
- vivo 手机的USB调试功能
- CImg的使用,入门
CImg的使用: const char *imageIN="image.jpg" const char *imageOUT="imgeout.jpg" CImg ...
- 《从零开始学Swift》学习笔记(Day 6)——哎呀常量和变量都该什么时候用啊?
原创文章,欢迎转载.转载请注明:关东升的博客 使用var还是let? 在我们开发过程中啊什么时候定义关键字为var,还是定义为let呢? 其实啊都能满足我们的需求,那我们到底应该如何选择? 例如:可以 ...
- IDEA错误的将所有代码文件都加入版本控制
1.问题: IDEA将从Git上拉取的所有代码文件都加入版本控制里,而这些文件和远程服务器没有任何区别: 2.原因: 后来发现,虽然项目使用的是Git的版本控制,但是异常模块都是使用SVN的版本控制: ...
- 2018.10.26-day5 python整理总结
今日内容: 1.字典 2.id is == 3.小数据池 4.集合昨日回顾:1.列表:可变的 增:append//insert//extend//+//* 删:remove//pop//clear// ...
- Oracle数据库使用Analyze提升sql性能
Oracle数据库使用Analyze提升sql性能 如果你不使用analyze完成sql优化,将意味着:你拒绝使用数据库的查询优化器,也失去了使用优化连接的机会.假设你创建了一张拥有100万条记录的临 ...
- Django的models方法返回值异常,待解决
class BookInfo(models.Model): #创建书本信息类,继承models.Model booktitle=models.CharField(max_length=20) book ...
- How To Surf The Internet In Right Ways
本文偏指导性质,具体实现自行探索~~ 科普 如何***既然想学点东西,就不能被网络束缚住.国内的网络环境,对于外面世界探索还是挺限制的. 什么是墙GFW(great firewall) 中国特有的.就 ...
- python的语法规范及for和while
1.缩进: 空白在Python中是重要的.事实上行首的空白是重要的.它称为缩进.在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组.这意味着同一层次的语句必须有相同的缩进 ...