【问题标题】:How to count the same (identical) titles in a row如何连续计算相同(相同)的标题
【发布时间】:2021-04-20 05:58:16
【问题描述】:

大家好。 我正在尝试在字典列表中计算足球队的头衔。

prev_match_stats = ({'league_title': league_title,
                                 'match_date': match_date,
                                 'home_team': home_team,
                                 'score_ft': score_ft,
                                 'home_team_score_ft': home_team_score_ft,
                                 'away_team_score_ft': away_team_score_ft,
                                 'score_ht': score_ht,
                                 'corners': corners,
                                 'away_team': away_team})

列表中有 10 个(有时是 20 个)游戏的数据。 因此,列表中的 home_team - 看起来像: {团队 1,...},{团队 1,...},{团队 2,...},{团队 2,...},{团队 1,...},{团队 2,... .. }, {Team 2, ... }, {Team 2, ... }, {Team 2, ... }。

我想要一个如下所示的计数结果: 团队 1:2;第 2 队:2;第 1 队:1,第 2 队:4。

    for match in prev_match_stats:
        if '(N)' not in match['home_team'] and match['home_team'] == team1_name:
            

我被困住了。 我应该使用集合还是熊猫?以及如何做到这一点?

列表:

[{'league_title': 'VIE U19', 'match_date': '12/1/2021', 'home_team': 'Quang Nam U19', 'score_ft': '0-0', 'home_team_score_ft': '0', 'away_team_score_ft': '0', 'score_ht': '0-0', 'corners': '2-1', 'away_team': 'Hoang Anh Gia Lai U19'}, {'league_title': 'VIE U19', 'match_date': '10/1/2021', 'home_team': 'CLB TPHCM U19', 'score_ft': '0-3', 'home_team_score_ft': '0', 'away_team_score_ft': '3', 'score_ht': '0-0', 'corners': '2-10', 'away_team': 'Quang Nam U19'}, {'league_title': 'VIE U19', 'match_date': '8/6/2020', 'home_team': 'Quang Nam U19', 'score_ft': '0-4', 'home_team_score_ft': '0', 'away_team_score_ft': '4', 'score_ht': '0-1', 'corners': '1-1', 'away_team': 'Song Lam Nghe An U19'}, {'league_title': 'VIE U19', 'match_date': '5/6/2020', 'home_team': 'SHB Da Nang U19', 'score_ft': '3-1', 'home_team_score_ft': '3', 'away_team_score_ft': '1', 'score_ht': '2-0', 'corners': '2-5', 'away_team': 'Quang Nam U19'}, {'league_title': 'VIE U19', 'match_date': '3/6/2020', 'home_team': 'Huda Hue U19', 'score_ft': '0-2', 'home_team_score_ft': '0', 'away_team_score_ft': '2', 'score_ht': '0-2', 'corners': '3-6', 'away_team': 'Quang Nam U19'}, {'league_title': 'VIE U19', 'match_date': '1/6/2020', 'home_team': 'Quang Nam U19', 'score_ft': '1-3', 'home_team_score_ft': '1', 'away_team_score_ft': '3', 'score_ht': '0-2', 'corners': '4-1', 'away_team': 'Thanh Hoa U19'}, {'league_title': 'VIE U19', 'match_date': '10/3/2020', 'home_team': 'Song Lam Nghe An U19', 'score_ft': '1-0', 'home_team_score_ft': '1', 'away_team_score_ft': '0', 'score_ht': '0-0', 'corners': '', 'away_team': 'Quang Nam U19'}, {'league_title': 'VIE U19', 'match_date': '7/3/2020', 'home_team': 'Quang Nam U19', 'score_ft': '0-0', 'home_team_score_ft': '0', 'away_team_score_ft': '0', 'score_ht': '0-0', 'corners': '4-8', 'away_team': 'SHB Da Nang U19'}, {'league_title': 'VIE U19', 'match_date': '5/3/2020', 'home_team': 'Quang Nam U19', 'score_ft': '1-1', 'home_team_score_ft': '1', 'away_team_score_ft': '1', 'score_ht': '0-0', 'corners': '1-7', 'away_team': 'Huda Hue U19'}, {'league_title': 'VIE U19', 'match_date': '3/3/2020', 'home_team': 'Thanh Hoa U19', 'score_ft': '1-0', 'home_team_score_ft': '1', 'away_team_score_ft': '0', 'score_ht': '0-0', 'corners': '11-2', 'away_team': 'Quang Nam U19'}, {'league_title': 'INT CF', 'match_date': '24/2/2020', 'home_team': 'Quang Nam U19', 'score_ft': '2-1', 'home_team_score_ft': '2', 'away_team_score_ft': '1', 'score_ht': '1-1', 'corners': '2-2', 'away_team': 'Huda Hue U19'}, {'league_title': 'INT CF', 'match_date': '18/12/2019', 'home_team': 'Quang Nam U19', 'score_ft': '2-0', 'home_team_score_ft': '2', 'away_team_score_ft': '0', 'score_ht': '1-0', 'corners': '4-2', 'away_team': 'Khatoco Khanh Hoa U19'}]

【问题讨论】:

  • 词典列表在哪里? “Team 1”等与您包含的代码有何关系?
  • 我的错误。我正在添加列表

标签: python pandas collections count


【解决方案1】:

使用itertools.groupby:

>>> from itertools import groupby
>>> [{name: len(list(group))} for name, group in groupby(team['home_team'] for team in teams)]
[{'Quang Nam U19': 1}, {'CLB TPHCM U19': 1}, {'Quang Nam U19': 1}, {'SHB Da Nang U19': 1}, {'Huda Hue U19': 1}, {'Quang Nam U19': 1}, {'Song Lam Nghe An U19': 1}, {'Quang Nam U19': 2}, {'Thanh Hoa U19': 1}, {'Quang Nam U19': 2}]

【讨论】:

  • 差不多。但我正在尝试一个一个地计算一系列团队冠军。像“Quang Nam U19: 1; CLB TPHCM U19: 1; ...),如果“Quang Nam U19”将一个接一个地两次,那么“Quang Nam U19:2”。等等
  • 啊,你想要groupby。已更新。
  • 哦,谢谢!你统治!
猜你喜欢
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 2022-12-20
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多