数据分析-词云制作详细步骤
火影忍者佐助主要技能词云制作
1.首先导包:
# 生成词的工具
import jieba
# 绘图工具
import matplotlib.pyplot as plt
# 加载绘图区域
import imageio
# 生成词云
import wordcloud
# 数据处理
import pandas as pd
2.读取文件
jn = pd.read_csv('./sasuke',header=None)
jn_list = []
3.对数据进行简单处理
for i in range(40):
if i % 2 == 0:
jn_list.append(jn[0][i])
result = []
def deal(str):
result.append(str.split('、')[1])
for i in jn_list:
deal(i)
数据变成了这样:
[‘豪火球之术’,
‘凤仙火之术’,
‘龙火之术’,
‘豪龙火之术’,
‘千鸟刃’,
‘千鸟’,
‘千鸟流’,
‘千鸟千本’,
‘千鸟锐枪’,
‘麒麟’,
‘分身术’,
‘操手里剑之术’,
‘风魔手里剑·影风车’,
‘写轮眼操风车·三之大刀’,
‘大蛇丸流替身术’,
‘影分身之术’,
‘灼遁·光轮疾风’,
‘仙术·须佐能乎’,
‘威装·须佐能乎’,
‘六道·地爆天星’]
4.分词处理(不然技能名字太长了)
cut = []
for i in result:
cut.append(jieba.lcut(i))
将列表中的所有文本全部汇总到一个新列表
result_list = []
for line in cut:
for word in line:
result_list.append(word)
转化为DF类型
df = pd.DataFrame({'技能':result_list})
词数量统计
# 分类汇总
result_df = df['技能'].value_counts().reset_index()
更换列名
result_df.columns = ['技能','count']
生成词云
plt.figure(figsize=[10,8])
sasuke = imageio.imread('../data/bg1.jpg')
wc = wordcloud.WordCloud(font_path='../data/SimHei.ttf',background_color='white',max_font_size=60,mask=sasuke,margin=1)
# 根据词频生成词云
word = wc.fit_words({x[0]:x[1] for x in result_df.values})
plt.imshow(word,interpolation='bilinear')
plt.axis('off')