You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含虚拟变量的矩形矩阵转换为数值型方阵?

虚拟变量矩阵转共现方阵及source关联数统计方法

一、统计每个source关联的target数量

核心逻辑是对每行的target列求和,快速得到单个source关联的target总数:

Python(Pandas)实现

import pandas as pd

# 读取数据,支持csv、excel等格式,按需替换读取方法
df = pd.read_csv("your_data.csv")

# 筛选所有target开头的列,按行求和得到每个source的关联target数
df["关联target数量"] = df.filter(regex="^target").sum(axis=1)

# 按关联数降序排序,快速定位关联最多的source
top_sources = df.sort_values(by="关联target数量", ascending=False)

Excel实现

  1. 在数据右侧新增一列,命名为「关联target数量」;
  2. 对第一行source对应的target列求和,比如公式写=SUM(B2:D2)(假设target列在B到D列);
  3. 下拉填充公式到所有行,再对这一列降序排序,即可看到关联target最多的source。

二、生成共现方阵(同时满足两个target的source数量)

本质是计算两两target的共现次数,即同时关联两个target的source总数:

Python(Pandas)实现

# 提取所有target列
target_df = df.filter(regex="^target")

# 转置后点乘原矩阵,得到的结果就是两两target同时为1的样本数
cooccur_matrix = target_df.T.dot(target_df)

# 调整格式,让左上角为空,和示例一致
cooccur_matrix.index.name = ""
cooccur_matrix.columns.name = ""

# 输出或保存矩阵
print(cooccur_matrix)
# cooccur_matrix.to_csv("共现矩阵.csv")

Excel实现

  1. 在新区域构建方阵框架:把所有target名称分别作为行标题(如A6:A8)和列标题(如B5:D5);
  2. 填充单元格:
    • 对角线单元格(如B6,对应target1自身):用=COUNTIF(B:B,1),统计该target关联的总source数;
    • 非对角线单元格(如B7,对应target2和target1):用=COUNTIFS(B:B,1,C:C,1),统计同时关联两个target的source数;
  3. 填充完所有单元格后,即可得到和示例一致的共现方阵。

内容的提问来源于stack exchange,提问作者Antonio Alaia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:35:17