csv 基于pandas中其他列的条件

kse8i1jr  于 2023-05-26  发布在  其他
关注(0)|答案(1)|浏览(136)

这是我table
| 玩家|团队|奥普|wl_g|游戏ID|匹配ID|
| - -----|- -----|- -----|- -----|- -----|- -----|
| 拉兹|齐塔|DRX|失去|119512|一八四五六|
| TENN|齐塔|DRX|失去|119512|一八四五六|
| 马高|DRX|齐塔|赢|119512|一八四五六|
| Foxy9| DRX|齐塔|赢|119512|一八四五六|
| 拉兹|齐塔|DRX|赢|119513|一八四五六|
| TENN|齐塔|DRX|赢|119513|一八四五六|
| 马高|DRX|齐塔|失去|119513|一八四五六|
| Foxy9| DRX|齐塔|失去|119513|一八四五六|
| 拉兹|齐塔|DRX|失去|一一九五一四|一八四五六|
| TENN|齐塔|DRX|失去|一一九五一四|一八四五六|
| 马高|DRX|齐塔|赢|一一九五一四|一八四五六|
| Foxy9| DRX|齐塔|赢|一一九五一四|一八四五六|
并且我需要基于在match_id上具有相同的每个值的wl_g列来制作列,当wl_g列上的win = 2时,我期望获得新列wl_s的值(也称为每个match_id的赢输),等于wl_s列上的值win。这是我想要的table
| 玩家|团队|奥普|wl_g|游戏ID|匹配ID| wl_s|
| - -----|- -----|- -----|- -----|- -----|- -----|- -----|
| 拉兹|齐塔|DRX|失去|119512|一八四五六|失去|
| TENN|齐塔|DRX|失去|119512|一八四五六|失去|
| 马高|DRX|齐塔|赢|119512|一八四五六|赢|
| Foxy9| DRX|齐塔|赢|119512|一八四五六|赢|
| 拉兹|齐塔|DRX|赢|119513|一八四五六|失去|
| TENN|齐塔|DRX|赢|119513|一八四五六|失去|
| 马高|DRX|齐塔|失去|119513|一八四五六|赢|
| Foxy9| DRX|齐塔|失去|119513|一八四五六|赢|
| 拉兹|齐塔|DRX|赢|一一九五一四|一八四五六|失去|
| TENN|齐塔|DRX|赢|一一九五一四|一八四五六|失去|
| 马高|DRX|齐塔|失去|一一九五一四|一八四五六|赢|
| Foxy9| DRX|齐塔|失去|一一九五一四|一八四五六|赢|

txu3uszq

txu3uszq1#

基于“wl_g”和“match_id”添加“wl_s”列

data = {
    "player": ["Laz", "TENNN", "MaKo", "Foxy9", "Laz", "TENNN", "MaKo", "Foxy9", "Laz", "TENNN", "MaKo", "Foxy9"],
    "team": ["ZETA", "ZETA", "DRX", "DRX", "ZETA", "ZETA", "DRX", "DRX", "ZETA", "ZETA", "DRX", "DRX"],
    "opp": ["DRX", "DRX", "ZETA", "ZETA", "DRX", "DRX", "ZETA", "ZETA", "DRX", "DRX", "ZETA", "ZETA"],
    "wl_g": ["lose", "lose", "win", "win", "win", "win", "lose", "lose", "lose", "lose", "win", "win"],
    "game_id": [119512, 119512, 119512, 119512, 119513, 119513, 119513, 119513, 119514, 119514, 119514, 119514],
    "match_id": [184456, 184456, 184456, 184456, 184456, 184456, 184456, 184456, 184456, 184456, 184456, 184456]
}

df = pd.DataFrame(data)

df["wl_s"] = df.groupby("match_id")["wl_g"].transform(lambda x: "win" if (x == "win").any() else "lose")

# Print the resulting DataFrame
print(df)

相关问题