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 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇)

    本文主要为没有使用正则表达式经验的新手入门所写。由浅入深介绍了Python 正则表达式,有需要的朋友可以看下
    2016-12-12
  • python的turtle库使用详解

    python的turtle库使用详解

    在本篇文章里小编给大家分享了关于python的turtle库相关知识点以及使用方法,需要的朋友们跟着学习下。
    2019-05-05
  • python爬取淘宝商品销量信息

    python爬取淘宝商品销量信息

    这篇文章主要为大家详细介绍了python爬取淘宝商品的销量信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • pytest通过assert进行断言的实现

    pytest通过assert进行断言的实现

    assert断言是一种用于检查代码是否按预期工作的方法,在pytest中,assert断言可以用于测试代码的正确性,以确保代码在运行时按照预期工作,本文就来介绍一下如何使用,感兴趣的可以了解下
    2023-12-12
  • python生成日历实例解析

    python生成日历实例解析

    这篇文章主要介绍了python生成日历的方法,实用了python自带的 calendar模块加以实现,需要的朋友可以参考下
    2014-08-08
  • Python实现哲学家就餐问题实例代码

    Python实现哲学家就餐问题实例代码

    这篇文章主要给大家介绍了关于Python实现哲学家就餐问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 解决Python3 抓取微信账单信息问题

    解决Python3 抓取微信账单信息问题

    这篇文章主要介绍了Python3 抓取微信账单信息,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • 实现Python3数组旋转的3种算法实例

    实现Python3数组旋转的3种算法实例

    在本篇文章里小编给大家整理的是一篇关于实现Python3数组旋转的3种算法实例内容,需要的朋友们可以学习参考下。
    2020-09-09
  • python覆盖写入,追加写入的实例

    python覆盖写入,追加写入的实例

    今天小编就为大家分享一篇python覆盖写入,追加写入的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python plt.boxplot函数及其参数使用小结

    Python plt.boxplot函数及其参数使用小结

    plt.boxplot函数用于绘制箱线图,本文介绍了Python plt.boxplot函数及其参数使用小结,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02

最新评论