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

如何用Python为2022世界杯数据集计算球队赛前不败场次

解决方案:按球队统计赛前连续不败场次

核心逻辑

  1. 先按球队分组,再对每组内的比赛按日期升序排序(确保比赛时间线正确,避免原数据日期乱序导致统计错误)
  2. 对每个球队的比赛序列维护一个连续不败计数器:
    • 初始计数器设为0
    • 每场比赛的「期望输出」取当前计数器值
    • 若本场结果为「胜」或「平」,计数器加1
    • 若本场结果为「负」,计数器重置为0,且「期望输出」留空

代码实现(Python + Pandas)

假设你的数据集存储在DataFrame df 中,执行以下代码:

import pandas as pd

# 1. 转换日期格式并按球队+日期排序,修正原数据的日期乱序问题
df['日期'] = pd.to_datetime(df['日期'])
df = df.sort_values(by=['球队', '日期'], ascending=[True, True]).reset_index(drop=True)

# 2. 定义函数计算单支球队的连续不败场次
def calculate_unbeaten_streak(group):
    streak = 0
    result_list = []
    for res in group['比赛结果']:
        if res == '负':
            result_list.append('')
            streak = 0
        else:
            result_list.append(streak)
            streak += 1
    group['期望输出'] = result_list
    return group

# 3. 按球队分组应用统计逻辑
df = df.groupby('球队').apply(calculate_unbeaten_streak).reset_index(drop=True)

# 输出结果
print(df)

验证结果

运行后会得到符合预期的输出(原示例中UK的日期乱序会被自动修正):

日期球队比赛结果期望输出
2021-06-27NL负
2021-09-01NL胜0
2021-09-04NL胜1
2021-09-08NL胜2
2021-09-15NL平3
2021-09-18NL负4
2021-10-01NL胜0
2021-10-05NL胜1
2021-06-27UK负
2021-08-27UK负2
2021-08-31UK胜0
2021-09-04UK平1
2021-09-01NL胜0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:34:01