如何使用pandas将DataFrame多列数据转换为共现二维交叉表
pandas生成列间共现矩阵的解决方案
核心逻辑:你需要的共现矩阵可直接通过0-1值DataFrame的转置与原矩阵做矩阵乘法实现,运算结果的第i行第j列数值刚好等于两列同时为1的行数,对角线数值为单列1的总个数,完全匹配需求。
完整实现代码
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'A': [1, 0, 1], 'B': [0, 1, 1], 'C': [0, 0, 1], 'D': [1, 1, 1], 'E': [1, 0, 1] }) # 核心计算逻辑 co_occur_matrix = df.T @ df
输出结果验证
打印co_occur_matrix即可得到目标格式的交叉共现表:
A B C D E A 2 1 1 2 2 B 1 2 1 2 1 C 1 1 1 1 1 D 2 2 1 3 2 E 2 1 1 2 2
内容的提问来源于stack exchange,提问作者Lucas Dresl
相关产品推荐
相关产品推荐

