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

在Pandas中基于match_id与wl_g列生成wl_s列的实现方案

Pandas实现单场比赛胜负列(wl_s)的生成方法

需求说明

基于现有数据中的wl_g列,按match_id分组生成新列wl_s:同一match_id下,若某队伍的wl_g中"win"的次数达到2次及以上,则该队伍所有行的wl_s值为"win",否则为"lose"。

原始数据

playerteamoppwl_ggame_idmatch_id
LazZETADRXlose119512184456
TENNNZETADRXlose119512184456
MaKoDRXZETAwin119512184456
Foxy9DRXZETAwin119512184456
LazZETADRXwin119513184456
TENNNZETADRXwin119513184456
MaKoDRXZETAlose119513184456
Foxy9DRXZETAlose119513184456
LazZETADRXlose119514184456
TENNNZETADRXlose119514184456
MaKoDRXZETAwin119514184456
Foxy9DRXZETAwin119514184456

实现代码

import pandas as pd

# 构造示例数据(如果已有数据框可跳过此步骤)
data = [
    ["Laz", "ZETA", "DRX", "lose", 119512, 184456],
    ["TENNN", "ZETA", "DRX", "lose", 119512, 184456],
    ["MaKo", "DRX", "ZETA", "win", 119512, 184456],
    ["Foxy9", "DRX", "ZETA", "win", 119512, 184456],
    ["Laz", "ZETA", "DRX", "win", 119513, 184456],
    ["TENNN", "ZETA", "DRX", "win", 119513, 184456],
    ["MaKo", "DRX", "ZETA", "lose", 119513, 184456],
    ["Foxy9", "DRX", "ZETA", "lose", 119513, 184456],
    ["Laz", "ZETA", "DRX", "lose", 119514, 184456],
    ["TENNN", "ZETA", "DRX", "lose", 119514, 184456],
    ["MaKo", "DRX", "ZETA", "win", 119514, 184456],
    ["Foxy9", "DRX", "ZETA", "win", 119514, 184456]
]
df = pd.DataFrame(data, columns=["player", "team", "opp", "wl_g", "game_id", "match_id"])

# 1. 统计每个match_id+team组合的胜场次数
win_counts = df.groupby(["match_id", "team"])["wl_g"].apply(lambda x: (x == "win").sum()).reset_index(name="win_times")

# 2. 将胜场数合并回原数据框
df = df.merge(win_counts, on=["match_id", "team"], how="left")

# 3. 根据胜场数生成wl_s列
df["wl_s"] = df["win_times"].map(lambda x: "win" if x >= 2 else "lose")

# 可选:删除中间计算列win_times
df = df.drop("win_times", axis=1)

# 查看结果
print(df)

代码说明

  1. 分组统计胜场:通过groupby(["match_id", "team"])精准定位每个单场比赛中的队伍,用(x == "win").sum()统计该队伍的胜局数量。
  2. 合并数据:使用merge将胜场统计结果关联回原数据,保证每一行都能获取到所属队伍在对应比赛中的胜场数。
  3. 生成目标列:根据胜场数是否≥2,为wl_s列赋值"win"或"lose",最后可按需删除中间计算列win_times。

最终结果

playerteamoppwl_ggame_idmatch_idwl_s
LazZETADRXlose119512184456lose
TENNNZETADRXlose119512184456lose
MaKoDRXZETAwin119512184456win
Foxy9DRXZETAwin119512184456win
LazZETADRXwin119513184456lose
TENNNZETADRXwin119513184456lose
MaKoDRXZETAlose119513184456win
Foxy9DRXZETAlose119513184456win
LazZETADRXlose119514184456lose
TENNNZETADRXlose119514184456lose
MaKoDRXZETAwin119514184456win
Foxy9DRXZETAwin119514184456win

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:32:01