使用Kaggle EPL数据集和
epl=df.dropna().reset_index(drop=True)
。
我正在尝试创建类似于此的热图:
季节 |主队 |客队 | FTHG(Fulltime HomeGoal) | FTAG(Fulltime AwayGoal) | FTR(全日制成绩)
给定的参考图像是 2000-01 赛季所以我希望交换季节以检索它相应的热图。
顶部的缩写名称也不是必需的,我可以将 x 轴名称标签放在底部并旋转 90 度。
df = pd.read_csv("results.csv", encoding="latin-1",
usecols=["Season", "HomeTeam", "AwayTeam", "FTHG", "FTAG", "FTR"])
df["FinalScore"] = df["FTHG"].astype(str).str.cat(df["FTAG"].astype(str), sep="-")
df = df[df["Season"].eq("2000-01")] #feel free to change the filter's value
dfp_vals = (df.pivot(index="HomeTeam", columns="AwayTeam", values="FinalScore")
.fillna("").rename_axis(index=None, columns="Home / Away"))
dfp_mask = df.pivot(index="HomeTeam", columns="AwayTeam", values="FTR").fillna("")
def heatmap(df):
d_map = {"H": f"background-color: #bbf3ff", # Home Win
"D": f"background-color: #ffffbb", # Draw
"A": f"background-color: #ffbbbb", # Away Win
"": f"background-color: #bbbbbb"}
return dfp_mask.replace(d_map)
dfp_vals.style.apply(heatmap, axis=None)
输出: