在 Pandas 中,`DataFrame` 对象的列提取可以通过位置索引 `iloc` 或标签索引 `loc` 来完成。针对你的问题,目标是提取 `DataFrame` 的最后一列。让我们分析每个选项:
- **A: `df.iloc[:,-1]`**
- `iloc` 是基于位置的索引。`:` 表示选择所有行,`-1` 表示选择最后一列。因此,这个选项可以正确地提取最后一列。
- **正确选项**。
- **B: `df.iloc[-1,:]`**
- `iloc` 基于位置索引,这里 `-1` 表示最后一行,`: ` 表示所有列。因此,这个选项会返回最后一行,而不是最后一列。
- **C: `df.loc[-1,:]`**
- `loc` 是基于标签的索引。如果 `DataFrame` 的索引不是数值索引,`-1` 可能不是有效的标签,即使是数值索引,`-1` 也通常不是合法的行标签。因此,这个选项用于获取行数据,而不是列。
- **D: `df.loc[:,-1]`**
- `loc` 基于标签索引,`: ` 通常表示所有行,但 `-1` 在列位置上使用无效,因为 `loc` 需要列的明确标签,而非位置索引。
因此,正确答案是 **A: `df.iloc[:,-1]`**,它能够通过位置索引正确提取 `DataFrame` 的最后一列。
以下是一个简单的示例:
```python
import pandas as pd
# 创建一个示例 DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 提取最后一列
last_column = df.iloc[:, -1]
print(last_column)
```
该代码将输出:
```
0 7
1 8
2 9
Name: C, dtype: int64
```
这确认了 `df.iloc[:,-1]` 的功能,即提取最后一列。