如何将字典转换为DataFrame并保留键为product_id列及值顺序
解决方案
方法1:基于原有代码修改(仅需加1行,适配Python3.7+默认有序字典)
你原来的写法已经完成了值的转换,只需要额外给DataFrame新增product_id列,赋值为原字典的键即可:
import pandas as pd # 你的原有转换逻辑 df = pd.DataFrame(my_dict.values()) # 新增product_id列,赋值为原字典的键 df['product_id'] = list(my_dict.keys())
注意:如果使用Python3.7以下版本,字典默认无序,建议改用下面的方法2避免键值错位。
方法2:构造数据时直接整合(全版本兼容,无错位风险)
遍历字典的items()方法同时拿到键和值,把键合并到每条数据的字段中,再构造DataFrame:
import pandas as pd df = pd.DataFrame([ {**value, 'product_id': key} for key, value in my_dict.items() ])
如果需要把product_id放在表格第一列,可在构造完成后补充列重排逻辑:
df = df[['product_id'] + [col for col in df.columns if col != 'product_id']]
效果验证
以你给出的示例字典为例:
my_dict = {0: {'ID': 'ABCDS', 'CATEGORY': 'Electronics', 'PRICE': '1234', 'Currency': 'Dollar'}}
转换后输出的DataFrame结构为:
| product_id | ID | CATEGORY | PRICE | Currency |
|---|---|---|---|---|
| 0 | ABCDS | Electronics | 1234 | Dollar |
内容的提问来源于stack exchange,提问作者Ian Kurtis
相关产品推荐
相关产品推荐

