首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从pandas两列创建共现矩阵?

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

Stack Overflow用户
提问于 2021-01-19 02:32:48
回答 1查看 336关注 0票数 0

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

代码语言:javascript
运行
复制
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列的值的共现情况。

我尝试过的:

代码语言:javascript
运行
复制
df_co = pd.get_dummies(a.a).groupby(a.b).apply(max)
df_co

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

代码语言:javascript
运行
复制
df_co.T.dot(df_co)

这给了我:

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

EN

回答 1

Stack Overflow用户

发布于 2021-01-19 08:00:08

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

代码语言:javascript
运行
复制
df.assign(v=1).pivot('a','b').fillna(0)
代码语言:javascript
运行
复制
      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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65780181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档