有没有办法在 python 中为参与者组织者建立一个共现(频率)矩阵?
Posted
技术标签:
【中文标题】有没有办法在 python 中为参与者组织者建立一个共现(频率)矩阵?【英文标题】:Is there a way to build a co-occurrence (frequency) matrix for participant-organizer in python? 【发布时间】:2021-11-05 08:33:07 【问题描述】:假设我们有一个如下所示的 Dataframe:
df = pd.DataFrame('participant_id' : [1608, 1608, 2089, 213, 1608, 1887, 2089, 4544, 6866, 2020, 2020],
'organizer_id' : [1772, 1772, 1772, 1790, 1790, 1790, 1791, 1791, 1772, 1799, 1799])
如果我们打印上面的内容,我们会得到:
print(df)
participant_id organizer_id
0 1608 1772
1 1608 1772
2 2089 1772
3 213 1790
4 1608 1790
5 1887 1790
6 2089 1791
7 4544 1791
8 6866 1772
9 2020 1799
10 2020 1799
了解每个参与者以如下所示的共现矩阵的形式参与组织者任务的次数是很有价值的:
1772 1790 1791 1799
1608 2. 1. 0. 0
2089 1. 0. 1. 0
213 0. 1. 0. 0
1887 0. 1. 0. 0
4544 0. 0. 1. 0
6866 1. 0. 0. 0
2020 0. 0. 0. 2
如何在 python 中从 Dataframe df 构建这样一个矩阵?
【问题讨论】:
【参考方案1】:df.groupby(by=["participant_id", "organizer_id"]).size().unstack('organizer_id').fillna(0)
organizer_id 1772 1790 1791 1799
participant_id
213 0.0 1.0 0.0 0.0
1608 2.0 1.0 0.0 0.0
1887 0.0 1.0 0.0 0.0
2020 0.0 0.0 0.0 2.0
2089 1.0 0.0 1.0 0.0
4544 0.0 0.0 1.0 0.0
6866 1.0 0.0 0.0 0.0
【讨论】:
【参考方案2】:这是与How to create co-occurrence matrix from pandas two column?重复的
使用pd.crosstab(df['participant_id'], df['organizer_id'])
获取您的输出矩阵。
【讨论】:
完美运行,遗憾的是我没有看到您分享的上一个问题。以上是关于有没有办法在 python 中为参与者组织者建立一个共现(频率)矩阵?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在Interface Builder中为Auto Layout Constraints添加标识符?
有没有办法获得可以在 Python 中使用的最大整数? [复制]
有没有办法在 UILabel 中为 NSRange 获取 CGRects?