微博爬虫及舆情分析-2.用户分析

import pandas as pd
import re
#读取数据
user_frame = pd.read_csv('users.csv',index_col=None)
user_frame.head(2)# 我用的是notebook所以这里只有截图发上来

在这里插入图片描述

# location字段整理,保留到省份
user_frame['location']=user_frame.location.fillna('其他')
def get_provience(loc):
    location = str(loc)
    location = re.findall(r"^[\u4e00-\u9fff][^' ']*",location)
    if not location:
        return '其他'
    return location[0]
user_frame['location'] = user_frame['location'].apply(get_provience)
# 认证用户比例
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.figure(figsize=[15,6])
plt.subplot(1,2,1)
labels = ['其他用户','认证用户']
plt.title("认证用户比例")
user_frame.groupby('verified').size().plot.pie(labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)
plt.subplot(1,2,2)
labels = ['女性','男性']
plt.title("用户男女比例")
user_frame.groupby('gender').size().plot.pie(labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)


可见,关注华为5g这个话题的用户以男性为主。
并且大部分为认证用户。

# 用户地域分布(国内用户去除'海外'和'其他')
plt.figure(figsize=(15,5))
ax1 = plt.subplot(1,2,1)
plt.ylabel('用户数量')
plt.title("认证用户地域分布")
verified_users.groupby('location').size().drop(['海外','其他']).plot.bar()
ax2 = plt.subplot(1,2,2)
plt.ylabel('用户数量')
plt.title("其他用户地域分布")
other_users.groupby('location').size().drop(['海外','其他']).plot.bar()

在这里插入图片描述
这个分布情况展示还不是很清楚,下面采用地图热力图的方式进行展示.

#使用pyecharts在地图上通过热力图展示用户活跃区域
from pyecharts.charts import Geo
from pyecharts import options as opts
from pyecharts.globals import GeoType
user_location = dict(user_frame.groupby('location').size().drop(['海外','其他']))
# 这里需要将数据格式转换为json支持的格式
user_location= [(str(p),int(v)) for p,v in user_location.items()]
geo = Geo()
geo.add_schema()
geo.add("geo",user_location,type_=GeoType.HEATMAP)
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_piecewise=False,max_=100),title_opts=opts.TitleOpts(title="认证用户地域分布"))
geo.render_notebook()

-----标准中国地图,一点都不能少----
可以看到这些用户基本都分布在北京、上海、珠三角这三个区域
在这里插入图片描述

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值