pandas中df.iloc函数应用

pandas.df.iloc函数

官方文档定义为“基于整数位置的索引,用于按位置进行选择。”

(官方文档http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html#pandas.DataFrame.iloc)

啥意思呢,意思就是iloc函数只根据行列号对数据进行切片或选择,与loc函数不同,loc函数可以通过规定dataframe的列名进行选择,iloc函数则是“纯粹”按照数据位置进行数据索引,参数也都是对行列号或行列号的切片或行列号的其他函数操作。

这里就按照官方给的示例捋一下iloc函数的各种索引使用方法吧。

先写一个示例:

import pandas as pd
mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},
          {'a': 100, 'b': 200, 'c': 300, 'd': 400},
          {'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000 }]
df = pd.DataFrame(mydict)

pandas中df.iloc函数应用_第1张图片

1、按行索引

(1)整数作为索引:df.iloc[n],默认查找第n行

df.iloc[0]

(2)列表作为索引:查找列表中数字对应行号的数据,如,当输入[0,2]时,对应查找行号为0和2的数据,而不是0-2行

df.iloc[[0,2]]

(3)切片作为索引:实现多行数据查找

df.iloc[:2]#选择前两行数据

pandas中df.iloc函数应用_第2张图片

(4)布尔类型数据作为索引:需保持布尔类型数据与原数据数目一致,True代表选择,False代表不选择

df.iloc[[True, False, True]]#选择了第一行和第三行数据

pandas中df.iloc函数应用_第3张图片

(5)表达式作为索引:

df.iloc[lambda x: x.index % 2 == 0]#选择偶数行

2、同时规定行和列进行索引,与只按行索引类似,也有五种方式,在行和列之间添加“,”分别规定行列索引范围。

注意:规定的数字都是行列号,行列号均从0开始,行列号为行列数-1,即第1行第1列索引应为df.iloc[0,0]

df.iloc[0, 1]#选择行号=0,列号=1的数据
df.iloc[[0, 2], [1, 3]]#选择行号为0和2,列号为1和3的数据
df.iloc[1:3, 0:3]#选择行号为1-2,列号为0-2的数据,注意切片范围为左闭右开
df.iloc[:, [True, False, True, False]]#行号全选,选择第1列和第3列数据
df.iloc[:, lambda df: [0, 2]]#选择dataframe的第1列与第3列

 

你可能感兴趣的:(python)