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

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

解决嵌套字典列表转Pandas DataFrame的问题

你的转换方式仅展开了最外层字典,嵌套的teams列表和stats列表并未被拆解。要得到期望的扁平结构DataFrame,需要逐层处理嵌套数据:

完整代码实现

import pandas as pd

# 初始化空列表存储处理后的数据
processed_data = []

# 遍历每一条游戏数据
for game in game_stats:
    game_id = game['id']
    # 遍历当前游戏下的每支队伍
    for team in game['teams']:
        # 复制队伍基础信息
        team_data = team.copy()
        # 将stats列表转为键值对字典,同时移除原stats字段
        stats_dict = {item['category']: int(item['stat']) for item in team_data.pop('stats')}
        # 关联游戏ID
        team_data['game_id'] = game_id
        # 合并基础信息与统计数据
        team_data.update(stats_dict)
        # 加入处理后列表
        processed_data.append(team_data)

# 转换为DataFrame
game_stats_df = pd.DataFrame(processed_data)

# 可选:调整列顺序匹配期望格式
target_columns = ['game_id', 'school', 'conference', 'homeAway', 'points', 'rushingTDs', 'passingTDs', 'kickingPoints', 'fumblesRecovered', 'firstDowns']
game_stats_df = game_stats_df[target_columns]

输出结果

运行后打印game_stats_df会得到:

game_id    school conference homeAway  points  rushingTDs  passingTDs  kickingPoints  fumblesRecovered  firstDowns
0  401282099      LSU        SEC     away      21           2           1              3                 0          22
1  401282099  Kentucky        SEC     home      42           3           4              0                 1          24

关键步骤说明

  • 遍历游戏数据时,为每支队伍绑定对应的game_id,保证数据关联关系
  • 将stats列表转换为字典,把嵌套的统计项直接展开为DataFrame的列
  • 用int()转换统计值的类型,避免字符串类型影响后续数值分析
  • 可选调整列顺序,让输出更贴合你的期望格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:46:04