Python中Dataframe元素为不定长list时的拆分分组
作者:夜半罟霖 发布时间:2023-11-08 04:16:30
标签:Dataframe,不定长list,拆分
引言
本文想要解决的问题是当DataFrame中某一列元素为不定长度的数组时,该如何对它们进行拆分分解为后续元素,从而进行进一步的提取操作,数据格式见下图:
解决方法
 这个问题的解决思路首先是要不定长的数组填充成等长的数组,从而后续可以直接转换为元素为单一值的标准DataFrame,再和原DataFrame合并即可完成操作。填充的部分使用了map()
方法来实现,实现前还需要获得数组的最大长度以确定填充数目。代码见下:
a=[[['a','d'],['b'],['a','c']],[1,2,3],[4,5,6]]
df=pd.DataFrame(a).T
used_col=df[0]
length=used_col.map(lambda x:len(x))
max_l=length.max()
temp=used_col.map(lambda x:x+[np.nan]*(max_l-len(x)))
temp=np.array(temp.to_list())
temp=pd.DataFrame(temp)
df=df.drop(0,axis=1)
temp.columns=['cat1','cat2']
output=df.join(temp)
结果展示:
pd.DataFrame(a).T
Out[13]:
0 1 2
0 [a, d] 1 4
1 [b] 2 5
2 [a, c] 3 6
output
Out[14]:
1 2 cat1 cat2
0 1 4 a d
1 2 5 b nan
2 3 6 a c
来源:https://blog.csdn.net/Dr_maker/article/details/124359624


猜你喜欢
- 本文实例讲述了Python简单删除列表中相同元素的方法。分享给大家供大家参考,具体如下:去除列表中重复的元素,非常简单,直接上代码:a =
- 何为质数: 只能被1 和 自身 整除的数;方法: 利用js中求模, 看是否有余数. ---> 3%2 = 1; 5%2 = 3....
- 数字函数 ABS():求绝对值。 CEILING():舍入到最大整数。 FLOOR():舍入到最小整数。 ROUND():四舍五入 ROUN
- 首先是不知道怎么忽然mysql用命令行,workbench都登录不了,都提示'Access denied for user '
- 我们也可以来做一个,但这个“定时器”的工作时间范围应控制在1个小时至100 毫秒之间: <%sub StartTi
- 前言在日常中有时需将 html 文件转换为 pdf、word 文件。网上免费的大多数不支持多个文件转换的情况,而且在转换几个后就开始收费了。
- Gtalk 软件的最下方有个很好又很实用的功能,就是 Gmail 邮件提醒功能。会定时更新你 Gmail 中未读新邮件的数量。试想
- 先看下面例子的效果:<INPUT TYPE="text" NAME=""&
- 有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。本章节我们将为大家介绍如
- 初始化并封装在main.js中对bus进行初始化, Bus是一个不具备 DOM 的组件,它具有的仅仅只是它实例方法Vue.prototype
- 本文讲解如何用java实现把数据库的数据写入到txt中 并实现类似下载软件的样子在网页中弹出下载.package datatest;impo
- 这篇文章主要介绍了Python语言异常处理测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 一切皆是对象在 Python 一切皆是对象,包括所有类型的常量与变量,整型,布尔型,甚至函数。 参见stackoverflow上的一个问题
- 本文实例讲述了JS使用eval()动态创建变量的方法。分享给大家供大家参考,具体如下:一、什么是eval()函数?eval_r()函数可计算
- 在go语言中iota比较特殊,是一个被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次
- 正文本文简要介绍Python自然语言处理(NLP),使用Python的NLTK库。NLTK是Python的自然语言处理工具包,在NLP领域中
- Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上。后来对Python渐渐熟悉了一点
- 一、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。1.得到当前工作目录,即当前Python脚本工作的目录路
- 给一个例子 :# -*- coding: utf-8 -*-import matplotlib.pyplot as plt im
- 概述在JavaScript前端开发中,函数与对其状态即词法环境(lexical environment)的引用共同构成闭包(closure)