DataFrame列之间的公共元素

时间:2016-07-18 21:05:21

标签: python pandas matrix dataframe

我有Pandas DataFrame,如下所示:

MemberID    A    B    C    D
1           0.3  0.5 0.1   0
2           0    0.2 0.9   0.3
3           0.4  0.2 0.5   0.3
4           0.1  0   0     0.7

我想有另一个矩阵,它给出了除MemberID之外的每列交集的非零元素数。

例如,列AB的交集将为2(因为MemberID 1和3具有A和{{1}的非零值}),BA的交集也是2(因为C 1和3具有MemberIDA的非零值。

最终矩阵如下所示:

C

我们可以看到,它应该是一个对称矩阵,类似于相关矩阵,但不是相关矩阵。

任意两列的交点= A B C D A 3 2 2 2 B 2 3 3 2 C 2 3 3 2 D 2 2 2 3 的#在两列中都包含非零值。

我会在这里展示一些初始代码,但我觉得有一个简单的功能可以完成我不知道的任务。

以下是创建MemberID的代码:

DataFrame

任何指针都将不胜感激。 TIA。

1 个答案:

答案 0 :(得分:4)

这应该是它:

z = (df != 0) * 1
z.T.dot(z)

enter image description here