将多列单元格中的多个数据拆分为多行数据(explode方法扩展使用)

将多列单元格中的多个数据拆分为多行数据(explode方法扩展使用)

手动反爬虫:原博地址

 知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息

如若转载,请标明出处,谢谢!

1 业务需求

在经过昨天梳理通过日期字段提取年月日、timedelta提取时分秒并进行小时汇总后,今天发现业务需求中里面要求对入职时间和培训时间的信息进行处理分析,结果拿到的数据是一个单元格里存在多个数据,就需要进行数据的处理,如下。
在这里插入图片描述

2 发现问题

根据昨天梳理的博客,可以直接尝试进行两个字段的相加减的操作,试一下,结果就是因为上面的图示,数据中将两个人的信息填报到一个表格中了,而且两列的数据是一一对应的,那么想要进行时间字段的相加减,就必须将这个多列单元格的多个数据拆分为多行
在这里插入图片描述

3 解决问题

之前介绍的博客中有涉及到单列将单元格中的多个数据拆分为多行数据(explode方法使用),今天遇到的问题却是多列的操作,可以先看一下使用原来的方法还能不能凑效,还是以官网的数据为例,再添加一列C,值为复制A列中的内容

import pandas as pd
df = pd.DataFrame({'A': [[1, 2, 3], 'foo', [], [3, 4]], 'B': 1,'C':[[1, 2, 3], 'foo', [], [3, 4]]})
df

输出结果为:
在这里插入图片描述
然后使用explode()方法,分别对AC两列进行处理,可以发现这种两次的explode会把两列的所有的可能性都组合起来,但是实际上的数据是一一对应的,比如一个单元格有两个时间数据,那么就对应两个人,另一列同一行的数据也是这两个人的特征,因此应该保证一致性
在这里插入图片描述
故直接使用两次explode是不行的,但是仔细研究发现,可以按照单次的explode然后再进行合并,接着就是尝试一下,结果如下。可以发现原来是四条数据,加上单元格中的多个数据,最终提取的是7条,刚好满足一一对应的关系,因此就完成了将多列单元格中的多个数据拆分为多行数据的目标
在这里插入图片描述

4 实际操作

那么直接对业务数据进行操作,先将两个目标字段进行所需格式的转化,这个在单列将单元格中的多个数据拆分为多行数据(explode方法使用)中提到过,这里直接使用
在这里插入图片描述
然后分别对两个字段进行explode,为了验证是否真正的拆分开,先检查一下输出结果,如下
在这里插入图片描述
接着对下一个字段拆分最后进行合并,操作结果如下,成功实践完成了业务处理的一个小问题
在这里插入图片描述
完结、撒花✿✿ヽ(°▽°)ノ✿

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lys_828

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值