pandas dataframe 中 explode()函数用法及效果

news2025/1/2 0:03:04

        最近在使用pyspark处理数据,需要连接各种各样的表和字段,因此记录相关函数的使用情况。今天介绍explode().

1. explode()函数简介

        explode 函数是 pandas.DataFrame 类的一个方法,能够通过pyspark间接调用。

        它可以将一个包含list或者其它可迭代对象的列拆分成多行,然后在所有其它列上进行复制。

        函数原型:参数 column 表示 指定要拆分的列

        通过 pyspark调用:

from pyspark.sql import functions as F
F.explode(column)

2. 实验效果

        第一步:创建一个包含两列(A,B)的dataframe数据,且B包含了不同长度的数组。

import pandas as pd
df = pd.DataFrame({
        'A': ['a', 'b', 'c', 'd', 'e'],
        'B': [[1], [2, 4], [4, 5, 6], [], [7]]
    })
print(df)

        第二步:将B列展开

import pandas as pd
df = pd.DataFrame({
        'A': ['a', 'b', 'c', 'd', 'e'],
        'B': [[1], [2, 4], [4, 5, 6], [], [7]]
    })
df = df.explode('B')
print(df)

 

        由结果可知,‘a’对应list[1],list[1]展开不变,和‘a',一对一;元素’b‘对应list[2, 4],展开list数组,元素‘b'复制,分别对应元素 2 和 4;以此类推。

        注意到,A列元素伴随着B列中对应元素的展开,而复制;元素’d‘对应的空list,因此展开/拆解后A列对应的B列元素同样为空。

        更加复杂的情况,A、B、C三列,df = df.explode('B').explode('C'),则考虑了所有组合情况。详情请见博客链接:pandas dataframe 中的explode函数用法详解 - Python技术站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/542134.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【零基础学JS - 7 】javaScript 中的8大数据类型

👨‍💻 作者简介:程序员半夏 , 一名全栈程序员,擅长使用各种编程语言和框架,如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个…

Python之selenium关于Chrome驱动位置,闪退的问题和安装路径

目录 零、查看Python的安装路径一、Chromedriver放置的位置二、浏览器闪退 零、查看Python的安装路径 一、Chromedriver放置的位置 背景:之前由于Chrome浏览器自动升级后,导致驱动与浏览器不匹配,自己也不知道问题出在哪儿,花费了…

hadoop和spark配置问题记录

hadoop和spark配置问题记录 Spark的WebUI访问不了 直接启动的start-all.sh是环境变量中配置的hadoop的脚本,不是spark的,因此启动spark的start-all.sh脚本即可。 Spark看不到Worker信息 启动Spark在UI界面上看不到worker节点的信息_潇洒哥WH3的博客-C…

【Java|基础篇】包和访问权限修饰符

文章目录 1. 前言2. 包的概念3. 包的创建以及优点4. 访问权限修饰符5. 总结 1. 前言 包和访问权限修饰符是Java中两个常用的概念,它们都与访问控制有关. 2. 包的概念 在面向对象体系中,提出了一个软件包的概念,即:为了更好的管…

代码随想录算法训练营第四十四天 | 完全背包、完全背包的遍历顺序

完全背包 理论基础 文档讲解:代码随想录 (programmercarl.com) 视频讲解:带你学透完全背包问题! 和 01背包有什么差别?遍历顺序上有什么讲究?_哔哩哔哩_bilibili 完全背包和01背包问题唯一不同的地方就是,每…

品牌战略规划:如何让你的品牌脱颖而出

虽然很多国内企业家都非常重视战略,什么商业战略、渠道战略之类的一通研究,但惟独却缺乏对品牌战略的一个正确理解。 很多时候一把手不参与,也不关心品牌建设,经常上来就让团队实操动作,而自己只看最终结果&#xff0…

LeetCode20.有效的括号

题目 思路 每一个右括号应该与与在它左边最近的左括号相匹配,所以这道题可以通过栈实现 代码 💬由于博主还没有学习到C,能力有限,所以只能自己实现一个栈,学过C的朋友可以直接使用CSTL中的栈来实现 #define _CRT_S…

深入理解事务的隔离性 —— 多版本并发控制( MVCC )

文章目录 一、数据库并发的三种场景二、多版本并发控制(MVCC)的初步认识三、事务的隐藏列字段四、UNDO 日志五、Read View 读视图六、深入理解 MVCC —— 隔离级别的实现原理七、RC 与 RR 的本质区别 一、数据库并发的三种场景 数据库并发指的是多个用户…

如何将Shapefile文件导入Sketch Up进行建模

涉及软件:ArcGIS10.4.1,Sketch Up Pro2022 1.shapefile的属性编辑 基于我们已有的shp文件,打开属性表,添加一个高度字段用于存放平面图形高度信息,为后期三维拉伸做好准备(如果已有相关信息,请…

区间合并【pair、sort】

将有交集(包括端点)的区间进行合并 802. 区间和 - AcWing题库 例如,现在有这样一个数据 1 2 2 4 5 6 7 8 7 9最终合并的结果就是 1 —— 45 —— 67 —— 9 得到三个区间 第一步:按照区间左端点排序 第二步:扫描…

【C++初阶】:模板初阶

模板初阶 一.函数模板1.简单使用2.模板原理3.函数模板的实例化4.模板参数的匹配原则 二.类模板1.基本格式2.类模板实例化 一.函数模板 1.简单使用 函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的…

【OJ比赛日历】快周末了,不来一场比赛吗? #05.20-05.26 #10场

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注! 以下信息仅供参考,以比赛官网为准 目录 2023-05-20(周六) #4场比赛2023-05-21…

关于Compilation failed: internal java compiler error的解决方法(Idea)

**idea编译项目时出现java: Compilation failed: internal java compiler error java:编译失败:内部java编译器错误 根本原因基本上有两个,一个jdk版本问题,一个堆栈不足问题,我这次就是堆栈不足导致的; 1、项目过大…

IDOIEO盘点,包括PoseiSwap等即将面向市场的潜力打新活动

本月即将推出几个值得关注的打新活动一览: 项目名:PoseiSwap 官网:poseiswap.xyz PoseiSwap 是 Nautilus Chain 上的首个 DEX, Nautilus Chain 作为目前行业内第一个并行化且运行速度最快EVM Rollup的L3扩容方案,其将…

如何反转ggplot2中的图例键顺序

动动发财的小手,点个赞吧! 在本教程[1]中,我们将学习如何反转 ggplot2 中图例键的顺序。 在 ggplot2 中,当我们在 aes() 中使用颜色或填充参数为变量着色时,我们会得到一个带有键的图例,显示哪些键匹配哪些…

蓝奏云直链解析

[玫瑰]蓝奏云直链获取在线解析网站源码 蓝奏云链接解析 本地API接口 [玫瑰]支持有无密码和短期直链和永久直链,同时还可以显示文件名和大小。 [玫瑰]这个解析器无需数据库即可搭建,API接口已经本地化,非常简单易用。 [玫瑰]解压密码 123321 链…

zotero-style 摸索

打开zotero-编辑-首选项-style 可以看到图中所示的function界面 标签 刚安装好的时候原来自带的标签都不显示了,重启也没用,原来是不要勾选function下的title就好了 还有一种解决方法是,同时勾选title和tag,然后在标题栏右键&am…

【数据结构】堆(Heap)

文章目录 前言一、堆1、 概念2、性质3、结构 二、堆的实现1、算法实现:向下调整算法向上调整算法(堆的创建)堆的插入堆的删除堆的排序 2、 代码实现(小堆):堆的定义交换检查容量向下调整向上调整堆的初始化堆的创建销毁堆堆的插入堆的删除获取堆顶元素判…

Linux下C/C++实现DNS查询(DNS QUERY)

DNS 的全称是 Domain Name System 或者 Domain Name Service,它主要的作用就是将人们所熟悉的网址 (域名) “翻译”成电脑可以理解的 IP 地址,这个过程叫做 DNS 域名解析。域名是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称&am…

Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结-必禁

Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结,优雅草松鼠蜻蜓系统安装必须开启proc_open,putenv,但是希望大家在安装完成后一定要禁用。 必须禁用的高危函数: system,exec,passthru,shell_exec,popen,proc_open,pute…