在Pandas中使用iloc[]和iat[]从数据框架中选择任何行

  • Post category:Python

在Pandas中,使用iloc[]iat[]可以从数据框架中选择任何行。iloc[]用于基于行和列的位置从数据框架中选择元素,而iat[]用于将行和列的位置更加快速地选择为单个元素。

iloc[]

iloc[]使用基于行和列位置来选择数据,语法结构如下:

df.iloc[<row selection>, <column selection>]

其中<row selection><column selection>指的是选定的行和列。可以使用整数从0开始的位置索引来选择行和列。例如,要选择第2行和第3列中的元素:

df.iloc[1, 2]

iloc[]还可以使用切片语法,选取从开始到结束的连续行和列。例如,要选择前3行和前2列中的所有元素:

df.iloc[0:3, 0:2]

同时,也可以使用列表语法,选取一组不连续的行和列。例如,要选择第1行、第3行和第5行中的所有元素,以及第2和第4列中的所有元素:

df.iloc[[0, 2, 4], [1, 3]]

iat[]

iat[]用于选取单个元素,它的速度要比iloc[]更快。语法结构如下:

df.iat[<row position>, <column position>]

其中<row position><column position>是选定的行和列的位置。

例如,要选择位于第2行和第3列的元素:

df.iat[1, 2]

请注意,iat[]只能选择单个元素,不能选择行或列。

示例代码:

import pandas as pd

data = {'name': ['Jack', 'Tom', 'Mark', 'Amy', 'Ming'],
        'age': [26, 24, 23, 25, 27],
        'gender': ['M', 'M', 'M', 'F', 'M'],
        'salary': [6000, 5000, 4500, 5500, 7000]}
df = pd.DataFrame(data)

print(df.iloc[1, 2])  # 选择第2行和第3列元素
print(df.iloc[0:3, 0:2])  # 选择前3行和前2列元素
print(df.iloc[[0, 2, 4], [1, 3]])  # 选择第1、3、5行和第2、4列元素
print(df.iat[1, 2])  # 选择第2行和第3列元素

输出为:

M
    name  age
0   Jack   26
1    Tom   24
2   Mark   23
   age  salary
0   26    6000
2   23    4500
4   27    7000
M