
Pandas 的 iloc 访问器用于基于整数位置的索引,它可以用于选择 DataFrame 或 Series 中的数据子集。与 loc 不同,iloc 使用行和列的整数位置进行索引,而不是标签。
以下是 iloc 的一些关键特点:
基于整数索引:
使用行和列的整数位置来选择数据。
选择单列:
可以仅通过列的整数位置选择单列的数据。
选择多列:
可以选择多列,返回一个 DataFrame。
选择单行:
可以通过指定行的整数位置选择单行。
选择多行:
可以选择多行,返回一个 DataFrame。
使用切片:
可以使用切片来选择数据范围。
布尔索引:
通常不与布尔数组一起使用,因为它基于整数位置。
就地修改:
可以就地修改数据,不返回新的 DataFrame。
不保持索引:
默认情况下,使用 iloc 选择数据不会保持原始索引。
| 简介 | 功能 | 公式 | 释义 | 例子 |
|---|---|---|---|---|
| 单行 | iloc获得第一行 | df.iloc[控制行,控制列] |
df.iloc["行Aindex",:] |
data = df.iloc[0,:] |
| 单行 | iloc获得最后一行 | df.iloc[控制行,控制列] |
df.iloc["行Aindex",:] |
data = df.iloc[-1,:] |
| 单行 | iloc获得指定行 | df.iloc[控制行] |
df.iloc["行Aindex"] |
data = df.iloc[2] |
| 单列 | iloc获得指定列 | df.iloc[:,控制列] |
df.iloc[:,"列index"] |
data = df.iloc[:,2] |
| 连续行连续列 | iloc获得连续行列 | df.iloc[控制行,控制列] |
df.iloc[n:n,n:n] |
data = df.iloc[0:2,0:2] |
| 不连续行不连续列 | iloc获得不连续行列 | df.iloc[[控制行],[控制列]] |
df.iloc[[n,n],[n,n]] |
data = df.iloc[[0,2],[0,2]] |
import numpy as npimport pandas as pddf = pd.DataFrame(data=[{"A":"1", "B":"3", "C":"4"}, {"A":"3", "B":"2", "C":"5"}, {"A":"2", "B":"1", "C":"6"}])df = pd.DataFrame(data=[{"A":1, "B":3, "C":4}, {"A":3, "B":2, "C":5}, {"A":2, "B":1, "C":6}])
| A | B | C | |
|---|---|---|---|
| 0 | 1 | 3 | 4 |
| 1 | 3 | 2 | 5 |
| 2 | 2 | 1 | 6 |
i是index的意思,0开始
iloc选择一行时返回Series,选择多行返回DataFrame
df.iloc[0,:] # 返回第一行
import numpy as npimport pandas as pddf = pd.DataFrame(data=[{"A":"1", "B":"3", "C":"4"},{"A":"3", "B":"2", "C":"5"},{"A":"2", "B":"1", "C":"6"}])print(df)data = df.iloc[0,:]print(data)
| A | 1 |
| B | 3 |
| C | 4 |
Name: 0, dtype: object
df.iloc[-1:] # 返回最后一行
import numpy as npimport pandas as pddf = pd.DataFrame(data=[{"A":"1", "B":"3", "C":"4"},{"A":"3", "B":"2", "C":"5"},{"A":"2", "B":"1", "C":"6"}])print(df)data = df.iloc[-1:]print(data)
| A | B | C | |
|---|---|---|---|
| 2 | 2 | 1 | 6 |

df.iloc[2] # 第三行
import numpy as npimport pandas as pddf = pd.DataFrame(data=[{"A":"1", "B":"3", "C":"4"},{"A":"3", "B":"2", "C":"5"},{"A":"2", "B":"1", "C":"6"}])print(df)data = df.iloc[2]print(data)
| A | 2 |
| B | 1 |
| C | 6 |
Name: 2, dtype: object

df.iloc[:,2] # 第三列
import numpy as npimport pandas as pddf = pd.DataFrame(data=[{"A":"1", "B":"3", "C":"4"},{"A":"3", "B":"2", "C":"5"},{"A":"2", "B":"1", "C":"6"}])print(df)data = df.iloc[:,2]print(data)
| 0 | 4 |
| 1 | 5 |
| 2 | 6 |
Name: C, dtype: object
df.iloc[0:2,0:2] # 第一行到第二行,第一列到第二列
import numpy as npimport pandas as pddf = pd.DataFrame(data=[{"A":"1", "B":"3", "C":"4"},{"A":"3", "B":"2", "C":"5"},{"A":"2", "B":"1", "C":"6"}])print(df)data = df.iloc[0:2,0:2]print(data)print(type(data))
| A | B | |
|---|---|---|
| 0 | 1 | 3 |
| 1 | 3 | 2 |

df.iloc[[0,2],[0,2]] # 第一行到第三行,第一列到第三列
import numpy as npimport pandas as pddf = pd.DataFrame(data=[{"A":"1", "B":"3", "C":"4"},{"A":"3", "B":"2", "C":"5"},{"A":"2", "B":"1", "C":"6"}])print(df)data = df.iloc[[0,2],[0,2]]print(data)print(type(data))
| A | C | |
|---|---|---|
| 0 | 1 | 4 |
| 2 | 2 | 6 |
