Python pandas实现DataFrame转指定结构字典 用于DynamoDB数据写入
实现代码
首先导入依赖(未安装pandas需先执行pip install pandas):
import pandas as pd
按如下步骤转换即可得到目标结构的字典:
# 1. 将pandas空值替换为Python原生None,适配DynamoDB写入要求 df = df.where(pd.notnull(df), None) # (可选)如果需要先按client_id+product_id+product_constraint联合唯一键去重,执行这一步,keep参数可按需选'first'/'last' # df = df.drop_duplicates(subset=['client_id', 'product_id', 'product_constraint'], keep='last') # 2. 按client_id分组转换为目标结构字典 result = df.groupby('client_id')[ ['product_id', 'product_name', 'timestamp_added', 'product_constraint'] ].apply(lambda x: x.to_dict('records')).to_dict()
说明
- 转换后的
result完全匹配你给出的字典结构,外层键为client_id,值为该客户名下所有产品的信息字典列表 - 所有空值会自动转换为
None,序列化为JSON后对应null,可直接用于DynamoDB数据写入 - 如需保留原DataFrame的全部行,无需执行可选的去重步骤,代码会完整保留所有记录
内容的提问来源于stack exchange,提问作者Igor Eulálio
相关产品推荐
相关产品推荐

