熊猫:如何总结熊猫交叉表/频率矩阵

时间:2018-11-03 19:12:17

标签: python pandas matrix sparse-matrix

我想总结一个交叉表/频率矩阵的结果,该表查看具有相同会话的用户的频率,结果是4044行×4044列

UserID  10  50  30  2488  9416 23197            ... 
UserID                                                                                  
10      4   0   0   0   0   0   0   0   0   0   ... 0   0   0   0   0   0   0   0   0   0
50      0   48  2   9   4   0   0   0   0   0   ... 0   0   0   0   0   0   0   0   0   0
30      0   2   2   2   2   0   0   0   0   0   ... 0   0   0   0   0   0   0   0   0   0
2488    0   9   2   32  4   0   0   0   0   0   ... 0   0   0   0   0   0   0   0   0   0
9416    0   4   2   4   4   0   0   0   0   0   ... 0   0   0   0   0   0   0   0   

有没有一种方法可以对其进行汇总,以具有用户对用户的匹配数,例如:

UserID  UserID Occurance
10       50      2
30       2488    5
23197    10      3
30       50      1

1 个答案:

答案 0 :(得分:1)

解决方案:

  1. 创建一个布尔掩码,从起始矩阵中选择较高的三角形,非对角线值
  2. 将此蒙版(使用List)和原始矩阵(使用Collection)重塑为大小相等的列向量
  3. 使用布尔索引来挑选所需的行。

示例:

.reshape()