Pandas——ix vs loc vs iloc区别
2016-05-06 18:12
375 查看
Different Choices for Indexing
1.1 loc[1]表示索引的是第1行(index 是整数)
1.2 loc[‘d’]表示索引的是第’d’行(index 是字符)
1.3 如果想索引列数据,像这样做会报错
1.4 loc可以获取多行数据
1.5 loc扩展——索引某行某列
1,6 loc扩展——索引某列
当然获取某列数据最直接的方式是df.[列标签],但是当列标签未知时可以通过这种方式获取列数据。
需要注意的是,dataframe的索引[1:3]是包含1,2,3的,与平时的不同。
2.1 想要获取哪一行就输入该行数字
2.2 通过行标签索引会报错
2.3 同样通过行号可以索引多行
2.4 iloc索引列数据
3.1 通过行号索引
3.2 通过行标签索引
1. loc——通过行标签索引行数据
1.1 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 '''
1.2 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 '''
1.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]' '''
1.4 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 '''
1.5 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 '''
1,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[:,['c']] ''' c d 3 e 6 '''
当然获取某列数据最直接的方式是df.[列标签],但是当列标签未知时可以通过这种方式获取列数据。
需要注意的是,dataframe的索引[1:3]是包含1,2,3的,与平时的不同。
2. iloc——通过行号获取行数据
2.1 想要获取哪一行就输入该行数字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 '''
2.2 通过行标签索引会报错
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'> '''
2.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.iloc[0:] ''' a b c d 1 2 3 e 4 5 6 '''
2.4 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 '''
3. ix——结合前两种的混合索引
3.1 通过行号索引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 '''
3.2 通过行标签索引
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 '''
相关文章推荐
- Python使用matplotlib和pandas实现的画图操作【经典示例】
- 用Python的pandas框架操作Excel文件中的数据教程
- 在Python中利用Pandas库处理大数据的简单介绍
- python pandas 获取列数据的几种方法及书写形式比较
- pandas 安装
- pandas-如何保存groupby函数的结果?
- pandas安装过程中提示unable to find vcvarsall.bat的解决方法
- Kaggle Titanic Competition-第一部分
- 记tushare抓数据中出现的一个问题解答
- Anaconda对内置包进行更新
- Pandas.Dataframe使用小结
- python pandas消除空值和空格的混淆
- pandas透视表
- Python Pandas库 常见使用错误总结
- Python机器学习1-库安装
- 在python(windows操作系统)中安装、配置Tushare,希望对股票有兴趣的程序员有一点点帮助
- Python 数据分析包:pandas 基础
- Kaggle Titanic: Machine Learning from Disaster 一种思路
- 机器学习一小步:Kaggle上的练习Titanic: Machine Learning from Disaster(二)
- [pandas] 数据类型学习笔记