pandas中iloc与loc的区别
时间: 2024-12-20 09:14:29 浏览: 3
在pandas库中,`loc` 和 `iloc` 是两个用于访问和操作DataFrame的重要功能,它们的主要区别在于选择元素的方式:
1. **loc**(location-based indexing)[^1]:
- 它基于标签(label-based),即通过列名或行索引来定位元素。
- 使用方式:`df.loc[row_indexer, column_indexer]`。如果仅有一个参数,可以指定行,如`df.loc['row_name']`;如果只有一个索引器,可以指定列,如`df.loc[:, 'column_name']`。
2. **iloc**(integer-based indexing):
- 它基于位置(position-based),即直接使用整数索引来选取元素,从0开始计数。
- 使用方式:`df.iloc[row_indexer, column_indexer]`。同样,可以单独传入行或列的索引,如`df.iloc[0]` 或 `df.iloc[:, 1]`。
举例来说,假设我们有如下DataFrame:
```python
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
```
- 使用`loc`选取特定行和列:
```python
print(df.loc[1, 'B']) # 输出:5,因为索引1对应第二行,'B'列的值
```
- 使用`iloc`选取第2行第2列:
```python
print(df.iloc[1, 1]) # 输出:5,因为位置(1, 1)对应第二行第二列
```
阅读全文