Pandas——ix vs loc vs iloc
2016-04-20 15:25
495 查看
Different Choices for Indexing
loc[‘d’]表示索引的是第’d’行(index 是字符)
如果想索引列数据,像这样做会报错
loc可以获取多行数据
loc扩展——索引某行某列
loc扩展——索引某列
当然获取某列数据最直接的方式是df.[列标签],但是当列标签未知时可以通过这种方式获取列数据。
需要注意的是,dataframe的索引[1:3]是包含1,2,3的,与平时的不同。
通过行标签索引会报错
同样通过行号可以索引多行
iloc索引列数据
通过行标签索引
loc——通过行标签索引行数据
loc[1]表示索引的是第1行(index 是整数)import pandas as pd data = [[1,2,3],[4,5,6]] index = [0,1] columns=['a','b','c'] df = pd.DataFrame(data=data, index=index, columns=columns) print df.loc[1] ''' a 4 b 5 c 6 '''
loc[‘d’]表示索引的是第’d’行(index 是字符)
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) print df.loc['d'] ''' a 1 b 2 c 3 '''
如果想索引列数据,像这样做会报错
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) print df.loc['a'] ''' KeyError: 'the label [a] is not in the [index]' '''
loc可以获取多行数据
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) print df.loc['d':] ''' a b c d 1 2 3 e 4 5 6 '''
loc扩展——索引某行某列
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) print df.loc['d',['b','c']] ''' b 2 c 3 '''
loc扩展——索引某列
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) print df.loc[:,['c']] ''' c d 3 e 6 '''
当然获取某列数据最直接的方式是df.[列标签],但是当列标签未知时可以通过这种方式获取列数据。
需要注意的是,dataframe的索引[1:3]是包含1,2,3的,与平时的不同。
iloc——通过行号获取行数据
想要获取哪一行就输入该行数字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) print df.loc[1] ''' a 4 b 5 c 6 '''
通过行标签索引会报错
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) print df.iloc['a'] ''' TypeError: cannot do label indexing on <class 'pandas.core.index.Index'> with these indexers [a] of <type 'str'> '''
同样通过行号可以索引多行
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) print df.iloc[0:] ''' a b c d 1 2 3 e 4 5 6 '''
iloc索引列数据
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) print df.iloc[:,[1]] ''' b d 2 e 5 '''
ix——结合前两种的混合索引
通过行号索引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) print df.ix[1] ''' a 4 b 5 c 6 '''
通过行标签索引
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) print df.ix['e'] ''' a 4 b 5 c 6 '''
相关文章推荐
- ndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter的解决方案
- 【超清晰】同步和异步的区别
- Maven Android Plugin
- linux与windows文件共享的实现
- Smart210学习记录-------内存初始化
- iOS中,当我们要去掉webView上的长按手势时
- mysql (master/slave)复制原理及配置
- 详解C语言编程中的函数指针以及函数回调
- LCS最长子串问题
- windows azure创建并发布网站
- 欢迎使用CSDN-markdown编辑器
- SPI、I2C、UART三种串行总线协议的区别
- Graphviz + CodeViz生成C/C++函数调用图(call graph)
- OpenSSL的简单使用
- 魔窗7式之微信一键唤起App内页
- java动态代理(JDK和CGlib)
- C语言04函数与递归
- (原创)EditText软键盘弹出关闭等使用总结
- C#导出EXCEL(DataTable导出EXCEL)
- 【Leetcode】82. Remove Duplicates from Sorted List II