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

如何在Pandas中基于Player和Opponent条件生成Death列

实现思路与代码方案

核心需求是:为每行数据新增Death列,该列的值为当前行Opponent作为玩家时,对应当前行Player的击杀数(即匹配Player与Opponent互换后的行的Kill值)。

方案1:Python Pandas 实现

通过自合并的方式,将原表与重命名后的自身表进行匹配,直接获取对应Death值:

import pandas as pd

# 构造原始数据集
df = pd.DataFrame({
    'Player': ['dicey', 'OXY', 'Verno', 'dapr'],
    'Opponent': ['OXY', 'dicey', 'dapr', 'Verno'],
    'Kill': [4, 6, 5, 7]
})

# 自合并获取Death列
df = df.merge(
    # 重命名列,将Player与Opponent互换,Kill改为Death
    df.rename(columns={'Player': 'Opponent', 'Opponent': 'Player', 'Kill': 'Death'}),
    on=['Player', 'Opponent'],
    how='left'
)

# 输出结果
print(df)

执行后输出的结果即为目标表格:

PlayerOpponentKillDeath
diceyOXY46
OXYdicey64
Vernodapr57
daprVerno75

方案2:SQL 实现

通过表的自连接,匹配Player与Opponent互换的行,将对应行的Kill值作为Death:

假设数据表名为player_stats,执行以下SQL语句:

SELECT 
    t1.Player,
    t1.Opponent,
    t1.Kill,
    t2.Kill AS Death
FROM player_stats t1
INNER JOIN player_stats t2 
    ON t1.Player = t2.Opponent 
    AND t1.Opponent = t2.Player;

查询结果将直接返回包含Death列的目标数据。

内容的提问来源于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 14:12:46