使用 Python 计算行是否包含这个和那个,然后制作结果的热图(不确定这是否是正确的术语)



我的数据看起来像这样

cat1     cat2    cat3    cat4
a      0        1       1      0 
b      1        0       0      0
c      0        0       1      1 
d      0        1       1      1

我想以这样的东西来评估类别之间的关系(热图是正确的术语吗?

cat1    cat2    cat3    cat4
cat1    1      0       0       0
cat2    0      2       2       1
cat3    0      2       3       2
cat4    0      1       2       2

所以我想我想做一些类似于计数的事情,如果包含 cat 1 和 cat 2,count 是否包含 cat 1 和 cat 3 等。

有没有一种简单的方法可以在 Python 中做到这一点?

通过转置DataFrame来使用matrix multiplication - dot

df = df.T.dot(df)
print (df)
cat1  cat2  cat3  cat4
cat1     1     0     0     0
cat2     0     2     2     1
cat3     0     2     3     2
cat4     0     1     2     2

查看numpy.inner

import numpy as np
pd.DataFrame(np.inner(df.T, df.T), 
index=df.columns,
columns=df.columns)
cat1  cat2  cat3  cat4
cat1     1     0     0     0
cat2     0     2     2     1
cat3     0     2     3     2
cat4     0     1     2     2

相关内容

最新更新