pandas.DataFrame.iloc#
- property DataFrame.iloc#
纯粹基于整数位置的索引,用于按位置选择。
.iloc[]
主要基于整数位置(从0
至length-1
轴),但也可以与布尔数组一起使用。允许的输入包括:
一个整数,例如
5
。整数的列表或数组,例如
[4, 3, 0]
。带有整型的切片对象,例如
1:7
。布尔数组。
A
callable
函数只有一个参数(调用Series或DataFrame),并返回用于索引的有效输出(上面的一个)。当您没有对调用对象的引用,但希望基于某个值进行选择时,这在方法链中很有用。
.iloc
将筹集IndexError
如果请求的索引器超出范围,则 切片 允许越界索引的索引器(这符合Python/NumPy 切片 语义学)。见更多 Selection by Position 。
参见
DataFrame.iat
快速整数位置标量访问器。
DataFrame.loc
纯粹基于标签位置的索引器,用于按标签选择。
Series.iloc
纯粹基于整数位置的索引,用于按位置选择。
示例
>>> 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
仅对行进行索引
带有标量整数的。
>>> type(df.iloc[0]) <class 'pandas.core.series.Series'> >>> 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]]) <class 'pandas.core.frame.DataFrame'>
>>> df.iloc[[0, 1]] a b c d 0 1 2 3 4 1 100 200 300 400
使用一个 slice 对象。
>>> 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
具有可调用的、在方法链中有用的。这个 x 传递给
lambda
是对DataFrame进行切片。这将选择索引标签为EVEN的行。>>> df.iloc[lambda x: x.index % 2 == 0] a b c d 0 1 2 3 4 2 1000 2000 3000 4000
分度两个轴
您可以混合索引和列的索引器类型。使用
:
要选择整个轴,请执行以下操作。带有标量整数的。
>>> df.iloc[0, 1] 2
包含整数列表。
>>> df.iloc[[0, 2], [1, 3]] b d 0 2 4 2 2000 4000
使用 slice 对象。
>>> 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