【Python有趣打卡】微博APP榜单爬虫,尽知天下事(二)

【Python有趣打卡】微博APP榜单爬虫,尽知天下事(二)
今天继续接上学习微博热榜爬虫!不过已经完成了爬虫工作,今天主要是学习对之前爬取下来的数据进行数据分析!原创:罗罗攀(公众号:luoluopan1)学习Python有趣|微博APP爬虫,尽知天下事。

打开之前爬取的csv文件~开心
在这里插入图片描述
结果都是乱码,破坏我学习的心情,不过没关系

CSV打开乱码解决办法

方法一:
新建一个excel文件~
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就可以啦~~
在这里插入图片描述
方法一:
直接用notepad++打开csv,编码→转为utf-8,点击保存,贼方便!!!!!

读取文件在这里插入图片描述##### 用户分析
1.用户频次分析

这里要用到 pyecharts
Echarts是百度公司出的,可以做炫酷的动态图,大神陈建东将echarts通过Python实现,设计了pyecharts库。
https://github.com/pyecharts/pyecharts
用到的方法是WordCloud.add() 方法签名
在这里插入图片描述

user = df['user'].value_counts()
from pyecharts import WordCloud
%matplotlib inline  #魔法函数 一定要加上!
wc =  WordCloud(width=800, height=620)
wc.add("f", list(user.index), list(user), word_size_range=[20, 80])
wc

在这里插入图片描述又有问题了???抓狂,再去搜一下原因
解决办法:https://blog.csdn.net/zqs305082800/article/details/84581299
在这里插入图片描述

2.用户地理分布
df['province'] = df['location'].str.split(' ').str[0]
province = df['province'].value_counts()

from pyecharts import Bar
bar = Bar('地区分布情况')
bar.add("", list(province[:10].index), list(province[:10]),xaxis_interval=0,xaxis_rotate=20,xaxis_margin=8,is_label_show=True)
bar

在这里插入图片描述

3.用户性别分布
gender = df['gender'].value_counts()

from pyecharts import Pie

pie = Pie("性别分布")
pie.add("", ['男性','女性'], list(gender), is_label_show=True)
pie

在这里插入图片描述

4.粉丝数排名
data4 = df.drop_duplicates('user') #去除重复项
data4 = data4.sort_values(by='followers',ascending=False)[:10]
data4

from pyecharts import Bar

bar = Bar('粉丝前十')
bar.add("", list(data4['user']), list(data4['followers']),xaxis_interval=0,xaxis_rotate=20,xaxis_margin=8,is_label_show=True)
bar

在这里插入图片描述

5.发布时间分布
df['hour'] = df['created_time'].str.split(':').str[0].str.split(' ').str[-1]
hour = df['hour'].value_counts()
hour = hour.sort_index()

from pyecharts import Line

attr = list(hour.index)
v = list(hour)

line = Line("发布时间分布")
line.add("", attr, v)
line

在这里插入图片描述

5.榜单内容分词统计
str_data = ''
for i in range(df.shape[0]):
    str_data = str_data + str(df.iloc[i,4])
str_data

import jieba.analyse
tags = jieba.analyse.extract_tags(str_data, topK=50, withWeight=True)
label = []
attr = []
for item in tags:
    print(item[0]+'\t'+str(int(item[1]*1000)))
    label.append(item[0])
    attr.append(int(item[1]*1000))

在这里插入图片描述

from pyecharts import WordCloud

wordcloud = WordCloud(width=800, height=620)
wordcloud.add("", label[3:], attr[3:], word_size_range=[20, 100])
wordcloud

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值