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

 更新时间:2023年03月10日 10:10:02   作者:夜半罟霖  
本文主要介绍了Python中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

总结

笔者解决这个问题的关键思路就是将元素为不定长list的一列取出来作为新的DataFrame,但没有找到好的办法实现长度不够自动补齐,无奈使用map()函数手动补齐。这个问题其实不是笔者遇到的,只是在问答区回答别人提问时花了点时间解决了一下,再加上最后没有被题主所采纳感觉很可惜,就发出来和大家分析一下自己的解法,可能会略显粗糙。

到此这篇关于Python中Dataframe元素为不定长list时的拆分分组的文章就介绍到这了,更多相关Dataframe元素为不定长list拆分内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python爬虫必备之XPath解析库

    Python爬虫必备之XPath解析库

    今天给大家带来的是Python爬虫的相关知识,文章围绕着XPath解析库展开,文中有非常详细的代码示例及介绍,需要的朋友可以参考下
    2021-06-06
  • python正则表达式匹配不包含某几个字符的字符串方法

    python正则表达式匹配不包含某几个字符的字符串方法

    今天小编就为大家分享一篇python正则表达式匹配不包含某几个字符的字符串方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python中日志logging模块的性能及多进程详解

    python中日志logging模块的性能及多进程详解

    使用Python来写后台任务时,时常需要使用输出日志来记录程序运行的状态,并在发生错误时将错误的详细信息保存下来,以别调试和分析。Python的logging模块就是这种情况下的好帮手。本文就介绍了python中日志logging模块性能及多进程的相关资料,需要的朋友可以参考下。
    2017-07-07
  • 使用tensorflow根据输入更改tensor shape

    使用tensorflow根据输入更改tensor shape

    这篇文章主要介绍了使用tensorflow根据输入更改tensor shape,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python3使用urllib示例取googletranslate(谷歌翻译)

    python3使用urllib示例取googletranslate(谷歌翻译)

    这篇文章主要介绍了使用urllib取googletranslate(谷歌翻译)的示例,通过这个谷歌翻译示例学习python3中urllib的使用方法,
    2014-01-01
  • 使用Flask和Django中解决跨域请求问题

    使用Flask和Django中解决跨域请求问题

    这篇文章主要介绍了使用Flask和Django中解决跨域请求问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • python调用接口的4种方式代码实例

    python调用接口的4种方式代码实例

    这篇文章主要介绍了python调用接口的4种方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • pytorch中关于backward的几个要点说明

    pytorch中关于backward的几个要点说明

    这篇文章主要介绍了pytorch中关于backward的几个要点说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python使用FastAPI制作一个视频流媒体平台

    Python使用FastAPI制作一个视频流媒体平台

    在构建视频流媒体平台时,用户认证与视频上传是两个至关重要的功能,FastAPI作为一个高效的Web框架,可以轻松处理这些需求,下面我们看看具体实现方法吧
    2025-04-04
  • python脚本使用阿里云slb对恶意攻击进行封堵的实现

    python脚本使用阿里云slb对恶意攻击进行封堵的实现

    这篇文章主要介绍了python脚本使用阿里云slb对恶意攻击进行封堵的实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02

最新评论