Существует два кадра данных с идентификатором игроков и всеми очками, которые они набрали за два дня турнира (понедельник и пятница). Я хочу получить окончательный кадр данных в следующем формате.
final =
match_monday points match_friday points
0 player#0005 13.0 player#0005 19.0
1 player#0067 26.0 player#0067 0.0
2 player#0098 0.0 player#0098 23.0
4 player#0104 24.0 player#0104 0.0
5 player#0211 14.0 player#0211 0.0
6 player#0227 17.0 player#0227 21.0
Отправной точкой являются эти два кадра данных:
df1 =
match_monday points
0 player#0227 17.0
1 player#0005 13.0
2 player#0104 24.0
3 player#0067 26.0
4 player#0211 14.0
df2 =
match_friday points
0 player#0227 21.0
1 player#0098 23.0
2 player#0005 19.0
#Dataframes scripts:
df1 = pd.DataFrame([['player#0227',17.0],['player#0005',13.0],['player#0104',24.0],['player#0067',26.0],['player#0211',14.0]],columns=['match_monday','points'])
df2 = pd.DataFrame([['player#0227',21.0],['player#0098',23.0],['player#0005',19.0]],columns=['match_friday','points'])
Я объединил два кадра данных и понял, чтоотсюда потребуется много шагов, чтобы добраться до нужного формата. Результат слияния:
match_monday points match_friday
0 player#0227 17.0 NaN
1 player#0005 13.0 NaN
2 player#0104 24.0 NaN
3 player#0067 26.0 NaN
4 player#0211 14.0 NaN
5 NaN 21.0 player#0227
6 NaN 23.0 player#0098
7 NaN 19.0 player#0005
Я пытался приказать match_friday, с этим предложением, вставить цикл for, когда я понял, что мой подход не был так хорош.
matchMon = df2[df2.match_friday.isin(df1.match_monday)]
print(machMon)
match_friday points
0 player#0227 21.0
2 player#0005 19.0