如何将Pandas每行中的列表类型数据拆分为独立行记录
Pandas列表列拆分为多行实现方案
该需求完全可以通过Pandas内置函数实现,不需要手动将数据转为列表处理:
- Pandas 0.25及以上版本,直接使用官方提供的
explode()方法即可完成列表列拆分为多行的需求,性能远高于手动遍历处理。
示例代码如下:
import pandas as pd # 构造示例数据 df = pd.DataFrame({ "Group": ["A", "B", "C"], "ID_LIST": [[1,2,3], [1,3,5], [2,4]] }) # 拆分ID_LIST列得到目标格式 result_df = df.explode("ID_LIST", ignore_index=True)
运行后得到的result_df就是你需要的每行对应一个ID的格式,其中ignore_index=True是可选参数,用于重置结果的行索引,不需要保留原索引的话建议加上。
- 如果使用0.25以下的旧版本Pandas,可以用以下兼容方案实现:
result_df = df.set_index('Group')['ID_LIST']\ .apply(pd.Series)\ .stack()\ .reset_index(level=1, drop=True)\ .reset_index(name='ID_LIST')
内容的提问来源于stack exchange,提问作者Krit Pattamadit
相关产品推荐
相关产品推荐

