pandas.DataFrame.iloc#
- property DataFrame.iloc[源代码]#
纯粹基于整数位置的索引,用于按位置选择。
自 2.2.0 版本弃用: 从可调用对象返回元组已被弃用。
.iloc[]主要基于整数位置(从轴的0到length-1),但也可以与布尔数组一起使用。允许的输入包括:
一个整数,例如
5。整数列表或数组,例如
[4, 3, 0]。带有整数的切片对象,例如
1:7。布尔数组。
一个带有一个参数(调用 Series 或 DataFrame)的可调用函数,并且该函数返回有效的索引输出(上述之一)。这在使用方法链时很有用,当您没有调用对象的引用,但希望基于某个值来形成您的选择时。
行和列索引的元组。元组元素包含上述输入之一,例如
(0, 1)。
如果请求的索引器超出边界,
.iloc将引发IndexError,但切片索引器允许超出边界的索引(这符合 Python/NumPy 的切片语义)。有关更多信息,请参阅 Selection by Position 。
参见
DataFrame.iat快速的整数位置标量访问器。
DataFrame.loc纯粹基于标签位置的索引器,用于按标签选择。
Series.iloc纯粹基于整数位置的索引,用于按位置选择。
Examples
>>> 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
使用可调用对象,这在方法链中很有用。传递给
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