列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换
二、列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换
在 Python 中,列表、元组、集合、字典和 pandas 数据框(DataFrame)是常见的数据结构,它们可以通过多种方式相互转换。每种数据结构都有其特定的用例,但它们之间的相互转换使得在不同场景下灵活使用非常方便。以下是它们之间的转换操作示例。
1. 列表(list)与其他数据结构的转换
1.1 列表转元组
# 列表转元组
lst = [1, 2, 3, 4]
tup = tuple(lst)
print(tup) # 输出: (1, 2, 3, 4)
1.2 列表转集合
列表中可能有重复元素,转换为集合会自动去重。
# 列表转集合
lst = [1, 2, 2, 3, 4, 4]
set1 = set(lst)
print(set1) # 输出: {1, 2, 3, 4}
1.3 列表转字典
列表转字典时,通常需要列表元素为键值对(或可以映射为键值对)的形式,例如:
# 列表转字典
lst = [("name", "Alice"), ("age", 30)]
dict1 = dict(lst)
print(dict1) # 输出: {'name': 'Alice', 'age': 30}
1.4 列表转数据框(DataFrame)
需要安装并导入 pandas 库。
import pandas as pd# 列表转数据框
lst = [[1, 'Alice', 23], [2, 'Bob', 30], [3, 'Charlie', 25]]
df = pd.DataFrame(lst, columns=['ID', 'Name', 'Age'])
print(df)
# 输出:
# ID Name Age
# 0 1 Alice 23
# 1 2 Bob 30
# 2 3 Charlie 25
2. 元组(tuple)与其他数据结构的转换
2.1 元组转列表
# 元组转列表
tup = (1, 2, 3, 4)
lst = list(tup)
print(lst) # 输出: [1, 2, 3, 4]
2.2 元组转集合
# 元组转集合
tup = (1, 2, 2, 3, 4)
set1 = set(tup)
print(set1) # 输出: {1, 2, 3, 4}
2.3 元组转字典
元组转字典时,元组必须包含键值对或可转换为键值对的形式。
# 元组转字典
tup = (("name", "Alice"), ("age", 30))
dict1 = dict(tup)
print(dict1) # 输出: {'name': 'Alice', 'age': 30}
2.4 元组转数据框(DataFrame)
import pandas as pd# 元组转数据框
tup = ((1, 'Alice', 23), (2, 'Bob', 30), (3, 'Charlie', 25))
df = pd.DataFrame(tup, columns=['ID', 'Name', 'Age'])
print(df)
# 输出:
# ID Name Age
# 0 1 Alice 23
# 1 2 Bob 30
# 2 3 Charlie 25
3. 集合(set)与其他数据结构的转换
3.1 集合转列表
# 集合转列表
set1 = {1, 2, 3, 4}
lst = list(set1)
print(lst) # 输出: [1, 2, 3, 4] (顺序可能不同,因为集合是无序的)
3.2 集合转元组
# 集合转元组
set1 = {1, 2, 3, 4}
tup = tuple(set1)
print(tup) # 输出: (1, 2, 3, 4) (顺序可能不同)
3.3 集合转字典
集合本身不能直接转为字典,但可以将其与值配对来构造字典:
# 集合转字典(使用 zip)
set1 = {1, 2, 3}
dict1 = dict(zip(set1, ['a', 'b', 'c']))
print(dict1) # 输出: {1: 'a', 2: 'b', 3: 'c'}
4. 字典(dict)与其他数据结构的转换
4.1 字典转列表
字典的键或值可以转换为列表。
# 字典的键转列表
dict1 = {"name": "Alice", "age": 30}
lst_keys = list(dict1.keys())
print(lst_keys) # 输出: ['name', 'age']# 字典的值转列表
lst_values = list(dict1.values())
print(lst_values) # 输出: ['Alice', 30]# 字典的键值对转为列表
lst_items = list(dict1.items())
print(lst_items) # 输出: [('name', 'Alice'), ('age', 30)]
4.2 字典转元组
字典的键值对可以转换为元组。
# 字典的键值对转元组
dict1 = {"name": "Alice", "age": 30}
tup_items = tuple(dict1.items())
print(tup_items) # 输出: (('name', 'Alice'), ('age', 30))
4.3 字典转集合
字典的键或值可以转换为集合。
# 字典的键转集合
dict1 = {"name": "Alice", "age": 30}
set_keys = set(dict1.keys())
print(set_keys) # 输出: {'name', 'age'}
4.4 字典转数据框(DataFrame)
字典的键值对可以直接转为 pandas 数据框。
import pandas as pd# 字典转数据框
dict1 = {"name": ["Alice", "Bob"], "age": [25, 30]}
df = pd.DataFrame(dict1)
print(df)
# 输出:
# name age
# 0 Alice 25
# 1 Bob 30
5. 数据框(DataFrame)与其他数据结构的转换
5.1 数据框转列表
将数据框的每一行或列转为列表。
import pandas as pd# 创建数据框
df = pd.DataFrame({"ID": [1, 2, 3], "Name": ["Alice", "Bob", "Charlie"], "Age": [23, 30, 25]})# 数据框的列转列表
lst = df['Name'].tolist()
print(lst) # 输出: ['Alice', 'Bob', 'Charlie']# 数据框的行转为列表
lst_rows = df.values.tolist()
print(lst_rows) # 输出: [[1, 'Alice', 23], [2, 'Bob', 30], [3, 'Charlie', 25]]
5.2 数据框转元组
# 数据框转元组
tup_rows = [tuple(x) for x in df.values]
print(tup_rows) # 输出: [(1, 'Alice', 23), (2, 'Bob', 30), (3, 'Charlie', 25)]
5.3 数据框转字典
# 数据框转字典
dict1 = df.to_dict()
print(dict1)
# 输出:
# {'ID': {0: 1, 1: 2, 2: 3},
# 'Name': {0: 'Alice', 1: 'Bob', 2: 'Charlie'},
# 'Age': {0: 23, 1: 30, 2: 25}}
5.4 数据框转集合
由于数据框是二维结构,通常需要将某一列或某一行转换为集合。
# 将某一列转换为集合
set_names = set(df['Name'])
print(set_names) # 输出: {'Charlie', 'Alice', 'Bob'}
总结
Python 中的列表、元组、集合、字典和数据框之间可以通过内置的函数和方法方便地相互转换。在实际应用中,不同的数据结构有不同的使用场景,灵活转换可以使得数据处理更加简便。通过 pandas 数据框可以实现与表
格型数据的互操作,而通过列表、元组和集合可以实现不同的数据存储和操作方式。
相关文章:
列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换
二、列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换 在 Python 中,列表、元组、集合、字典和 pandas 数据框(DataFrame)是常见的数据结构,它们可以通过多种方式相互转换。每种数据结构…...
美图设计室
美图设计室 体验地址:美图设计室 一、产品描述 美图设计室是美图公司推出的一款集图形设计、广告制作、海报制作等功能于一体的智能设计软件。它凭借其独特的界面设计、强大的工具功能、智能化辅助设计以及丰富的社区互动功能,为用户提供了一个便捷、高…...
张雪峰:如果你现在是计算机专业,一定要优先报网络安全,它是未来国家发展的大方向
🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 “计算机专业 一定要优先报 网络安全 它是未来国家发展的大方向” 为什么推荐学网络安全? “没有网络安全就没有国家安全。”当前ÿ…...
Golang | Leetcode Golang题解之第486题预测赢家
题目: 题解: func PredictTheWinner(nums []int) bool {return total(nums, 0, len(nums) - 1, 1) > 0 }func total(nums []int, start, end int, turn int) int {if start end {return nums[start] * turn}scoreStart : nums[start] * turn total…...
【Golang】Go语言中如何创建Cron定时任务
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
Android compose 重建流程1
前言 本文是笔者学习Compose是如何自动触发UI刷新的笔记,可能缺乏一定可读性和教导性.(建议阅读参考文献更具启发性) 使用以下BOM作为研究环境. composeBom "2024.04.01" androidx-compose-bom { group "androidx.compose", name "compose-bom…...
C++:模板(2)
目录 非类型模板参数 模板的特化 概念 函数模板特化 类模板特化 全特化 偏特化 模板的分离编译 分离编译的概念 模板的分离编译 编辑 模板总结 非类型模板参数 模板参数分为类型形参与非类型形参。 类型形参:在模板参数列表中,跟在class…...
Golang 并发编程:Context 包的使用与并发控制
文章目录 一、简介二、Context 的基本概念1. context 包常用函数 三、Context 的基本用法1. WithCancel:取消任务的上下文 四、超时控制:WithTimeout 和 WithDeadline1. 使用 WithTimeout 控制任务超时2. 使用 WithDeadline 设定截止时间 五、传递上下文…...
QGraphics类型学习使用【Qt】【C++】
QGraphics类型学习使用 需求过程全部完整代码 首先已知,QGraphicsView,QGraphicsScene, QGraphicsItem,分别称为:视图,场景,图元,图表就是各种各样的元素,图片元素,线条元…...
迁移学习和在线学习小结
迁移学习 英文小名: transform learning 简介: 把已经训练好的模型A为基本, 在新场景中, 根据新数据建立模型B 目的: 将某个领域或任务上学习到的知识/模式, 应用到不同但相关的领域/问题中 方法: 1.结构引用 适用情况: 新数据多, 场景相似度高, 可以基于原模型重新训练 2.特征…...
克里金插值(Kriging interpolation)
原理可参考该文件:克里金(Kriging)插值的原理与公式推导 - xg1990 matlab code可参考:Ordinary Kriging - File Exchange - MATLAB Central Some notes: 采用普通克里金时,采样的密度对结果影响非常大。若采样密度不够,误差会非…...
sealed class-kotlin中的封闭类
在 Kotlin 中,sealed class(密封类)是一种特殊的类,用于限制继承的类的数量。密封类可以被用来表示一组有限的类型,通常用于状态管理或表达多种可能的错误类型。 密封类用 sealed 关键字定义,这意味着只能…...
MongoDB Shell 基本命令(一)
MongoDB Shell 基本命令(一) 1. 基本概念 SQL术语/概念MongoDB术语/概念解释/说明databasedb数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joins表连接,MongoDB不支持primary keyprimary key主键,Mon…...
Flink时间语义和时间窗口
前言 在实际的流计算业务场景中,我们会发现,数据和数据的计算往往都和时间具有相关性。 举几个例子: 直播间右上角通常会显示观看直播的人数,并且这个数字每隔一段时间就会更新一次,比如10秒。电商平台的商品列表&a…...
在wpf中登录成功之后怎么设置主页布局及点击不同的菜单跳转到不同的页面,这个是我们做wpf项目必要会的一个功能
通过frame与page实现在mvvm下的页面跳转 在wpf中登录成功之后怎么设置主页布局及点击不同的菜单跳转到不同的页面_哔哩哔哩_bilibili 1、MainWindow代码 <DockPanel><StackPanel DockPanel.Dock"Top" Height"40"><Grid><Grid.ColumnD…...
基于opencv的人脸闭眼识别疲劳监测
1. 项目简介 本项目旨在实现基于眼部特征的眨眼检测,通过监测眼睛开闭状态来计算眨眼次数,从而应用于疲劳监测、注意力检测等场景。使用了面部特征点检测算法,以及眼部特征比率(EAR, Eye Aspect Ratio)来判断眼睛的闭…...
aeo认证需要什么材料
AEO(Authorized Economic Operator)认证,即经认证的经营者认证,是企业信用管理体系的一种高级认证。申请AEO认证时,企业需要准备一系列的材料以证明其符合认证标准。以下是一份详细的AEO认证申请材料清单: …...
【iOS】YYModel
目录 什么是YYModel ? 如何使用YYModel ? 最简单的Model 与网络请求结合 属性为容器类的Model 白名单和黑名单 Model的嵌套 结语 什么是YYModel ? YYModel是一个用于 iOS 和 macOS 开发的高性能的模型框架,主要用于对象和…...
Cadence元件A属性和B属性相互覆盖
最近在使用第三方插件集成到Cadence,协助导出BOM到平台上,方便对BOM进行管理和修改,结果因为属性A和属性B不相同,导致导出的BOM错误。如下图: 本来我们需要导出Q12,结果给我们导出了Q13,或者反之&…...
【火山引擎】语音合成 | HTTP接口 | 一次性合成 | python
目录 一 准备工作 二 HTTP接口(一次性合成-非流式) 1 接口说明 2 身份认证 3 请求方式 三 实践 四 注意事项 火山引擎语音合成TTS(Text-to-Speech)是一种基于云计算的语音合成服务,可以将文本转化为自然、流畅的语音。以下是火山引擎TTS的主要功能和特点: ①多种语音…...
教育科技产品集成AI答疑功能的技术方案与接入实践
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 教育科技产品集成AI答疑功能的技术方案与接入实践 在在线教育领域,为学生提供即时、准确的答疑服务是提升学习体验和效…...
为内部知识库问答机器人接入Taotoken提升回答稳定性
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为内部知识库问答机器人接入Taotoken提升回答稳定性 在企业内部知识管理系统中,一个稳定可靠的问答机器人是提升信息检…...
2026最权威的六大AI写作工具推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在学术研究链路里,DeepSeek能够为论文撰写给予全流程辅助支持,从梳理…...
Godot开发者的宝藏:awesome-godot资源库使用指南与实战技巧
1. 项目概述:一个游戏开发者的“藏宝图”如果你正在用Godot引擎做游戏,或者对这个开源、轻量又强大的工具感兴趣,那你大概率听说过或者正在寻找一个叫“awesome-godot”的仓库。这可不是一个普通的代码项目,它更像是一份由全球God…...
pdf2pptx:三分钟实现LaTeX幻灯片到PowerPoint的无缝转换
pdf2pptx:三分钟实现LaTeX幻灯片到PowerPoint的无缝转换 【免费下载链接】pdf2pptx Convert your (Beamer) PDF slides to (Powerpoint) PPTX 项目地址: https://gitcode.com/gh_mirrors/pd/pdf2pptx 还在为学术演示的格式兼容问题烦恼吗?你是否需…...
ChatGPT 2026安全增强套件发布:内置FIPS 140-3认证加密引擎、GDPR实时审计追踪、AI生成内容数字水印——金融/医疗行业合规上线最后窗口期
更多请点击: https://intelliparadigm.com 第一章:ChatGPT 2026安全增强套件整体架构与合规定位 ChatGPT 2026安全增强套件(CESK-2026)是一套面向生成式AI服务的纵深防御框架,专为满足GDPR、中国《生成式人工智能服务…...
网盘下载革命:LinkSwift 如何让你在9大平台轻松获取真实下载地址
网盘下载革命:LinkSwift 如何让你在9大平台轻松获取真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云…...
HoRain云--Lua元表:解锁高级编程技巧
🎬 HoRain云小助手:个人主页 🔥 个人专栏: 《Linux 系列教程》《c语言教程》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!…...
【Midjourney Sumi-e风格创作终极指南】:20年AI绘画专家亲授3大笔触控制法则、5类水墨失真避坑清单与实时渲染参数配置表
更多请点击: https://intelliparadigm.com 第一章:Sumi-e水墨美学与AI生成的本体论契合 留白即存在 水墨画中的“余白”并非空无,而是气韵流转的场域——这与生成式AI中隐空间(latent space)的拓扑结构惊人地同构。扩…...
SoC设计中虚拟原型技术与TLM建模实践
1. 虚拟原型技术概述在SoC设计领域,虚拟原型技术(Virtual Prototyping)已经成为现代芯片开发流程中不可或缺的关键环节。这项技术的核心价值在于,它能够在RTL级硬件设计完成之前,就为软件团队提供一个可执行的硬件抽象模型。作为一名经历过多…...
