pandas.DataFrame.iloc#
- property DataFrame.iloc[源代码]#
纯基于整数位置的索引,用于按位置选择。
在 3.0 版本发生变更: 从可调用对象返回一个元组已被弃用。
.iloc[]
主要是基于整数位置的(从0
到轴的长度-1
),但也可以与布尔数组一起使用。允许的输入是:
一个整数,例如
5
。一个整数列表或数组,例如
[4, 3, 0]
。一个包含整数的切片对象,例如
1:7
。一个布尔数组。
一个带有单个参数(调用的 Series 或 DataFrame)并返回有效索引输出(上述之一)的
callable
函数。这在方法链中非常有用,当你没有引用调用对象,但希望基于某个值进行选择时。一个行和列索引的元组。元组元素由上述输入之一组成,例如
(0, 1)
。
.iloc
如果请求的索引器超出范围,将引发IndexError
,除了允许超出范围索引的 slice 索引器(这符合 python/numpy slice 语义)。更多信息请参见 按位置选择。
参见
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.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
使用一个可调用对象,这在方法链中很有用。传递给
lambda
的 x 是被切片的 DataFrame。这选择了索引标签为偶数的行。>>> 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