【进阶篇】数据处理中的数据转换与规范化技术
发布时间: 2024-06-24 20:48:56 阅读量: 73 订阅数: 117
![【进阶篇】数据处理中的数据转换与规范化技术](https://img-blog.csdnimg.cn/img_convert/007dbf114cd10afca3ca66b45196c658.png)
# 1. 数据转换基础**
数据转换是数据处理中一项基本任务,涉及将数据从一种格式或结构转换为另一种格式或结构。数据转换的目的是使数据更适合特定用途,例如数据分析、机器学习或数据集成。
数据转换可以包括各种操作,例如:
* 数据类型转换:将数据从一种数据类型转换为另一种数据类型,例如将字符串转换为数字。
* 数据结构转换:将数据从一种数据结构转换为另一种数据结构,例如将列表转换为字典。
* 数据格式转换:将数据从一种文件格式转换为另一种文件格式,例如将 CSV 转换为 Excel。
# 2. 数据转换实践
### 2.1 数据类型转换
#### 2.1.1 整数、浮点数和字符串之间的转换
**整数到浮点数:**
```python
int_value = 10
float_value = float(int_value) # 转换为浮点数
print(float_value) # 输出:10.0
```
**浮点数到整数:**
```python
float_value = 10.5
int_value = int(float_value) # 转换为整数,截断小数部分
print(int_value) # 输出:10
```
**字符串到整数:**
```python
string_value = "123"
int_value = int(string_value) # 转换为整数
print(int_value) # 输出:123
```
**字符串到浮点数:**
```python
string_value = "123.45"
float_value = float(string_value) # 转换为浮点数
print(float_value) # 输出:123.45
```
#### 2.1.2 日期和时间格式的转换
**字符串到日期:**
```python
from datetime import datetime
string_date = "2023-03-08"
date_object = datetime.strptime(string_date, "%Y-%m-%d") # 转换为日期对象
print(date_object) # 输出:2023-03-08 00:00:00
```
**日期到字符串:**
```python
from datetime import datetime
date_object = datetime(2023, 3, 8)
string_date = date_object.strftime("%Y-%m-%d") # 转换为字符串
print(string_date) # 输出:2023-03-08
```
#### 2.1.3 编码格式的转换
**字符串编码格式转换:**
```python
string_utf8 = "你好,世界!"
string_gbk = string_utf8.encode("gbk") # 转换为GBK编码
string_utf8_again = string_gbk.decode("gbk") # 重新转换为UTF-8编码
print(string_utf8_again) # 输出:你好,世界!
```
**文件编码格式转换:**
```python
with open("file.txt", "r", encoding="utf-8") as f:
content = f.read() # 读取UTF-8编码的文件
with open("file.txt", "w", encoding="gbk") as f:
f.write(content) # 写入GBK编码的文件
```
### 2.2 数据结构转换
#### 2.2.1 列表、字典和元组之间的转换
**列表到字典:**
```python
list_of_tuples = [("key1", "value1"), ("key2", "value2")]
dict_from_list = dict(list_of_tuples) # 转换为字典
print(dict_from_list) # 输出:{'key1': 'value1', 'key2': 'value2'}
```
**字典到列表:**
```python
dict_of_items = {"key1": "value1", "key2": "value2"}
list_from_dict = list(dict_of_items.items()) # 转换为列表
print(list_from_dict) #
```
0
0