如何从两列中创建共现矩阵?

2024-04-23 19:49:22 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

enter image description here

我想找出a列的b列值的共现情况

我尝试的是:

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

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

df_co.T.dot(df_co)

这给了我:

enter image description here

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


Tags: 数据importdataframepandasdfgetas情况
1条回答
网友
1楼 · 发布于 2024-04-23 19:49:22

可以将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

相关问题 更多 >