我的数据看起来像这样
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