想象我有一个存储了个别人看过的书和他们的得分为他们数据帧:如何计算,在大熊猫共用一个唯一的字段行
df = pd.DataFrame({
'person' : [1,1,2,2,3,3],
'book' : ['dracula', 'frankenstein', 'dracula', 'frankenstein', 'dracula', 'rebecca'],
'score':[10,11,12,13,14,15]
})
df
book person score
0 dracula 1 10
1 frankenstein 1 11
2 dracula 2 12
3 frankenstein 2 13
4 dracula 3 14
5 rebecca 3 15
我想要得到的是一个数据帧的表现对于每一本书有多少人已经读过它们两个,即期望的结果如下所示:
dracula frankensten rebecca
dracula 3 2 1
frankenstein 2 2 0
rebecca 1 0 1
Ie有两个人同时阅读了dracula
和,一个人同时阅读了dracula
和rebecca
等。我不在乎分数。
我有一种感觉,这与枢轴/堆栈/斯塔克有关,但无法弄清楚,有什么建议吗?
神奇,谢谢你提供了两个解决方案 - 我鳍d'groupby'更加熟悉,但很显然,这正是'crosstab'用于解决问题的类型,所以我会努力学习它。 – mojones
谢谢你的接受!美好的一天! – jezrael