【问题标题】:How to create co-occurrence matrix from pandas two column?如何从熊猫两列创建共现矩阵?
【发布时间】:2021-04-23 02:02:11
【问题描述】:

我有一个小数据集,例如:

import pandas as pd
df = pd.DataFrame({'a': [1,2,3,4,5,6,7,8,9,10], 'b': [11,22,11,22,33,11,22,44,11,22]})
df

我想找出 a 列的 b 列值的共现。

我尝试了什么:

df_co = pd.get_dummies(a.a).groupby(a.b).apply(max)
df_co

但这不是一个共现矩阵。所以我也尝试了这个:

df_co.T.dot(df_co)

这给了我:

这是计算共现矩阵的正确方法吗?

【问题讨论】:

  • pd.crosstab(df['a'], df['b'])?

标签: python pandas numpy scipy


【解决方案1】:

您可以使用带有虚拟列的df.pivot 来表示count=1

df.assign(v=1).pivot('a','b').fillna(0)
      v               
b    11   22   33   44
a                     
1   1.0  0.0  0.0  0.0
2   0.0  1.0  0.0  0.0
3   1.0  0.0  0.0  0.0
4   0.0  1.0  0.0  0.0
5   0.0  0.0  1.0  0.0
6   1.0  0.0  0.0  0.0
7   0.0  1.0  0.0  0.0
8   0.0  0.0  0.0  1.0
9   1.0  0.0  0.0  0.0
10  0.0  1.0  0.0  0.0

或者,按照@Quang Hoang 的建议,试试pd.crosstab

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 2012-10-28
    • 2020-12-15
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多