import pandas as pd
import collections
from wordcloud import WordCloud
import matplotlib.pyplot as plt
#读取文件的某一列
df = pd.read_csv('tmdb_5000_movies.csv')['keywords']
key_words_list = []
for item in df:
item = eval(item)
if item: # 为空列表 滤掉
# ['aftercreditsstinger', 'duringcreditsstinger'] 这个词语频率比较高 但好像没啥意义 滤掉
key_words_list.extend([x['name'] for x in item if x['name'] not in ['aftercreditsstinger', 'duringcreditsstinger']])
words_count = collections.Counter(key_words_list)
#s=" ".join(key_words_list)
#print(words_count)
wc = WordCloud(
background_color='white',
max_words=2000,
max_font_size=100,
random_state=8,
)
wc.generate_from_frequencies(words_count)
#wc.generate(s)
plt.imshow(wc)
plt.axis('off')
plt.savefig('test_003.png')
plt.show()
这段代码的功能是读取一个CSV文件中的关键词列,然后使用WordCloud库生成一个词云图,并保存为test_003.png文件。
在代码中,首先使用pandas库读取了名为'tmdb_5000_movies.csv'的CSV文件中的关键词列。然后对关键词进行处理,将关键词提取出来并统计它们的频率。接着使用WordCloud库创建了一个词云对象,并根据关键词的频率生成了词云图。最后使用Matplotlib库展示了词云图,并将图表保存为test_003.png文件
结果: