数据处理:合并、排序、分类、去重与删除操作
立即解锁
发布时间: 2025-09-03 00:34:15 阅读量: 8 订阅数: 20 AIGC 


Python探索性数据分析精粹
# 数据处理:合并、排序、分类、去重与删除操作
## 1. 数据合并
### 1.1 合并与拼接的区别
合并数据和拼接数据有所不同。拼接可以使用 pandas 的 `concat` 方法,它能拼接多个数据集,但要求数据集行数相同。而合并需要两个数据集有共同字段。例如在 SQL 或 join 命令中,经常会用到数据合并操作,关系型数据库中的数据就常需要进行合并。
### 1.2 合并操作的关键概念
- **连接键列**:两个数据集中具有匹配值的公共列,用于连接数据集,列名不一定要相同。
- **连接类型**:
- **左连接**:保留左数据框的所有行,右数据框中不匹配的值在结果中以空值或 `NaN` 表示。
- **右连接**:保留右数据框的所有行,左数据框中不匹配的值在结果中以空值或 `NaN` 表示。
- **内连接**:只保留左右数据框中的公共值,不返回空值或 `NaN`。
- **外连接/全外连接**:保留左右数据框的所有行,不匹配的值以 `NaN` 表示。
### 1.3 操作步骤
#### 1.3.1 准备数据
将 `marketing_campaign_merge1.csv` 和 `marketing_campaign_merge2.csv` 文件放在指定的数据子文件夹中。
#### 1.3.2 代码实现
```python
import pandas as pd
# 加载数据
marketing_sample1 = pd.read_csv("data/marketing_campaign_merge1.csv")
marketing_sample2 = pd.read_csv("data/marketing_campaign_merge2.csv")
# 查看数据
print(marketing_sample1.head())
print(marketing_sample1.shape)
print(marketing_sample2.shape)
# 合并数据
merged_data = pd.merge(marketing_sample1, marketing_sample2, on="ID")
# 查看合并结果
print(merged_data.head())
print(merged_data.shape)
```
### 1.4 更多说明
当两个数据集中的公共字段名称不同时,可以使用 `left_on` 和 `right_on` 参数来处理。
## 2. 数据排序
### 2.1 排序的作用
排序是将数据按特定顺序排列,有助于快速发现数据中的模式。在 pandas 中,可以使用 `sort_values` 方法对数据集进行排序。
### 2.2 操作步骤
#### 2.2.1 准备数据
使用营销活动数据(可从 Kaggle 或 GitHub 仓库获取)。
#### 2.2.2 代码实现
```python
import pandas as pd
# 加载数据并筛选相关列
marketing_data = pd.read_csv("data/marketing_campaign.csv")
marketing_data = marketing_data[['ID', 'Year_Birth', 'Education', 'Marital_Status', 'Income', 'Kidhome', 'Teenhome', 'Dt_Customer', 'Recency', 'NumStorePurchases', 'NumWebVisitsMonth']]
# 查看数据
print(marketing_data.head(2).T)
print(marketing_data.dtypes)
print(marketing_data.shape)
# 按商店购买次数降序排序
sorted_data = marketing_data.sort_values('NumStorePurchases', ascending=False)
# 查看排序结果
print(sorted_data[['ID', 'NumStorePurchases']])
```
### 2.3 更多说明
可以按多个列进行排序,只需将列名作为列表传入 `sort_values` 方法。排序不仅适用于数值列,也适用于字符列。
## 3. 数据分类
### 3.1 分类的意义
数据分类即分箱操作,将数值数据分组到更小的区间(箱)中,每个箱成为一个分类值。分箱有助于发现直接处理单个数值难以发现的信息,还能处理异常值或减少观测误差的影响。
### 3.2 操作步骤
#### 3.2.1 准备数据
使用完整的营销活动数据。
#### 3.2.2 代码实现
```python
import pandas as pd
# 加载数据并筛选相关列
marketing_data = pd.read_csv("data/marketing_campaign.csv")
marketing_data = marketing_data[['ID', 'Year_Birth', 'Education', 'Marital_Status', 'Income', 'Kidhome', 'Teenhome'
```
0
0
复制全文
相关推荐










