You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将嵌套字典列表转换为指定格式的Pandas DataFrame?

问题:将嵌套字典列表转换为指定格式的Pandas DataFrame

输入数据

input_data = [
    {'prediction_response': [{'CONFIDENCE': '0.95', 'ESTIMATED_DROPOFF_TIME': '1664640128037.6028', 'ESTIMATED_DROPOFF_TIME_END': '1664640799132.91', 'ESTIMATED_DROPOFF_TIME_START': '1664639456942.2961', 'ESTIMATED_PICKUP_TIME': '1664637731268.648', 'ESTIMATED_PICKUP_TIME_END': '1664638024419.029', 'ESTIMATED_PICKUP_TIME_START': '1664637438118.267', 'PROVIDER': 'Uber'}]},
    {'prediction_response': [{'CONFIDENCE': '0.95', 'ESTIMATED_DROPOFF_TIME': '1664642137826.619', 'ESTIMATED_DROPOFF_TIME_END': '1664642842156.097', 'ESTIMATED_DROPOFF_TIME_START': '1664641433497.1409', 'ESTIMATED_PICKUP_TIME': '1664639622364.198', 'ESTIMATED_PICKUP_TIME_END': '1664639924583.373', 'ESTIMATED_PICKUP_TIME_START': '1664639320145.0232', 'PROVIDER': 'Uber'}]}
]

期望输出

CONFIDENCEESTIMATED_DROPOFF_TIMEESTIMATED_DROPOFF_TIME_END
0.951664640128037.60281664640799132.91
0.951664642137826.6191664642842156.097

已尝试方法

  • pd.DataFrame.from_dict(x)
  • pd.DataFrame.from_dict(x).T
    上述方法未得到预期结果,生成的DataFrame会将prediction_response作为列,内部仍嵌套列表结构。

正确实现方法

需要先提取嵌套结构中的有效数据行,再构建DataFrame。

代码示例

import pandas as pd

input_data = [
    {'prediction_response': [{'CONFIDENCE': '0.95', 'ESTIMATED_DROPOFF_TIME': '1664640128037.6028', 'ESTIMATED_DROPOFF_TIME_END': '1664640799132.91', 'ESTIMATED_DROPOFF_TIME_START': '1664639456942.2961', 'ESTIMATED_PICKUP_TIME': '1664637731268.648', 'ESTIMATED_PICKUP_TIME_END': '1664638024419.029', 'ESTIMATED_PICKUP_TIME_START': '1664637438118.267', 'PROVIDER': 'Uber'}]},
    {'prediction_response': [{'CONFIDENCE': '0.95', 'ESTIMATED_DROPOFF_TIME': '1664642137826.619', 'ESTIMATED_DROPOFF_TIME_END': '1664642842156.097', 'ESTIMATED_DROPOFF_TIME_START': '1664641433497.1409', 'ESTIMATED_PICKUP_TIME': '1664639622364.198', 'ESTIMATED_PICKUP_TIME_END': '1664639924583.373', 'ESTIMATED_PICKUP_TIME_START': '1664639320145.0232', 'PROVIDER': 'Uber'}]}
]

# 提取每条数据中的有效字典
data_rows = [item['prediction_response'][0] for item in input_data]
# 创建DataFrame
df = pd.DataFrame(data_rows)
# 筛选需要的列
df = df[['CONFIDENCE', 'ESTIMATED_DROPOFF_TIME', 'ESTIMATED_DROPOFF_TIME_END']]

# 输出成指定格式
print(df.to_markdown(index=False))

步骤说明

  1. 提取有效数据:通过列表推导式遍历输入列表,取出每个字典中prediction_response列表里的唯一字典元素,将这些元素整理成一个新列表。
  2. 构建DataFrame:用整理后的列表直接创建DataFrame,此时每行对应一条完整数据。
  3. 筛选列:如果只需要部分列,通过列名列表筛选即可得到期望格式。

内容的提问来源于stack exchange,提问作者lifo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:20:28