maxframe.dataframe.DataFrame.iloc#
- property DataFrame.iloc#
基于纯整数位置的索引,用于按位置选择。
.iloc[]主要基于整数位置(从轴的0到length-1),但也可以与布尔数组一起使用。允许的输入包括:
一个整数,例如
5。一个整数列表或数组,例如
[4, 3, 0]。一个包含整数的切片对象,例如
1:7。一个布尔数组。
一个带有一个参数(调用的 Series 或 DataFrame)的
callable函数,并返回有效的索引输出(上述之一)。这在方法链中非常有用,当你没有对调用对象的引用时,但仍希望根据某些值进行选择。
如果请求的索引器超出范围,
.iloc将引发IndexError,但 slice 索引器允许越界索引(这符合 python/numpy slice 语义)。更多内容请参见 按位置选择。
参见
DataFrame.iat快速整数位置标量访问器。
DataFrame.loc基于纯标签位置的索引器,用于按标签选择。
Series.iloc基于纯整数位置的索引,用于按位置选择。
示例
>>> import maxframe.dataframe as md >>> 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 = md.DataFrame(mydict) >>> df.execute() a b c d 0 1 2 3 4 1 100 200 300 400 2 1000 2000 3000 4000
仅索引行
使用标量整数。
>>> type(df.iloc[0]).execute() <class 'pandas.core.series.Series'> >>> df.iloc[0].execute() a 1 b 2 c 3 d 4 Name: 0, dtype: int64
使用整数列表。
>>> df.iloc[[0]].execute() a b c d 0 1 2 3 4 >>> type(df.iloc[[0]]).execute() <class 'pandas.core.frame.DataFrame'>
>>> df.iloc[[0, 1]].execute() a b c d 0 1 2 3 4 1 100 200 300 400
使用 slice 对象。
>>> df.iloc[:3].execute() a b c d 0 1 2 3 4 1 100 200 300 400 2 1000 2000 3000 4000
使用与索引长度相同的布尔掩码。
>>> df.iloc[[True, False, True]].execute() 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].execute() a b c d 0 1 2 3 4 2 1000 2000 3000 4000
索引两个轴
你可以混合使用索引器类型来索引行和列。使用
:来选择整个轴。使用标量整数。
>>> df.iloc[0, 1].execute() 2
使用整数列表。
>>> df.iloc[[0, 2], [1, 3]].execute() b d 0 2 4 2 2000 4000
使用 slice 对象。
>>> df.iloc[1:3, 0:3].execute() a b c 1 100 200 300 2 1000 2000 3000
使用长度与列数匹配的布尔数组。
>>> df.iloc[:, [True, False, True, False]].execute() a c 0 1 3 1 100 300 2 1000 3000
使用一个可调用函数,该函数接受 Series 或 DataFrame。
>>> df.iloc[:, lambda df: [0, 2]].execute() a c 0 1 3 1 100 300 2 1000 3000