DataFrame.iloc
纯粹基于整数位置的索引,用于按位置选择。
.iloc[] 主要是基于整数位置(从轴的0到长度-1),但也可以与布尔数组一起使用。
允许的输入:整数, 例如, 5
整数的列表或数组, 例如, [4, 3, 0]
带有整数的切片对象, 例如, 1:7
布尔数组
具有一个参数(调用Series,DataFrame或Panel)的可调用函数,它返回索引的有效输出(上述之一)。 当您没有对调用对象的引用但希望将选择基于某个值时,这在方法链中很有用。
.iloc 如果请求的索引器超出范围,将引发IndexError,除了允许越界索引的切片索引器(这符合python / numpy切片语义)。
请参阅ref:按位置选择
例子,>>> 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)
>>> df
a b c d
0 1 2 3 4
1 100 200 300 400
2 1000 2000 3000 4000
1)仅对行进行索引
带标量整数>>> type(df.iloc[0])
>>> df.iloc[0]
a 1
b 2
c 3
d 4
Name: 0, dtype: int64
带有整数列表>>> df.iloc[[0]]
a b c d
0 1 2 3 4
>>> type(df.iloc[[0]])
>>> df.iloc[[0, 1]]
a b c d
0 1 2 3 4
1 100 200 300 400
使用切片对象>>> df.iloc[:3]
a b c d
0 1 2 3 4
1 100 200 300 400
2 1000 2000 3000 4000
布尔掩码的长度与索引的长度相同
>>> df.iloc[[True, False, True]]
a b c d
0 1 2 3 4
2 1000 2000 3000 4000
选择索引为偶数的行>>> df.iloc[lambda x: x.index % 2 == 0]
a b c d
0 1 2 3 4
2 1000 2000 3000 4000
2)索引两个轴
您可以混合索引和列的索引器类型。 使用:选择整个轴
用标量整数>>> df.iloc[0, 1]
2
带有整数列表>>> df.iloc[[0, 2], [1, 3]]
b d
0 2 4
2 2000 4000
使用切片对象>>> df.iloc[1:3, 0:3]
a b c
1 100 200 300
2 1000 2000 3000
使用长度与列匹配的布尔数组>>> df.iloc[:, [True, False, True, False]]
a c
0 1 3
1 100 300
2 1000 3000
Series的可调用函数或DataFrame>>> df.iloc[:, lambda df: [0, 2]]
a c
0 1 3
1 100 300
2 1000 3000