如何拆分含不同键字典列的多索引DataFrame,展开字典为独立字段
你现有代码存在以下问题:
- 语法错误:
old_df['Index'缺少右方括号,pd.Dataframe拼写错误(Pandas中DataFrame的F需大写),pd.concat第一个参数需要传入包含待拼接对象的列表,不能直接传入两个DataFrame - 逻辑错误:直接将字典类型的列转为DataFrame不会自动拆分字典键值为多列,拼接逻辑也不符合需求。
实现代码
import pandas as pd # 提取需要的两列 temp = old_df[['Index', 'Attributes']].copy() # 拆分Attributes字典列为多列 split_attr = pd.json_normalize(temp['Attributes']) # 合并索引列与拆分后的属性列,空值填充为N/A result = pd.concat([temp['Index'], split_attr], axis=1).fillna('N/A')
如果原表的Index是DataFrame的行索引而非普通列,调整代码如下:
# 拆分Attributes列 split_attr = pd.json_normalize(old_df['Attributes']) # 绑定原索引 split_attr.index = old_df.index # 重置索引为普通列,空值填充为N/A result = split_attr.reset_index().fillna('N/A')
运行后得到的result就是你需要的结构。
内容的提问来源于stack exchange,提问作者student-cheese
相关产品推荐
相关产品推荐

