【发布时间】:2015-10-02 15:01:58
【问题描述】:
我有一个 Pandas 数据框,其中包含每个锦标赛的运动结果如下(简化):
Tournament WinnerName LoserName
t1 A X
t1 B Y
t1 C Y
t2 A X
t2 B Y
t2 C Y
在字典中,我有关于每个锦标赛球员排名的信息:
Tournament Player Rank
t1 A 1
t1 B 7
t1 C 70
t2 A 11
t2 B 1
t2 C 100
现在我想知道每场比赛比赛获胜者在以下类别之一中排名的频率:a)在 1 到 10 之间,b)在 11 到 49 之间,c)大于49.
所以结果可能如下所示:
Tournament WinnerName LoserName Group
t1 A X a
t1 B Y a
t1 C Y c
t2 A X b
t2 B Y a
t2 C Y c
或者像这样:
Tournament WinnerName LoserName GroupA GroupB GroupC
t1 A X 1 0 0
t1 B Y 1 0 0
t1 C Y 0 0 1
t2 A X 0 1 0
t2 B Y 1 0 0
t2 C Y 0 0 1
之后,我可以轻松计算每列的出现次数。但目前我坚持实现两个给定结果之一。我知道它应该以某种方式与apply 或transform 一起工作,但不幸的是我没有确切的想法。
也许有更好的解决方案来实现这一点?
谢谢。
【问题讨论】:
-
我觉得
groupby和np.histogram在这里可能会有所帮助...
标签: python pandas transform apply lookup