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 如何将一列数据中含有列表的数据 展开的主要内容,如果未能解决你的问题,请参考以下文章

pandas 如何将一列数据中含有列表的数据 展开

pandas 如何将一列列表数据展开成多行数据

使用 pivot_table 将一列 dict 聚合到一个 dict 列表中 - Pandas

如何使用 pandas 将一列 csv 读取为 dtype 列表?

Pandas: 如何将一列中的文本拆分为多行? | Python

将一列字符串转换为熊猫列表