假设我有一个数据框,存储每个人读过的书和他们的分数:
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
也就是说,有两个人同时读过dracula
和frankenstein
,一个人同时读过dracula
和rebecca
,等等。我不在乎分数。你知道吗
我觉得这和pivot/stack/unstack有关,但我想不出来,有什么建议吗?你知道吗
另一个带有^{} 的解决方案:
或含有^{} 和^{} 的溶液:
可以构造透视表并将其与转置相乘:
相关问题 更多 >
编程相关推荐