Я пытаюсь лучше понять групповые действия панд.Использование операций группы pandas
В качестве примера предположим, что у меня есть dataframe, в котором есть список наборов, играемых в теннисных матчах.
tennis_sets = pd.DataFrame.from_items([
('date', ['27/05/13', '27/05/13', '28/05/13', '28/05/13',
'28/05/13', '29/05/13', '29/05/13']),
('player_A', [6, 6, 2, 6, 7, 6, 6]),
('player_B', [4, 3, 6, 7, 6, 1, 0])
])
Результирующее в
date player_A player_B
0 27/05/13 6 4
1 27/05/13 6 3
2 28/05/13 2 6
3 28/05/13 6 7
4 28/05/13 7 6
5 29/05/13 6 1
6 29/05/13 6 0
Я хотел бы, чтобы определить общий балл за каждый матч играли на данный день. Это должно выглядеть как
date player_A player_B
0 27/05/13 2 0
1 28/05/13 1 2
2 29/05/13 2 0
Таким образом, я мог бы сделать это путем создания нового Numpy массива и итерации следующим образом:
matches = tennis_sets.groupby('date')
scores = np.zeros((len(matches),2))
for i, (_, match) in enumerate(matches):
a, b = match.player_A, match.player_B
scores[i] = np.c_[sum(a>b), sum(b>a)]
Я мог бы затем повторно этот новый забивает массив дат. Однако маловероятно, что это предпочтительный способ делать вещи.
Чтобы создать новый фреймворк данных с каждой оценкой даты и матча, как указано выше, есть ли лучший способ добиться этого, используя pandas 'api?