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

如何从pandas数据框生成按词频定大小、按类别配色的一元词词云

基于Pandas DataFrame生成带分类配色的Unigram词云

直接按下面的步骤实现即可,核心是用generate_from_frequencies方法绑定词频权重,自定义颜色函数匹配分类色,不需要额外做冗余格式转换。

  • 前置依赖安装
    先装好需要的第三方库,命令行执行:
    pip install pandas wordcloud matplotlib
    
  • 实现逻辑说明
    1. 先过滤Word列,只保留不带空格的unigram(一元词)
    2. 把Word和Frequency列转成词频字典,作为词云的大小计算依据,词的显示大小完全和Frequency数值正相关
    3. 提前定义Category和颜色的映射表,写颜色匹配函数,渲染每个词的时候自动匹配对应分类的颜色
  • 完整可运行代码
    import pandas as pd
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud
    
    # --------------------------
    # 这里替换成你自己的DataFrame即可
    # 示例DataFrame结构和需求完全一致
    df = pd.DataFrame({
        'Word': ['code', 'test', 'run', 'error', 'debug', 'efficient', 'stable', 'fast'],
        'Frequency': [120, 98, 156, 87, 76, 102, 65, 89],
        'Category': ['noun', 'verb', 'verb', 'noun', 'verb', 'adj', 'adj', 'adj']
    })
    # --------------------------
    
    # 1. 过滤只保留unigram(一元词:不含空格的单个词)
    df_unigram = df[~df['Word'].str.contains(r'\s', na=False)].reset_index(drop=True)
    
    # 2. 定义分类和颜色的映射,可自行修改色值
    category_color_map = {
        'noun': '#2E86AB',
        'verb': '#A23B72',
        'adj': '#F18F01'
    }
    # 提前做词到分类的查找字典,提升渲染效率
    word_cat_map = dict(zip(df_unigram['Word'], df_unigram['Category']))
    
    # 3. 构造词频字典
    freq_dict = dict(zip(df_unigram['Word'], df_unigram['Frequency']))
    
    # 4. 自定义颜色匹配函数
    def match_category_color(word, **kwargs):
        cat = word_cat_map.get(word)
        return category_color_map.get(cat, '#000000') # 找不到分类默认返回黑色
    
    # 5. 生成词云
    wc = WordCloud(
        width=1000,
        height=600,
        background_color='white'
    ).generate_from_frequencies(freq_dict)
    # 绑定自定义颜色函数(仅修改颜色,不改变已生成的词大小)
    wc.recolor(color_func=match_category_color)
    
    # 6. 渲染出图
    plt.figure(figsize=(12, 8))
    plt.imshow(wc, interpolation='bilinear')
    plt.axis('off')
    plt.show()
    

小提示:如果需要处理中文内容,初始化WordCloud时必须添加font_path参数指定系统内可用的中文字体路径,否则会显示方块乱码;如果需要调整不同分类的颜色,直接修改category_color_map里的十六进制色值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:27:45