【基础】Python数据转换与透视表操作
发布时间: 2024-06-24 18:25:16 阅读量: 61 订阅数: 117
![【基础】Python数据转换与透视表操作](https://img-blog.csdnimg.cn/20200520101028204.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3c2NjY2Njc=,size_16,color_FFFFFF,t_70)
# 2.1 数据类型转换
### 2.1.1 整数、浮点数、字符串之间的转换
Python中整数、浮点数、字符串之间的转换非常方便,可以通过内置函数实现。
```python
# 整数转浮点数
num_int = 10
num_float = float(num_int) # num_float = 10.0
# 浮点数转整数
num_float = 10.5
num_int = int(num_float) # num_int = 10
# 字符串转整数
num_str = "123"
num_int = int(num_str) # num_int = 123
# 字符串转浮点数
num_str = "123.45"
num_float = float(num_str) # num_float = 123.45
```
# 2. Python数据转换实践
### 2.1 数据类型转换
#### 2.1.1 整数、浮点数、字符串之间的转换
**整数、浮点数、字符串之间的转换**
Python中,整数、浮点数和字符串之间可以相互转换。
```python
# 整数转浮点数
num_int = 10
num_float = float(num_int)
print(num_float) # 输出:10.0
# 浮点数转整数
num_float = 10.5
num_int = int(num_float)
print(num_int) # 输出:10
# 字符串转整数
num_str = "10"
num_int = int(num_str)
print(num_int) # 输出:10
# 字符串转浮点数
num_str = "10.5"
num_float = float(num_str)
print(num_float) # 输出:10.5
```
**参数说明:**
* `int()`:将数字或字符串转换为整数。
* `float()`:将数字或字符串转换为浮点数。
**逻辑分析:**
* `int()`和`float()`函数接受一个数字或字符串参数,并返回一个整数或浮点数。
* 如果参数是字符串,则函数会尝试将其转换为数字。如果转换失败,则会引发`ValueError`异常。
#### 2.1.2 日期、时间、布尔值之间的转换
**日期、时间、布尔值之间的转换**
Python中,日期、时间和布尔值也可以相互转换。
```python
# 日期转字符串
import datetime
date_obj = datetime.date(2023, 1, 1)
date_str = date_obj.strftime("%Y-%m-%d")
print(date_str) # 输出:2023-01-01
# 字符串转日期
date_str = "2023-01-01"
date_obj = datetime.datetime.strptime(date_str, "%Y-%m-%d")
print(date_obj) # 输出:2023-01-01 00:00:00
# 布尔值转整数
bool_value = True
int_value = int(bool_value)
print(int_value) # 输出:1
# 整数转布尔值
int_value = 1
bool_value = bool(int_value)
print(bool_value) # 输出:True
```
**参数说明:**
* `datetime.date()`:创建一个日期对象。
* `datetime.datetime.strptime()`:将字符串转换为日期时间对象。
* `int()`:将布尔值转换为整数(True为1,False为0)。
* `bool()`:将整数转换为布尔值(0为False,非0为True)。
**逻辑分析:**
* `datetime.date()`和`datetime.datetime.strptime()`函数用于在日期对象和字符串之间进行转换。
* `int()`和`bool()`函数用于在布尔值和整数之间进行转换。
### 2.2 数据结构转换
#### 2.2.1 列表、元组、字典之间的转换
**列表、元组、字典之间的转换**
Python中,列表、元组和字典之间可以相互转换。
```python
# 列表转元组
my_list = [1, 2, 3]
my_tuple = tuple(my_list)
print(my_tuple) # 输出:(1, 2, 3)
# 元组转列表
my_tuple = (1, 2, 3)
my_list = list(my_tuple)
print(my_list) # 输出:[1, 2, 3]
# 字典转列表
my_dict = {"name": "John", "age": 30}
my_list = list(my_dict.items())
print(my_list) # 输出:[('name', 'John'), ('age', 30)]
# 列表转字典
my_list = [('name', 'John'), ('age', 30)]
my_dict = dict(my_list)
print(my_dict) # 输出:{'name': 'John', 'age': 30}
```
**参数说明:**
* `tuple()`:将列表转换为元组。
* `list()`:将元组转换为列表。
* `dict.items()`:返回字典的键值对列表。
* `dict()`:将键值对列表转换为字典。
**逻辑分析:**
* `tuple()`和`list()`函数用于在列表和元组之间进行转换。
* `dict.items()`和`dict()`函数用于在字典和键值对列表之间进行转换。
#### 2.2.2 DataFrame、Series之间的转换
**DataFrame、Series之间的转换**
Pandas库中,DataFrame和Series之间可以相互转换。
```python
import pandas as pd
# DataFrame转Series
df = pd.DataFrame({"name": ["John", "Mary", "Bob"], "age": [30, 25, 40]})
series = df["name"]
print(series) # 输出:0 John
# 1 Mary
#
```
0
0