首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】《Python网络爬虫从入门到精通》031-DataFrame数据的转换

【愚公系列】《Python网络爬虫从入门到精通》031-DataFrame数据的转换

原创
作者头像
愚公搬代码
发布2025-09-16 00:59:10
发布2025-09-16 00:59:10
700
代码可运行
举报
运行总次数:0
代码可运行
在这里插入图片描述
在这里插入图片描述

💎【行业认证·权威头衔】

✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家

✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主

✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】

🎖 连续三年蝉联"华为云十佳博主"(2022-2024)

🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)

🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】

覆盖全栈技术矩阵:

◾ 编程语言:.NET/Java/Python/Go/Node...

◾ 移动生态:HarmonyOS/iOS/Android/小程序

◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙

◾ 游戏开发:Unity3D引擎深度解析

🚀前言

在数据分析的过程中,数据的转换是一个不可或缺的环节。无论是在进行数据整合、特征工程,还是在准备数据以适应不同的分析需求,掌握DataFrame数据转换的技巧都显得尤为重要。Pandas库中的DataFrame对象为数据转换提供了丰富的功能,使得我们能够轻松地对数据进行变换和处理,以适应不同的分析场景。

本文将重点介绍DataFrame数据转换的常用方法,包括数据的重塑、透视、合并与连接、类型转换等。通过实际案例,我们将深入探讨如何灵活运用这些功能来优化数据结构,提升分析效率。

🚀一、DataFrame数据的转换

数据转换是数据预处理的重要环节,本节介绍如何将DataFrame转换为字典、列表和元组。

🔎1.DataFrame转换为字典

使用 to_dict() 方法,通过 orient 参数控制转换格式。

在这里插入图片描述
在这里插入图片描述

🦋1.1 默认转换(orient='dict')

默认以列名为键,每列数据转换为嵌套字典(索引为内层键):

代码语言:python
代码运行次数:0
运行
复制
import pandas as pd

data = [[110, 105, 99], [105, 88, 115]]
name = ['明日', '七月流火']
columns = ['语文', '数学', '英语']
df = pd.DataFrame(data, index=name, columns=columns)

print(df.to_dict())

输出:

代码语言:python
代码运行次数:0
运行
复制
{
    '语文': {'明日': 110, '七月流火': 105},
    '数学': {'明日': 105, '七月流火': 88},
    '英语': {'明日': 99, '七月流火': 115}
}

🦋1.2 orient='list'

列名为键,列数据转换为列表:

代码语言:python
代码运行次数:0
运行
复制
print(df.to_dict(orient='list'))

输出:

代码语言:python
代码运行次数:0
运行
复制
{
    '语文': [110, 105],
    '数学': [105, 88],
    '英语': [99, 115]
}

🦋1.3 orient='index'

行索引为键,每行数据转换为字典(列名为内层键):

代码语言:python
代码运行次数:0
运行
复制
print(df.to_dict(orient='index'))

输出:

代码语言:python
代码运行次数:0
运行
复制
{
    '明日': {'语文': 110, '数学': 105, '英语': 99},
    '七月流火': {'语文': 105, '数学': 88, '英语': 115}
}

🦋1.4 其他常用参数

  • orient='records':转换为字典列表,每行一个字典。print(df.to_dict(orient='records')) # 输出:[{'语文':110, '数学':105, '英语':99}, {'语文':105, '数学':88, '英语':115}]
  • orient='split':分离索引、列名和数据。print(df.to_dict(orient='split')) # 输出:{'index': ['明日', '七月流火'], 'columns': ['语文', '数学', '英语'], 'data': [[110, 105, 99], [105, 88, 115]]}

🔎2.DataFrame转换为列表

🦋2.1 单行数据转列表

使用 ilocloc 获取行数据后调用 tolist()

代码语言:python
代码运行次数:0
运行
复制
# 示例数据:二手房信息
data = [['80万', 110, '3室2厅'], ['99.8万', 122, '2室2厅']]
name = ['吉盛小区', '万科城']
columns = ['总价', '面积', '户型']
df = pd.DataFrame(data, index=name, columns=columns)

# 获取第一行数据并转列表
print(df.iloc[0].tolist())  # 输出:['80万', 110, '3室2厅']

# 通过索引获取行数据并转列表
print(df.loc['万科城'].tolist())  # 输出:['99.8万', 122, '2室2厅']
在这里插入图片描述
在这里插入图片描述

🦋2.2 单列数据转列表

直接对列调用 tolist()

代码语言:python
代码运行次数:0
运行
复制
print(df['总价'].tolist())  # 输出:['80万', '99.8万']
print(df.户型.tolist())    # 输出:['3室2厅', '2室2厅']

🔎3.DataFrame转换为元组

通过循环遍历DataFrame值并转换为元组:

代码语言:python
代码运行次数:0
运行
复制
import pandas as pd             # 导入pandas模块
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
data = [['Aaron',18,'boy'],['Abby',23,'girl']]    # 创建数据
columns = ['name','age','sex']      # 创建列名
df = pd.DataFrame(data=data, columns=columns) # 创建DataFrame对象
print('原数据如下:\n',df)
tuples = tuple(tuple(t) for t in df.values)  # 将DataFrame数据转换为元组数据
print('转换后的元组数据如下:\n',tuples)

输出:

在这里插入图片描述
在这里插入图片描述

高效方法:使用 itertuples()

代码语言:python
代码运行次数:0
运行
复制
tuples = tuple(df.itertuples(index=False, name=None))
print(tuples)
# 输出:(('Aaron', 18, 'boy'), ('Abby', 23, 'girl'))

🔎4.总结

  • 字典转换:灵活选择 orient 参数适配不同需求。
  • 列表转换:按行或列提取数据,适用于后续遍历或批量处理。
  • 元组转换:适合需要不可变数据结构的场景,如哈希键或数据库操作。

通过合理选择转换方法,可高效实现数据在不同格式间的流转,满足多样化的数据处理需求。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚀前言
  • 🚀一、DataFrame数据的转换
    • 🔎1.DataFrame转换为字典
      • 🦋1.1 默认转换(orient='dict')
      • 🦋1.2 orient='list'
      • 🦋1.3 orient='index'
      • 🦋1.4 其他常用参数
    • 🔎2.DataFrame转换为列表
      • 🦋2.1 单行数据转列表
      • 🦋2.2 单列数据转列表
    • 🔎3.DataFrame转换为元组
    • 🔎4.总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档