Python中Dataframe元素为不定长list时的拆分分组

作者:夜半罟霖 时间:2023-11-08 04:16:30 

引言

本文想要解决的问题是当DataFrame中某一列元素为不定长度的数组时,该如何对它们进行拆分分解为后续元素,从而进行进一步的提取操作,数据格式见下图:

Python中Dataframe元素为不定长list时的拆分分组

解决方法

 这个问题的解决思路首先是要不定长的数组填充成等长的数组,从而后续可以直接转换为元素为单一值的标准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
  • asp之家 网络编程 m.aspxhome.com