人大代表数据分析

作者: 阿发贝塔伽马 | 来源:发表于2018-02-28 18:02 被阅读233次

爬取代表数据

import requests
import re
import time
from lxml import html
from selenium import webdriver
r = requests.get(url='http://www.sohu.com/a/223885358_118392')    # 最基本的GET请求
time.sleep(60)
html = r.text

正则表达式提取需要的数据

content = re.findall(u'<p>([\u2E80-\u9FFF]{2,3})[u"市"u"省"u"特"u"壮"u"回"u"维"u"自"u"人"].{0,6}\uff08(\d*)\u540d\uff09 </p>.*?<p>(.*?)</p>', html, re.S)  
from pyecharts import Map
data = [_[0:2] for _ in content]

map = Map("人大代表分布", title_pos="center",width=800, height=500)
attr, value =map.cast(data)
attr[-1] = u"南海诸岛"
map.add("", attr, value, maptype='china',
        is_label_show=True,label_pos="inside",label_text_color="#000",
        is_visualmap=True, visual_text_color='#000', visual_range=[12, 172],visual_range_text=['低','高'],
       visual_pos = [500,500])
#map.show_config()
map.render()
map

使用pandas,将数据转化为pandas表

import pandas as pd
import re
# 取地区,姓名,性别,族
data = [(_[0],_[2]) for _ in content]
def get_locality_name_sex_race(param):
    locality = param[0]
    # '、'分割姓名
    for el in param[1].split(u'、'):
        temp = re.split(u'\uff08|\uff0c|\uff09', el)
        length = len(temp)
        if length == 1:
            temp += [u'男', u'汉族']
        elif length == 3:
            if len(temp[1]) == 1:
                temp[2] = u'汉族'
            else:
                temp[2] = temp[1]
                temp[1] = u'男'
        elif length == 4:
            temp.pop()
            if u'族' not in temp[2]:
                temp[2] = u'汉族'

        df.loc[df.shape[0]] = [locality]+temp

df = pd.DataFrame(columns=('locality', 'name', 'sex', 'race'))#生成空的pandas表              
map(get_locality_name_sex_race, data) 
df
def get_attr_sex_v(race_groupby_sex):
    attr_sex = race_groupby_sex.count().index.values.tolist()
    attr_v = race_groupby_sex.count().values[0:2,0].tolist()
    return attr_sex,attr_v

race_groupby_sex = df[df.race==u'汉族'].groupby(df['sex'])
attr_sex,attr_v = get_attr_sex_v(race_groupby_sex)
bar = Bar("", "", width=600, height=400)
bar.add("汉族", attr_sex, attr_v, is_more_utils=True)
race_groupby_sex = df[df.race!=u'汉族'].groupby(df['sex'])
minorities_sex,minorities_v = get_attr_sex_v(race_groupby_sex)
bar.add("少数民族", minorities_sex, minorities_v, is_more_utils=True)
bar.render()
bar

还可以把上面数据画成饼图

pie = Pie("")
pie.add("", ['汉族女','汉族男','少数民族女','少数民族男'], attr_v+minorities_v, is_label_show=True, is_legend_show=False)
pie.render()
pie

民族词云图

from pyecharts import WordCloud

wordcloud = WordCloud(width=1300, height=620)
wordcloud.add("", race_name, race_values, word_size_range=[20, 100])
wordcloud.render()
wordcloud
from pyecharts import Bar

race_nums = df['race'].value_counts()

race_name = race_nums.index.values.tolist()
race_values = race_nums.values.tolist()
bar = Bar("", "少数民族")
bar.add("少数民族", race_name[1:], race_values[1:], 
        is_label_show=True,is_more_utils=True)

bar.render()
bar

统计代表姓氏人数

df['surname'] = [_[0] for _ in df['name']]
surname_Data = df['surname'].value_counts()
bar = Bar("", "", width=800, height=400)
bar.add("", surname_Data.index.values.tolist()[0:30],
        surname_Data.values.tolist()[0:30], is_label_show=True, 
        is_legend_show=True,is_more_utils=True)
bar.render()
bar

姓氏词云

from pyecharts import WordCloud

wordcloud = WordCloud(width=1200, height=600)
wordcloud.add("", surname_Data.index.values.tolist(),
              surname_Data.values.tolist(), word_size_range=[20, 100])
wordcloud.render()
wordcloud

相关文章

  • 人大代表数据分析

    爬取代表数据 正则表达式提取需要的数据 使用pandas,将数据转化为pandas表 还可以把上面数据画成饼图 民...

  • 一图知晓数据分析与数据挖掘的区别是什么?

    数据分析可以分为广义的数据分析和狭义的数据分析,广义的数据分析就包括狭义的数据分析和数据挖掘,我们常说的数据分析就...

  • 数据挖掘和分析的区别

    数据分析可以分为广义的数据分析和狭义的数据分析,广义的数据分析就包括狭义的数据分析和数据挖掘,我们常说的数据分析就...

  • 一图知晓数据分析与数据挖掘的区别是什么?

    数据分析可以分为广义的数据分析和狭义的数据分析,广义的数据分析就包括狭义的数据分析和数据挖掘,我们常说的数据分析就...

  • 数据分析与数据挖掘的区别是什么?

    数据分析可以分为广义的数据分析和狭义的数据分析,广义的数据分析就包括狭义的数据分析和数据挖掘,我们常说的数据分析就...

  • 小菜鸟偷学数据分析(一)

    1.1数据分析是神马? 1.1.1何谓数据分析 数据分析就是对数据进行分析,较为专业的说法,数据分析是指用适当...

  • 使用 Stata 分析全国人大代表数据

    最近各大新闻媒体都在铺天盖地报道有关两会的新闻,我们也来蹭一下热度,虽然找不到今年人大代表的相关数据,但是我们可以...

  • 数据分析方法

    一、数据分析分类:描述性数据分析、探索性数据分析、验证性数据分析。 1、描述性数据分析:1)对比分析;2)平均分析...

  • 谁说菜鸟不会数据分析(入门篇)

    1、数据分析那些事儿 数据分析是神马 数据分析: 数据分析是指用适当的统计分析方法对搜集来的大量数据进行分析,将他...

  • 数据分析概论

    数据分析框架 整个分析框架发为四大层次 数据规划 数据采集 数据分析 数据决策 在数据分析框架中,用户是数据的来源...

网友评论

本文标题:人大代表数据分析

本文链接:https://www.haomeiwen.com/subject/hsyixftx.html