我试图更好地了解熊猫的集团运作。
例如,假设我有一个数据框,其中包含网球比赛中的套牌列表。
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 来实现?