我有一个 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
除外。
例如,列 A
和 B
的交集将为 2(因为 MemberID
1 和 3 对于 A
和 B
),A
和 C
的交集也将是 2(因为 MemberID
1 和 3 对于 A
和 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
可以看出,它应该是一个对称矩阵,类似于相关矩阵,但不是相关矩阵。
任意 2 列的交集 = # of MemberID
在两列中都具有非零值。
我会在这里展示一些初始代码,但我觉得会有一个我不知道的简单函数来完成这项任务。
下面是创建DataFrame
的代码:
df = pd.DataFrame([[0.3, 0.5, 0.1, 0],
[0, 0.2, 0.9, 0.3],
[ 0.4, 0.2, 0.5, 0.3],
[ 0.1, 0, 0, 0.7]],
columns=list('ABCD'))
任何指针将不胜感激。 TIA。
最佳答案
关于python - DataFrame 的给定列非零的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38445974/