我有一个数据框,我想做的基本上就是将获胜队和失败队在同一位置的得分制成表格。我尝试过添加 lambda 函数,但没有成功。我当前拥有的数据框是第一个,我想以第二个问题的形式创建一个数据集。谢谢。
GameId Team Home Score
1 Spirit 1 81
1 Rockers 0 66
2 Lightning 1 73
2 Flames 0 82
Game ID Home Team Away Team Home Score Away Score
1 Spirit Rockers 81 66
2 Lightning Flames 73 82
Run Code Online (Sandbox Code Playgroud)
尝试这个:
输入:
import pandas as pd
raw_df = pd.DataFrame({"GameId": [1, 1, 2, 2],
"Team": ["Spirit", "Rockets", "Lighting", "Flames"],
"Home": [1, 0, 1, 0],
"Score": [81, 66, 73, 82]})
print(raw_df)
Run Code Online (Sandbox Code Playgroud)
输出:
GameId Team Home Score
0 1 Spirit 1 81
1 1 Rockets 0 66
2 2 Lighting 1 73
3 2 Flames 0 82
Run Code Online (Sandbox Code Playgroud)
输入:
raw_df.loc[:, "Home"] = raw_df.Home.map({
1: "Home",
0: "Away"
})
result = raw_df.pivot_table(index=["GameId"],
columns=["Home"],
values=["Team", "Score"],
aggfunc={"Team": lambda team: " ".join(team.tolist()),
"Score": lambda score: score})
result = result.sort_index(axis="columns", level=[0, "Home"], ascending=False)
result.columns = [' '.join(reversed(col)) for col in result.columns]
print(result)
Run Code Online (Sandbox Code Playgroud)
输出:
Home Team Away Team Home Score Away Score
GameId
1 Spirit Rockets 81 66
2 Lighting Flames 73 82
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |