使用python3,软件为ipython notebook
pandas包不是python自带的包,需要我们手动载入
import pandas as pd
利用pandas简单创建一个数据框
df = pd.DataFrame([[0,1,2,3,4,5],[10,11,12,13,14,15],[20,21,22,23,24,25],[30,31,32,33,34,35],[40,41,42,43,44,45],[50,51,52,53,54,55]],columns=['a', 'b', 'c', 'd', 'e','f'])
1.loc[]
这个索引方法是基于索引名字来搜索,使用方法如下:
- 输入单独的索引名
df.loc[5]
就会索引出列名为5的那一行
- 输入索引名的列表
df.loc[[1,3,5]]
- 输入slice
df.loc[[1,3,5]]
- 输入带有一个参数的`callable“function
df.loc[df['a']<30,'grade']='L'
df
- 输入行与列
df.loc[1,'a']
10
2. iloc[]
iloc与loc的用法相同,只是loc是使用索引名称,而iloc是使用索引位置。
3.ix
ix可以称为iloc和loc的混合体,也就是说它可以支持iloc的位置索引和loc的名称索引的任意输入,不过名称索引的优先级在位置索引之前。看下面一个列子,你就会知道如何使用.ix索引方法了。
df.ix[[1,2,0],[1,5]]
df.ix[[1,2,0],['b','f']]
会发现两种代码的输出结果都一样,区别是第一种的第二个选项是使用了位置索引,而第二种的第二个选项是使用了名称索引。
4.query
查询带有布尔值表达式的数据框的列
ls=[[1,5],[2,4],[3,3],[4,2],[5,1]]
lt=['n','m']
df=pd.DataFrame(ls,columns=lt)
df
df.query('n>m')
输出了符合n>m的结果。这就是query的简单用法。
以上四种方法就是单层索引操作比较常用的方法。