pandas.DataFrame.iloc#
- property DataFrame.iloc[源]#
纯粹基于整数位置的索引,用于按位置选择。
版本 3.0 中已更改: 返回元组的可调用对象已被弃用作为输入。
.iloc[]主要基于整数位置(从轴的0到length-1),但也可用于布尔数组。允许的输入包括:
一个整数,例如
5。一个整数列表或数组,例如
[4, 3, 0]。一个带有整数的切片对象,例如
1:7。A boolean array.
一个
callable函数,带有一个参数(调用它的 Series 或 DataFrame),并返回有效的索引输出(上述之一)。这在方法链中很有用,当您没有对调用对象的引用时,但想根据某些值进行选择。行和列索引的元组。元组元素由上述输入之一组成,例如
(0, 1)。
.iloc将引发IndexError,如果请求的索引超出边界,但 *切片* 索引允许超出边界的索引(这符合 python/numpy *切片* 的语义)。更多信息请参阅 按位置选择。
另请参阅
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.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] np.int64(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