请举例讲解dataframe的.iloc
时间: 2025-01-25 16:14:54 浏览: 42
DataFrame的`iloc`是一个用于选择DataFrame中指定位置数据的方法。它基于行和列的整数索引来选取元素,不考虑数据的标签(index)。下面是一些`iloc`的基本用法:
1. **基本使用**:
- `df.iloc[row_indexer, column_indexer]`:选择第`row_indexer`行和第`column_indexer`列的数据。如果只有一个参数,会选择对应行或列的所有数据。
```python
import pandas as pd
df = pd.DataFrame({
'A': [0, 1, 2],
'B': [3, 4, 5],
'C': [6, 7, 8]
})
print(df.iloc[1]) # 输出第2行的全列数据:B: 4 C: 7
```
2. **布尔索引**:
- 如果传入的是布尔数组,那么会选取满足条件的位置:
```python
print(df.iloc[[True, False, True]]) # 输出 A: 0 B: 3 C: 6 的数据
```
3. **切片操作**:
- 可以通过连续的数字范围来选取部分行或列:
```python
print(df.iloc[0:2, :]) # 输出前两行所有列的数据
```
相关问题
请举例讲解dataframe的.loc
DataFrame的`.loc`属性用于基于一维整数位置或标签选择特定的行和列。它是一种非常灵活的选择器,可以接受多种类型的输入:
1. **位置选择**:
```python
df.loc[index] # 返回行索引为index的那一行
df.loc[start:end] # 返回从start到end(不含end)的所有行
```
2. **标签选择**(对于有明确索引的DataFrame):
```python
df.loc['row_label'] # 根据行标签选取一行
df.loc[['col_label1', 'col_label2']] # 选取具有指定列标签的多行
```
3. **组合索引**:
```python
df.loc[(slice(None), 'column_name')] # 按照列标签选取所有列
df.loc[(row_index_list, 'column_name')] # 选取特定行和列
```
4. **混合位置和标签**:
```python
df.loc[5, 'column1'] # 使用位置5选取列'column1'
```
需要注意的是,`.loc`不会自动处理缺失值,如果给出的索引超出了DataFrame范围,会直接引发`KeyError`。在处理大量数据时,建议先进行筛选或者使用其他方法如`.iloc`(基于整数位置)或者布尔索引来避免这类错误。
详细讲解一下iloc 方法
`iloc` 是 Pandas 库(Python 用于数据分析的重要库)中的一个功能,专门用于基于位置的行和列选择数据。Pandas DataFrame 对象通常会有两个索引,一个是行索引(index),另一个是列索引(columns)。`iloc` 方法允许你按照这两个维度来选取数据,它的语法通常是这样的:
```python
df.iloc[row_indexer, column_indexer]
```
其中:
- `row_indexer` 是一个整数切片或者布尔数组,用来指定行的位置。如果是整数切片,它会选取从0开始到该位置的所有行;如果是布尔数组,True 表示选中,False 表示忽略。
- `column_indexer` 同样也是一个整数切片或者布尔数组,指定列的选择。同理,如果提供的是整数切片,则按列号选取;如果是布尔数组,则按列是否被选中来确定。
举例说明:
- `df.iloc[0:5, :]` 会选择前五行的所有列;
- `df.iloc[:, 0:3]` 会选择所有行的前三列;
- `df.iloc[df['Age'] > 30, :]` 会选择年龄大于30的行的所有列。
`iloc` 方法不考虑数据的标签(index labels),只看位置。而另外一种基于标签的索引方法叫做 `loc`,那会根据你提供的标签名称来查找数据。
阅读全文
相关推荐








