Python中Dataframe元素为不定长list时的拆分分组
作者:夜半罟霖 时间:2023-11-08 04:16:30
引言
本文想要解决的问题是当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
标签:Dataframe,不定长list,拆分
0
投稿
猜你喜欢
Python 根据相邻关系还原数组的两种方式(单向构造和双向构造)
2023-09-24 17:08:06
Python实现爬取并分析电商评论
2022-11-21 17:18:47
python实现单线程多任务非阻塞TCP服务端
2021-05-29 07:26:52
python人工智能tensorflow函数np.random模块使用
2021-03-02 20:05:55
19个MySQL性能优化要点解析
2024-01-18 16:03:14
Python django框架输入汉字,数字,字符生成二维码实现详解
2022-12-13 00:23:24
Oracle Index 的三个问题
2024-01-14 20:20:40
PyCharm更改字体和界面样式的方法步骤
2021-12-24 09:15:25
将图片文件嵌入到wxpython代码中的实现方法
2023-04-23 06:52:20
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2021-11-24 14:19:58
Pandas中df.loc[]与df.iloc[]的用法与异同
2023-01-24 07:57:04
python3.8下载及安装步骤详解
2023-11-19 18:47:02
python3.6+opencv3.4实现鼠标交互查看图片像素
2021-09-09 05:27:12
OpenCV实战之AI照片背景替换
2022-06-11 06:58:09
mybatis统计每条SQL的执行时间的方法示例
2024-01-28 12:54:43
用Python写个新年贺卡生成器
2023-08-26 00:56:45
pandas中apply和transform方法的性能比较及区别介绍
2023-07-18 22:23:40
JS简单随机数生成方法
2024-04-19 09:56:42
浅谈MySQL排序原理与案例分析
2024-01-15 23:08:21
pycharm 使用心得(三)Hello world!
2022-10-08 09:59:56