我有一個足球比賽的資料框,但每場比賽/行的比賽(錦標賽)都在單獨的行中:
match date country
Italy Serie A NaN NaN
team1 vs team2 2022-05-30 Italy
team6 vs team2 2022-05-29 Italy
Germany Bun. NaN NaN
team3 vs team4 2022-06-01 Germany
team9 vs team10 2022-06-01 Germany
我想將競爭添加到每個特定行:如下所示:
competition match date country
Italy Serie A team1 vs team2 2022-05-30 Italy
Italy Serie A team6 vs team2 2022-05-29 Italy
Germany Bund team3 vs team4 2022-06-01 Germany
Germany Bund team9 vs team10 2022-06-01 Germany
uj5u.com熱心網友回復:
您可以使用具有 NaN(例如日期)的列來識別具有競爭的行并將其用于ffill資料,然后對行進行切片:
mask = df['date'].isna()
df2 = (df
.assign(competition=df['match'].where(mask).ffill())
.loc[~mask]
)
輸出:
match date country competition
1 team1 vs team2 2022-05-30 Italy Italy Serie A
2 team6 vs team2 2022-05-29 Italy Italy Serie A
4 team3 vs team4 2022-06-01 Germany Germany Bun.
5 team9 vs team10 2022-06-01 Germany Germany Bun.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/479708.html
上一篇:帶有agg()nth()和/或iloc()的PythonPandasgroupby
下一篇:使用剪輯設定熊貓列的最小值
