用wordcloud以及pyecharts进行信息画像

近期学习了一些信息画像操作,用wordcloud画词云图,用pyecharts画饼图、柱状图。

wordcloud:

import wordcloud
import pandas as pd
import collections
import jieba
import collections
#这里的csv为爬取电影《基督山伯爵》电影的豆瓣剧评信息

df=pd.resd_csv('./基督山伯爵.csv') #读取信息

content_str = ""
for row in df.index: #遍历循环
    content = df.loc[row,'content'] #这里的contenmt为CSV文中的评论信息
    content_str += content #以字符串的形式存放在content_str

seg_list_exact = jieba.cut(content_str, cut_all = False) #cut_all=True为全模式,false为精确模式
object_list = [] #存放过滤掉的分词
remove_words = []
with open("./停用词库.txt",'r',encoding='utf-8') as fp: #使用停用词库,去掉不必要的高频词
    for word in fp:             
        remove_words.append(word.replace("\n",""))
for word in seg_list_exact:
    if word not in remove_words: 
        object_list.append(word)

word_counts = collections.Counter(object_list) #将词数量统计,然后计数并返回一个字典,键为词,值为词个数
word_counts_top20 = word_counts.most_common(20)

wc=wordcloud.WordCloud(font_path='C:/Windows/Fonts/STSONG.TTF',background_color="white",max_words=150,max_font_size=60,width=700,height=500).generate_from_frequencies(word_counts)
#font_path为字体,这里导入的是电脑系统自带的字体样式
#background_color为背景颜色
#max_words显示词的最大数量,max_font_size字体大小,width宽度,height高度
#generate_from_frequencies:从频率字典中生成词云

plt.imshow(wc)
plt.axis('off') 
plt.show()

效果展示

pyecharts:

 

MAP:首先读取表格中省份数据,然后统计省份或直辖市出现的次数。(需要注意的是,可统计的只能是省份名称以及直辖市的名称,如北京市、四川省等字段,不能是四川省成都市等含有其他字段的名称,否则将不会地图中的数量统计)

import pandas as pd
from pyecharts.charts import Bar, Map, Pie, WordCloud
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot

warnings.simplefilter(action="ignore", category=SettingWithCopyWarning)
data = pd.read_csv('./temp/result1-2_EX2.csv')

#读取列表中的数据的信息
#value_counts()用来统计该列表中指定列里有多少个不同的数据值,并计算每个不同值有在该列中的个数
#reset_index()用来重置索引
map_data = data['工作城市'].value_counts().reset_index()
map_data.columns = ['工作城市', '需求量']

map_city = (
Map(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
.add('需求量', [list(z) for z in zip(map_data['期望工作城市'].tolist(), map_data['需求量'].tolist())], 'china')
.set_global_opts(title_opts=opts.TitleOpts(title='企业工作地点分析'),
visualmap_opts=opts.VisualMapOpts(max_=200))
)
map_city.render_notebook()

人数分布图

 PIE:用饼图来表示数量占比,并显示所占的百分比。

job_count = data['公司类型'].value_counts().reset_index()
job_count.columns = ['公司类型', '性质']

pie_job = (
    Pie(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add('', job_count.values.tolist(), radius=['30%', '75%'])
    .set_global_opts(title_opts=opts.TitleOpts(title='公司类型分析'))
    .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}: {c} ({d}%)'))
)
pie_job.render_notebook()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值