列表、元组、集合、字典和 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的主要功能和特点: ①多种语音…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...
简单介绍C++中 string与wstring
在C中,string和wstring是两种用于处理不同字符编码的字符串类型,分别基于char和wchar_t字符类型。以下是它们的详细说明和对比: 1. 基础定义 string 类型:std::string 字符类型:char(通常为8位)…...
