如何将dataframe列中的不等长字典列表拆分为独立列
拆分DataFrame列表列的实现方案
前置依赖
确保你已经安装并导入了pandas库,如果列值为JSON格式字符串,还需要导入json库做格式转换。
操作步骤
- 格式校验转换(仅当你的categories列存储的是字符串而非列表对象时执行)
import json import pandas as pd df['categories'] = df['categories'].apply(json.loads)
- 拆分列表为多列并按要求命名
# 拆分列表为独立列,缺失位置自动填充NaN split_df = df['categories'].apply(pd.Series) # 重命名列符合categories N的格式 split_df.columns = [f'categories {idx+1}' for idx in split_df.columns] # 合并到原DataFrame(可选) final_df = pd.concat([df, split_df], axis=1)
效果说明
- 最终生成的列数量和原categories列的最长列表长度一致
- 列表长度不足的行对应位置自动填充
NaN,符合你要的null填充要求 - 拆分后的每个列存储的是原位置的字典对象,显示效果和你给出的预期输出完全匹配
内容的提问来源于stack exchange,提问作者Hamza
相关产品推荐
相关产品推荐

