如何使用 Python 从 CSV 文件制作词云

问题描述

我有以下 CSV 文件

    Emoji,CNT,Common
    369,3988,yes
    sosad,2820,yes
    agree,1481,no
    clown,1273,yes
    dead,753,yes
    angry,561,no
    good,404,yes
    agger/dead,317,no
    cry,305,yes
    smile,300,yes

当我搜索相关信息时,它们只有 1 列。但是,我有一个必须制作词云图片的CSV文件。更重要的是,我需要使用上面的文件来制作更多信息。如果“Common”栏是“yes”,它会显示红色。否则,它将显示黑色。

搜索了很多信息。他们只有 1 列。然后他们只有一种颜色或随机颜色。

因此,我无法获得尊重。

解决方法

要添加到上一个答案,这是一个示例代码,它将使用 wordcloud 库执行您要求的操作。您需要将 CSV 分成两个字典,一个用于主数据,另一个用于颜色。

import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud

# Load data as pandas dataframe
df = pd.read_csv(csv_file_location)

# Create dictionaries out of the dataframe
records = df.to_dict(orient='records')
data = {x['Emoji']: x['CNT'] for x in records}
colors = {x['Emoji']: x['Common'] for x in records}

# Generate word cloud from frequencies
wc = WordCloud(background_color="white",max_words=1000)
wc.generate_from_frequencies(data)

# Color words depending on the colors dictionary
def color_func(word,**kwargs):
    if colors.get(word) == 'yes':
        return "rgb(0,255,0)"
    else:
        return "rgb(255,0)"

wc.recolor(color_func=color_func)

# Show final result
plt.imshow(wc,interpolation="bilinear")
plt.axis("off")
plt.show()

这会给你一个看起来像这样的图片:

Word cloud

,

首先你需要正确读取这个 csv 文件,你可以简单地使用 python 的 Pandas 库,如下所示:Reading csv file in python

然后你可以通过安装它来使用python的wordcloud库

pip 安装 wordcloud

关于 wordcloud 的一些很好的例子,请关注 https://github.com/amueller/word_cloud#examples