楼主: CDA网校
482 0

[CDA数据分析师学习之路] 盘点一个Pandas中explode()爆炸函数应用实际案例 [推广有奖]

管理员

已卖:189份资源

泰斗

4%

还不是VIP/贵宾

-

威望
3
论坛币
125437 个
通用积分
11727.7127
学术水平
278 点
热心指数
286 点
信用等级
253 点
经验
230766 点
帖子
7052
精华
19
在线时间
4401 小时
注册时间
2019-9-13
最后登录
2026-2-6

初级热心勋章

楼主
CDA网校 学生认证  发表于 2022-4-24 11:24:20 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

作者:Python进阶者

来源:Python爬虫与数据挖掘

前言

偶然想对数据分列多一些操作,但是遇到了问题,如下图所示。


上图这个是原始数据,但是现在想要下图这样的效果,怎么破呢?


这个问题竟然在网上找了很久,没有找到合适的,也许是我问问题的没有问到点子上,不过还好比较幸运,在才哥群里有【1px】、【猫药师Kelly】大佬给出了思路和答案。

一、思路

一开始想到的是使用Excel进行分列,这个操作我自然熟悉了,只不过列是分割了,但是其他的行数据没有一起跟过来,如果你说大不了复制粘贴呗,也花不了几秒钟,我觉得也是没毛病的,这也确实是一直思路,不死磕也行。


不过不要慌,问题不大,这里给出【1px】大佬给出的解决方法,拍案惊奇!


二、解决方案

针对该问题,其实有两个方法,第一个是【麦叔】书中给出的openpyxl库进行拆解,如下图所示:


第二个是使用pandas中的explode()函数,这里直接给出【1px】大佬答案,如下图所示:


其实关键点就是pandas中的爆炸函数explode(),早在之前我看到过有人用这个,只是一直不知道怎么用,今天在这里算是涨知识了。

import pandas as pd
df = pd.read_excel('keywords.xlsx')
# ['序号', '年份', '来源出版物名称', '索引关键字'
df.columns
df.loc[:, ['索引关键字']] = df['索引关键字'].str.split(";") # expand=True 可以把用分割的内容直接分列
df.head()
df.explode(column='索引关键字')

最后得到预取的效果如下图所示:


上面我只是拿一行数据进行测试,接下来使用多行进行测试看看:


代码运行之后,发现都可以满足要求:


三、总结

我是Python进阶者。本文基于实际过程中遇到的Excel数据拓展分列的问题,使用pandas中的explode()函数顺利完成解答,一个小题目,帮助自己和大家加深对该函数的认识。



      相关帖子DA内容精选
  • 大厂数据分析面试指南!来自亚马逊、谷歌、微软、头条、美团的面试问题!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:pandas panda ODE EXP Das

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-8 16:47