pandas 如何将一列数据中含有列表的数据 展开
Posted ~小疯子~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas 如何将一列数据中含有列表的数据 展开相关的知识,希望对你有一定的参考价值。
将上述数据转化为下面的数据
md = da.groupby(["TimeStr"]).ItemId.unique().reset_index()
# 1. 给原始数据重新定一列 index_1
md['index_1'] = [i for i in md.index]
TimeStr ItemId index_1
0 20220417 [1, 601, 1263, 1089] 0
1 20220418 [564, 230] 1
2 20220419 [1266, 564] 2
# 根据index_1 展开ItemId
dg_ru = pd.DataFrame('index_1':md.index_1.repeat(md.ItemId.str.len()), 'ItemId':np.concatenate(md.ItemId.values))
# 与原始数据合并
dg_rul = dg_ru.merge(md, on=['index_1'])
dg_rul[dg_rul['TimeStr']==20220417]
各位如果还有 其它更好的方法, 请@我一下, 或者是甩个链接哦, 谢谢各位了
2. 新夹一个方法,可以很快的解决这个问题,感谢下面评论的小伙伴哦, 这个真的真的时态省时间了!!!
pandas 0.25.0版本以上,可以直接df.explode('ItemId')
以上是关于pandas 如何将一列数据中含有列表的数据 展开的主要内容,如果未能解决你的问题,请参考以下文章
使用 pivot_table 将一列 dict 聚合到一个 dict 列表中 - Pandas
如何使用 pandas 将一列 csv 读取为 dtype 列表?