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

如何基于pandas两列字符串数据构建连续字符串出现频次统计矩阵

前序词-后续词频次计数矩阵实现方案

你要实现的是二元词汇共现频次统计,直接用pandas内置的pd.crosstab()即可完成,不需要使用相关性计算接口或者额外分词操作,具体实现步骤如下:

  • 第一步:准备待处理的DataFrame
    导入pandas后加载你自己的数据集,示例构造代码如下:
    import pandas as pd
    # 替换为你自己的数据集加载逻辑即可
    df = pd.DataFrame({
        'word 1': ['cat', 'dog', 'mouse', 'dog', 'dog', 'mouse'],
        'word 2': ['dog', 'mouse', 'dog', 'dog', 'mouse', 'cat']
    })
    
  • 第二步:生成计数矩阵
    调用pd.crosstab(),指定行索引为前序列word 1,列索引为后续列word 2即可得到原始计数结果。如果需要保证行列覆盖所有出现过的单词、不存在的组合自动补0,可以补充reindex对齐逻辑:
    # 基础版:直接统计现有组合的频次
    count_matrix = pd.crosstab(index=df['word 1'], columns=df['word 2'])
    
    # 完整版:补全所有词汇的行列,缺失频次填充为0
    all_words = sorted(pd.unique(df[['word 1', 'word 2']].values.ravel()))
    count_matrix = count_matrix.reindex(index=all_words, columns=all_words, fill_value=0)
    
  • 第三步:查看输出结果
    直接打印count_matrix即可得到你需要的矩阵格式,示例输出如下:
    word 2  cat  dog  mouse
    word 1                 
    cat       0    1      0
    dog       0    1      2
    mouse     1    1      0
    

如果你的数据量超过百万级,可以用更轻量化的collections.Counter实现:将两列打包为元组迭代计数后,再转换为DataFrame格式,性能会比crosstab更高。

内容的提问来源于stack exchange,提问作者Tatiana P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:15:08