在Pandas库中,`iloc`(基于整数位置的索引)是一个强大的工具,它允许根据整数位置选择数据,即基于行的位置和列的位置来选择数据。这与`loc`(基于标签的索引)不同,后者是基于行标签和列标签来选择数据的。
目录
Pandas iloc详解
`iloc`方法主要用于基于整数位置的索引。在二维数据结构(如DataFrame)中,`iloc`的第一个参数指定行位置,第二个参数指定列位置,可以传递一个整数、一个整数列表、一个整数切片或者它们的组合来选择数据。
- 单个整数:选择单个行或列。
- 整数列表:选择多个行或列。
- 整数切片:选择连续的行或列范围。
代码示例
示例1:选择单个元素
import pandas as pd
# 创建一个简单的DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 使用iloc选择第一行第二列的元素(注意:索引从0开始)
element = df.iloc[0, 1]
print(element) # 输出:4
示例2:选择多行多列
# 选择第一行和第二行的所有列
rows = df.iloc[[0, 1]]
print(rows)
# 选择所有行的前两列
columns = df.iloc[:, :2]
print(columns)
# 选择第一行和第二行的前两列
rows_columns = df.iloc[[0, 1], :2]
print(rows_columns)
示例3:使用切片选择连续的行或列
# 选择前两行
first_two_rows = df.iloc[0:2] # 注意:切片是左闭右开的
print(first_two_rows)
# 选择前两列
first_two_columns = df.iloc[:, 0:2]
print(first_two_columns)
# 选择前两行和前两列(注意这里的切片不会相互干扰)
top_left_corner = df.iloc[0:2, 0:2]
print(top_left_corner)
示例4:选择间隔的行或列
# 选择每隔一行的数据(步长为2)
every_other_row = df.iloc[::2]
print(every_other_row)
# 选择第一列和第三列(Python中的索引是从0开始的,所以第三列的索引是2)
selected_columns = df.iloc[:, [0, 2]]
print(selected_columns)
注意事项
- `iloc`是基于整数位置的索引,所以索引是从0开始的;
- 可以使用冒号`:`来创建一个切片,它是左闭右开的;
- 在使用切片或整数列表时,可以省略开始或结束索引,分别默认为第一行或最后一行,第一列或最后一列;
- 当传递多个整数列表时,第一个列表指定行位置,第二个列表指定列位置;
- 如果在切片中省略了步长,步长默认为1。