如何使用嵌套字典“展平”列表?

问题描述 投票:0回答:1

我正在使用带有嵌套列表和嵌套字典的列表和字典。我想将它们压平成一个数据框。

我想做的大学作业是创建一个有关橄榄球比赛中球员统计数据的数据框。我正在寻找一些易于重复的代码,当我为 N 个匹配调用 api 时,我可以使用它们来增长数据帧或列表。

我有:

  • 两个包含嵌套字典的列表,格式相同。一支是客队,一支是主队。两者都是球员名单及其表现统计数据。
  • 具有一组值的字典,其中包含匹配的数据

我想要:

  1. “展平”列表中的嵌套字典,以拥有一个包含所有数据的列表,并将“主场”或“客场”作为值添加到相关团队
  2. 合并两个扁平列表
  3. 创建一个数据框,其中每一行都是列表条目之一。
  4. 将单数字典添加到每一行。

理想情况下,我想要一种有效的方法来使用“优雅”的代码来实现这一目标。我尝试过(循环失败):

   pd.json_normalize(results['home']['teamsheet'], sep = '_')

这对于两个团队的团队表都很有效。另外我想做的是将相同的匹配数据添加到 DF 中的每一行。

我想最终得到这样的结果,但比赛中每个玩家一行,并且此数据超过许多(250+)场比赛:

enter image description here

当我为 x 提供一个值时,这才起作用。我一直无法找出循环。也许循环不是我需要的,但这似乎是可行的方法。

我的数据:

  • 目标df:

    df = [['id', 'comp_id', 'comp_name', 'season', 'status', 'match_minute', 'venue', 'game_week', 'home_team', 'away_team',
            'home_id', 'away_id', 'date', 'home_score', 'away_score', 'home_tries', 'away_tries', 'home_conversions', 'away_conversions',
            'home_penalties', 'away_penalties', 'home_drop_goals', 'away_drop_goals', 'round_id', 'stage', 'updated', 'player_id',
            'name', 'position', 'substitute', 'tries', 'tackles', 'missed_conversion_goals', 'dominant_tackles', 'penalties_conceded',
            'rucks_won', 'tackle_success', 'defenders_beaten', 'offload', 'drop_goals_converted', 'runs', 'metres', 'missed_penalty_goals',
            'points', 'conversion_goals', 'try_assists', 'drop_goal_missed', 'lineouts_won', 'missed_tackles', 'penalty_goals',
            'passes', 'bad_passes', 'turnovers_conceded', 'rucks_lost', 'clean_breaks', 'team']]
    df = pd.DataFrame(df)
    df.columns = df.iloc[0]
    df = df[1:]
    
  • 匹配数据:

    {'id': 3195835,
     'comp_id': 2142,
     'comp_name': 'Super Rugby Aotearoa',
     'season': '2020',
     'status': 'Result',
     'match_minute': 80,
     'venue': 'Orangetheory Stadium',
     'game_week': 9,
     'home_team': 'Crusaders',
     'away_team': 'Highlanders',
     'home_id': 305,
     'away_id': 302,
     'date': '2020-08-09T03:35:00+00:00',
     'home_score': 32,
     'away_score': 22,
     'home_tries': 4,
     'away_tries': 3,
     'home_conversions': 3,
     'away_conversions': 2,
     'home_penalties': 2,
     'away_penalties': 1,
     'home_drop_goals': 0,
     'away_drop_goals': 0,
     'round_id': 9,
     'stage': 'Regular Season',
     'updated': '2024-02-09T16:05:35+00:00',
     'player_id': 156702,
     'name': 'Sevu Reece',
     'position': 14,
     'substitute': False,
     'tries': '0',
     'tackles': '4',
     'missed_conversion_goals': '0',
     'dominant_tackles': '0',
     'penalties_conceded': '0',
     'rucks_won': '0',
     'tackle_success': '0.57',
     'defenders_beaten': '8',
     'offload': '1',
     'drop_goals_converted': '0',
     'runs': '10',
     'metres': '104',
     'missed_penalty_goals': '0',
     'points': '0',
     'conversion_goals': '0',
     'try_assists': '0',
     'drop_goal_missed': '0',
     'lineouts_won': '1',
     'missed_tackles': '3',
     'penalty_goals': '0',
     'passes': '6',
     'bad_passes': '0',
     'turnovers_conceded': '0',
     'rucks_lost': '0',
     'clean_breaks': '2',
     'team': 'home'}
    
  • 球队数据(客队数据或多或少相同)

    [{'player_id': 168972,
      'name': 'Will Jordan',
      'position': 15,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '3',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '1.00',
       'defenders_beaten': '3',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '14',
       'metres': '118',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '2',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '0',
       'penalty_goals': '0',
       'passes': '10',
       'bad_passes': '1',
       'turnovers_conceded': '3',
       'rucks_lost': '0',
       'clean_breaks': '2'}},
     {'player_id': 156702,
      'name': 'Sevu Reece',
      'position': 14,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '4',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '0.57',
       'defenders_beaten': '8',
       'offload': '1',
       'drop_goals_converted': '0',
       'runs': '10',
       'metres': '104',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '1',
       'missed_tackles': '3',
       'penalty_goals': '0',
       'passes': '6',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '2'}},
     {'player_id': 168960,
      'name': 'Braydon Ennor',
      'position': 13,
      'substitute': False,
      'match_stats': {'tries': '1',
       'tackles': '9',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '0.82',
       'defenders_beaten': '3',
       'offload': '1',
       'drop_goals_converted': '0',
       'runs': '8',
       'metres': '32',
       'missed_penalty_goals': '0',
       'points': '5',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '2',
       'penalty_goals': '0',
       'passes': '2',
       'bad_passes': '0',
       'turnovers_conceded': '2',
       'rucks_lost': '0',
       'clean_breaks': '3'}},
     {'player_id': 133770,
      'name': 'Jack Goodhue',
      'position': 12,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '10',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '1',
       'rucks_won': '0',
       'tackle_success': '0.77',
       'defenders_beaten': '3',
       'offload': '2',
       'drop_goals_converted': '0',
       'runs': '13',
       'metres': '49',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '3',
       'penalty_goals': '0',
       'passes': '15',
       'bad_passes': '0',
       'turnovers_conceded': '2',
       'rucks_lost': '0',
       'clean_breaks': '2'}},
     {'player_id': 140028,
      'name': 'George Bridge',
      'position': 11,
      'substitute': False,
      'match_stats': {'tries': '2',
       'tackles': '5',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '1.00',
       'defenders_beaten': '2',
       'offload': '1',
       'drop_goals_converted': '0',
       'runs': '9',
       'metres': '43',
       'missed_penalty_goals': '0',
       'points': '10',
       'conversion_goals': '0',
       'try_assists': '1',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '0',
       'penalty_goals': '0',
       'passes': '4',
       'bad_passes': '0',
       'turnovers_conceded': '2',
       'rucks_lost': '0',
       'clean_breaks': '3'}},
     {'player_id': 126474,
      'name': "Richie Mo'unga",
      'position': 10,
      'substitute': False,
      'match_stats': {'tries': '1',
       'tackles': '9',
       'missed_conversion_goals': '1',
       'dominant_tackles': '0',
       'penalties_conceded': '1',
       'rucks_won': '0',
       'tackle_success': '0.82',
       'defenders_beaten': '1',
       'offload': '2',
       'drop_goals_converted': '0',
       'runs': '12',
       'metres': '94',
       'missed_penalty_goals': '0',
       'points': '17',
       'conversion_goals': '3',
       'try_assists': '1',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '2',
       'penalty_goals': '2',
       'passes': '28',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '3'}},
     {'player_id': 118824,
      'name': 'Bryn Hall',
      'position': 9,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '1',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '1',
       'rucks_won': '0',
       'tackle_success': '0.33',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '7',
       'metres': '34',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '2',
       'penalty_goals': '0',
       'passes': '43',
       'bad_passes': '0',
       'turnovers_conceded': '1',
       'rucks_lost': '0',
       'clean_breaks': '3'}},
     {'player_id': 115806,
      'name': 'Joe Moody',
      'position': 1,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '4',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '1.00',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '1',
       'metres': '2',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '0',
       'penalty_goals': '0',
       'passes': '0',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 112860,
      'name': 'Codie Taylor',
      'position': 2,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '10',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '1',
       'rucks_won': '0',
       'tackle_success': '1.00',
       'defenders_beaten': '1',
       'offload': '2',
       'drop_goals_converted': '0',
       'runs': '9',
       'metres': '68',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '7',
       'missed_tackles': '0',
       'penalty_goals': '0',
       'passes': '7',
       'bad_passes': '0',
       'turnovers_conceded': '1',
       'rucks_lost': '0',
       'clean_breaks': '2'}},
     {'player_id': 132000,
      'name': 'Michael Alaalatoa',
      'position': 3,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '8',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '1',
       'rucks_won': '0',
       'tackle_success': '0.80',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '4',
       'metres': '6',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '2',
       'penalty_goals': '0',
       'passes': '1',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 62526,
      'name': 'Sam Whitelock',
      'position': 4,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '10',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '0.91',
       'defenders_beaten': '0',
       'offload': '2',
       'drop_goals_converted': '0',
       'runs': '4',
       'metres': '2',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '1',
       'penalty_goals': '0',
       'passes': '6',
       'bad_passes': '1',
       'turnovers_conceded': '1',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 149664,
      'name': 'Quinten Strange',
      'position': 5,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '3',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '3',
       'rucks_won': '0',
       'tackle_success': '0.50',
       'defenders_beaten': '1',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '4',
       'metres': '6',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '3',
       'penalty_goals': '0',
       'passes': '0',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 130416,
      'name': 'Tom Sanders',
      'position': 6,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '5',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '1',
       'rucks_won': '0',
       'tackle_success': '0.71',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '3',
       'metres': '0',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '2',
       'penalty_goals': '0',
       'passes': '0',
       'bad_passes': '0',
       'turnovers_conceded': '1',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 165000,
      'name': 'Tom Christie',
      'position': 7,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '13',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '1',
       'rucks_won': '0',
       'tackle_success': '0.87',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '7',
       'metres': '15',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '2',
       'penalty_goals': '0',
       'passes': '3',
       'bad_passes': '0',
       'turnovers_conceded': '1',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 126444,
      'name': 'Whetu Douglas',
      'position': 8,
      'substitute': False,
      'match_stats': {'tries': '0',
       'tackles': '10',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '1',
       'rucks_won': '0',
       'tackle_success': '0.83',
       'defenders_beaten': '1',
       'offload': '3',
       'drop_goals_converted': '0',
       'runs': '15',
       'metres': '23',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '2',
       'penalty_goals': '0',
       'passes': '7',
       'bad_passes': '1',
       'turnovers_conceded': '2',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 157056,
      'name': 'Andrew Makalio',
      'position': 16,
      'substitute': True,
      'match_stats': {'tries': '0',
       'tackles': '4',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '1',
       'rucks_won': '0',
       'tackle_success': '0.67',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '2',
       'metres': '6',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '6',
       'missed_tackles': '2',
       'penalty_goals': '0',
       'passes': '0',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 134226,
      'name': 'George Bower',
      'position': 17,
      'substitute': True,
      'match_stats': {'tries': '0',
       'tackles': '8',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '0.62',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '6',
       'metres': '5',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '5',
       'penalty_goals': '0',
       'passes': '2',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 147540,
      'name': 'Oli Jager',
      'position': 18,
      'substitute': True,
      'match_stats': {'tries': '0',
       'tackles': '0',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '0.00',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '0',
       'metres': '0',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '0',
       'penalty_goals': '0',
       'passes': '0',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 62514,
      'name': 'Luke Romano',
      'position': 19,
      'substitute': True,
      'match_stats': {'tries': '0',
       'tackles': '4',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '1.00',
       'defenders_beaten': '0',
       'offload': '1',
       'drop_goals_converted': '0',
       'runs': '3',
       'metres': '6',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '0',
       'penalty_goals': '0',
       'passes': '1',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 175506,
      'name': 'Sione Havili',
      'position': 20,
      'substitute': True,
      'match_stats': {'tries': '0',
       'tackles': '2',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '0.67',
       'defenders_beaten': '2',
       'offload': '1',
       'drop_goals_converted': '0',
       'runs': '4',
       'metres': '30',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '1',
       'penalty_goals': '0',
       'passes': '1',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '1'}},
     {'player_id': 126342,
      'name': 'Mitchell Drummond',
      'position': 21,
      'substitute': True,
      'match_stats': {'tries': '0',
       'tackles': '2',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '1.00',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '3',
       'metres': '5',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '0',
       'penalty_goals': '0',
       'passes': '32',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 173526,
      'name': 'Brett Cameron',
      'position': 22,
      'substitute': True,
      'match_stats': {'tries': '0',
       'tackles': '0',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '0.00',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '0',
       'metres': '0',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '0',
       'penalty_goals': '0',
       'passes': '0',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}},
     {'player_id': 184710,
      'name': "Leicester Fainga'anuku",
      'position': 23,
      'substitute': True,
      'match_stats': {'tries': '0',
       'tackles': '1',
       'missed_conversion_goals': '0',
       'dominant_tackles': '0',
       'penalties_conceded': '0',
       'rucks_won': '0',
       'tackle_success': '1.00',
       'defenders_beaten': '0',
       'offload': '0',
       'drop_goals_converted': '0',
       'runs': '0',
       'metres': '0',
       'missed_penalty_goals': '0',
       'points': '0',
       'conversion_goals': '0',
       'try_assists': '0',
       'drop_goal_missed': '0',
       'lineouts_won': '0',
       'missed_tackles': '0',
       'penalty_goals': '0',
       'passes': '0',
       'bad_passes': '0',
       'turnovers_conceded': '0',
       'rucks_lost': '0',
       'clean_breaks': '0'}}]
    
python pandas
1个回答
0
投票

我明白了:

  1. 将“匹配”字典转换为列表
resultList = list(results['match'].items())
  1. 将该列表附加到团队表中的每个列表中
for i in results['home']['teamsheet']:
    i.update(resultList)
  1. 使用 json_normalize
df = pd.json_normalize(results['home']['teamsheet'], sep = '_')
  1. 连接数据帧

完成。

干杯!希望这对处于我的情况的其他人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.