如何将员工部门联系数据的DataFrame转换为关联矩阵?
将员工部门关联DataFrame转换为关联矩阵
需求说明
需要把包含员工所属部门、跨部门联系次数的DataFrame,转换为部门间关联矩阵:矩阵行代表员工所属部门,列代表目标部门,单元格值为该部门所有员工与目标部门的联系次数总和。
实现方案(基于Pandas)
假设你的DataFrame变量名为df,按以下步骤操作即可完成转换:
- 定义部门字段列表
先明确12个代表联系次数的部门字段名:
dept_cols = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'l', 'm', 'n']
- 按所属部门分组求和
以department列为分组依据,对所有联系数字段求和,直接得到各部门的总联系数据:
# 分组后求和,将department设为矩阵行索引 dept_matrix = df.groupby('department')[dept_cols].sum()
- 统一行列顺序(可选)
如果需要让矩阵的行、列严格按照部门字段的顺序排列(比如a到n的顺序),可以重新排序索引和列:
dept_matrix = dept_matrix.reindex(index=dept_cols, columns=dept_cols, fill_value=0)
示例验证
用你提供的3行测试数据验证:
- 部门
a仅1名员工,矩阵中a行的各列值就是该员工的对应字段值(比如a列值为2),与目标矩阵一致。 - 部门
b有2名员工,a列的总和为5+1=6,也和目标矩阵的结果匹配。
执行上述代码后,你会得到完整的12×12关联矩阵,每个单元格对应部门间的总联系次数。
内容的提问来源于stack exchange,提问作者Antonio Alaia
相关产品推荐
相关产品推荐

