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

如何使用pandas计算DataFrame两两列的共现频次

实现方案

你现有DataFrame里的1、0都是字符串格式,需要先转换成数值类型再做运算,最简洁高效的实现方式如下:

# 将df中字符串格式的0/1转换为整数
df = df.astype(int)
# 直接通过矩阵乘法计算共现频次,结果自动对齐行列名
co_occurrence = df.T @ df

原理解释

将数据转为整数类型后,转置后的DataFrame和原DataFrame做矩阵乘法,本质是对每一组列对做对应位置相乘再求和,刚好就是两列同时为1的样本总数,完全匹配你的需求。示例数据运行后,co_occurrence.loc['M1','M2']的结果为2,和你预期的一致。
针对你160样本、100种矿物的数据集,该方法是向量化运算,运行效率远高于手动写双层循环逐对统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:39:01