Pandas数据处理实用攻略
立即解锁
发布时间: 2025-09-05 01:51:45 阅读量: 13 订阅数: 39 AIGC 


Python机器学习实战精粹
# Pandas数据处理实用攻略
在数据处理的领域中,Pandas是一个强大且常用的工具。它提供了丰富的功能,能够帮助我们高效地处理和分析数据。下面将详细介绍Pandas中一些常见的数据操作方法。
## 1. 行选择与索引设置
### 1.1 行切片选择
在Pandas的DataFrame中,我们可以使用冒号 `:` 来定义想要的行切片。例如,选择第二、三、四行:
```python
import pandas as pd
# 假设dataframe已经定义
dataframe.iloc[1:4]
```
输出结果如下:
| Name | PClass | Age | Sex | Survived | SexCode |
| --- | --- | --- | --- | --- | --- |
| 1 | Allison, Miss Helen Loraine | 1st | 2.0 | female | 0 | 1 |
| 2 | Allison, Mr Hudson Joshua Creighton | 1st | 30.0 | male | 0 | 0 |
| 3 | Allison, Mrs Hudson JC (Bessie Waldo Daniels) | 1st | 25.0 | female | 0 | 1 |
我们还可以使用它来获取到某一点的所有行,比如获取到第四行(包括第四行)的所有行:
```python
dataframe.iloc[:4]
```
### 1.2 自定义索引选择
DataFrame的索引不一定是数字,我们可以将其设置为每行唯一的值。例如,将索引设置为乘客姓名,然后使用姓名来选择行:
```python
dataframe = dataframe.set_index(dataframe['Name'])
dataframe.loc['Allen, Miss Elisabeth Walton']
```
输出结果:
```plaintext
Name Allen, Miss Elisabeth Walton
PClass 1st
Age 29
Sex female
Survived 1
SexCode 1
Name: Allen, Miss Elisabeth Walton, dtype: object
```
### 1.3 loc与iloc方法
Pandas提供了两种选择行的方法:
- `loc`:当DataFrame的索引是标签(如字符串)时很有用。
- `iloc`:通过查找DataFrame中的位置来工作。例如,`iloc[0]` 将返回第一行,无论索引是整数还是标签。
在数据清理过程中,熟悉这两种方法会很有帮助。
## 2. 基于条件选择行
### 2.1 单条件选择
我们可以根据某些条件轻松选择DataFrame的行。例如,选择泰坦尼克号上的所有女性:
```python
import pandas as pd
url = 'https://raw.githubusercontent.com/chrisalbon/sim_data/master/titanic.csv'
dataframe = pd.read_csv(url)
dataframe[dataframe['Sex'] == 'female'].head(2)
```
输出结果:
| Name | PClass | Age | Sex | Survived | SexCode |
| --- | --- | --- | --- | --- | --- |
| 0 | Allen, Miss Elisabeth Walton | 1st | 29.0 | female | 1 | 1 |
| 1 | Allison, Miss Helen Loraine | 1st | 2.0 | female | 0 | 1 |
### 2.2 多条件选择
多个条件的选择也很容易。例如,选择年龄在65岁及以上的女性乘客:
```python
dataframe[(dataframe['Sex'] == 'female') & (dataframe['Age'] >= 65)]
```
输出结果:
| Name | PClass | Age | Sex | Survived | SexCode |
| --- | --- | --- | --- | --- | --- |
| 73 | Crosby, Mrs Edward Gifford (Catherine Elizabet... | 1st | 69.0 | female | 1 | 1 |
在数据处理中,根据条件选择和过滤数据是非常常见的任务,我们通常只对数据源中的部分数据感兴趣。
## 3. 数据排序
### 3.1 按列排序
使用Pandas的 `sort_values` 函数可以对DataFrame按列的值进行排序。例如,按年龄对数据进行排序并显示前两行:
```python
dataframe.sort_values(by=["Age"]).head(2)
```
输出结果:
| Name | PClass | Age | Sex | Survived | SexCode |
| --- | --- | --- | --- | --- | --- |
| 763 | Dean, Miss Elizabeth Gladys (Millvena) | 3rd | 0.17 | female | 1 | 1 |
| 751 | Danbom, Master Gilbert Sigvard Emanuel | 3rd | 0.33 | male | 0 | 0 |
默认情况下,`ascending` 参数设置为 `True`,即按升序排序。如果我们想要最年长的乘客而不是最年轻的,可以将其设置为 `False`。
## 4. 数据替换
### 4.1 单值替换
Pandas的 `replace` 方法可以轻松地查找和替换值。例如,将 `Sex` 列中的所有 `female` 替换为 `Woman`:
```python
dataframe['Sex'].replace("female", "Woman").head(2)
```
输出结果:
```plaintext
0 Woman
1 Woman
Name: Sex, dtype: object
```
### 4.2 多值替换
我们也可以同时替换多个值。例如,将 `female` 和 `male` 分别替换为 `Woman` 和 `Man`:
```python
dataframe['Sex'].replace(["female", "male"], ["Woman", "Man"]).head(5)
```
### 4.3 全量替换
还可以通过指定整个DataFrame而不是单个列来在整个DataFrame对象中查找和替换:
```python
dataframe.replace(1, "One").head(2)
```
### 4.4 正则表达式替换
`replace` 方法还接受正则表达式。例如,将 `1st` 替换为 `First`:
```python
dataframe.replace(r"1st", "First", regex=True).head(2)
```
`replace` 方法简单且强大,能够接受正则表达式,是替换值的实用工具。
## 5. 列重命名
### 5.1 单个列重命名
使用 `rename` 方法可以重命名DataFrame中的列。例如,将 `PClass` 列重命名为 `Passe
0
0
复制全文
相关推荐










