我正在嘗試修復這個 NBA 比賽詳細資訊表。表中每兩行都是同一個游戲(GAME_ID)。我希望兩行排成一排,這樣主隊和客隊的資料就會在同一排。

uj5u.com熱心網友回復:
您可以使用 set_index 和 unstack,然后展平標題。
這是我為棒球比賽做的一些代碼,我必須創建自己的游戲編號:
# source datafrome
year = '2020'
df = pd.read_excel('https://www.sportsbookreviewsonline.com/scoresoddsarchives/mlb/mlb odds 2011.xlsx')
df = df.dropna(how="all").copy()
df["Date"] = df["Date"].astype(int) # To handle excel float type in some years
df["Date"] = pd.to_datetime(
f"{year}" df["Date"].astype(str).str.rjust(4, "0"), format="%Y%m%d"
)
cols = ["Date", "VH", "Team", "Final", "Close"]
df = df[cols]
df = df[df["VH"].isin(["V", "H"])]
# Flatten teams lines in to games
df["Game No"] = (df["VH"] == "V").cumsum()
df = df.set_index(["Game No", "Date", "VH"]).unstack()
df.columns = df.columns.map("_".join)
df = df.reset_index()
輸出:
Game No Date Team_H Team_V Final_H Final_V Close_H Close_V
0 1 2020-03-31 WAS ATL 0 2 119 -139
1 2 2020-03-31 CIN MIL 7 6 -110 -110
2 3 2020-03-31 STL SDG 3 5 -178 158
3 4 2020-03-31 LOS SFO 2 1 -114 -106
4 5 2020-03-31 NYY DET 6 3 -152 132
... ... ... ... ... ... ... ... ...
2462 2463 2020-10-22 TEX STL 7 16 -183 163
2463 2464 2020-10-23 TEX STL 4 0 -171 151
2464 2465 2020-10-24 TEX STL 4 2 -130 110
2465 2466 2020-10-27 STL TEX 10 9 -114 -106
2466 2467 2020-10-28 STL TEX 6 2 -130 110
[2467 rows x 8 columns]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449887.html
