如何将特定嵌套字典转换为指定结构的Pandas DataFrame
问题
我拥有如下字典:
{'data':[{'action_values': [ {'action_type': 'offsite_conversion', 'value': '5479.8'}, {'action_type': 'omni_add_to_cart', 'value': '9217.55'}, {'action_type': 'omni_purchase', 'value': '5479.8'}, {'action_type': 'add_to_cart', 'value': '9217.55'}]}]}
希望将其转换为Pandas DataFrame,使每个action_type对应DataFrame的一列,value对应列中的行数据,最终结构如下:
offsite_conversion omni_add_to_cart omni_purchase add_to_cart 0 5479.8 9217.55 5479.8 9217.55
请问该如何实现此转换?
解决方案
直接提取目标数据并构造对应字典,再生成DataFrame即可,代码示例:
import pandas as pd # 原始数据 raw_dict = {'data':[{'action_values': [ {'action_type': 'offsite_conversion', 'value': '5479.8'}, {'action_type': 'omni_add_to_cart', 'value': '9217.55'}, {'action_type': 'omni_purchase', 'value': '5479.8'}, {'action_type': 'add_to_cart', 'value': '9217.55'}]}]} # 提取action_values列表,构造列名与对应值的字典 # 若需要将value转为数值类型,用float(item['value'])替代item['value'] df_data = {item['action_type']: [item['value']] for item in raw_dict['data'][0]['action_values']} # 生成目标DataFrame df = pd.DataFrame(df_data) print(df)
关键步骤说明
- 从原始字典的层级中定位到
action_values列表,这是转换的核心数据源; - 使用字典推导式将每个
action_type映射为列名,对应的value用列表包裹,确保生成的是单行数据; - 传入字典到
pd.DataFrame(),自动生成符合要求的列结构。
内容的提问来源于stack exchange,提问作者griefter
相关产品推荐
相关产品推荐

