Python实现的北京积分落户数据分析示例


Posted in Python onMarch 27, 2020

本文实例讲述了Python实现的北京积分落户数据分析。分享给大家供大家参考,具体如下:

北京积分落户状况 获取数据(爬虫/文件下载)—> 分析 (维度—指标)
  1. 从公司维度分析不同公司对落户人数指标的影响 , 即什么公司落户人数最多也更容易落户
  2. 从年龄维度分析不同年龄段对落户人数指标影响 , 即什么年龄段落户人数最多也更容易落户
  3. 从百家姓维度分析不同姓对落户人数的指标影响 , 即什么姓的落户人数最多即也更容易落户
  4. 不同分数段的占比情况
# 导入库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager
#读取数据(文件) , 并查看数据相应结构和格式
lh_data = pd.read_csv('./bj_luohu.csv',index_col='id',usecols=(0,1,2,3,4))
lh_data.describe()

Python实现的北京积分落户数据分析示例

# 1. 公司维度---人数指标
# 对公司进行分组聚合 , 并查看分数的相关数据 (个数 , 总分数 , 平均分 , 人数占比)
group_company = lh_data.groupby('company',as_index=False)['score'].agg(['count','sum','mean']).sort_values('count',ascending=False)
#更改列名称
group_company.rename(columns={'count':'people_num','sum':'score_sum','mean':'score_mean'},inplace=True)
#定一个函数 , 得到占比
def num_percent(people_num=1,people_sum=1):
  return str('%.2f'%(people_num / people_sum * 100))+'%'
#增加一个占比列
group_company['people_percent'] = group_company['people_num'].apply(num_percent,people_sum=lh_data['name'].count())
#查看只有一个人落户的公司 布尔索引
group_company[group_company['people_num'] == 1]
group_company.head(10)

Python实现的北京积分落户数据分析示例

# 2.年龄维度----人数指标
#将出生年月转为年龄
lh_data['age'] = (pd.to_datetime('2019-09') - pd.to_datetime(lh_data['birthday'])) / pd.Timedelta('365 days')
# 分桶
lh_data.describe()
bins_age = pd.cut(lh_data['age'],bins=np.arange(30,70,5))
bins_age_group = lh_data['age'].groupby(bins_age).count()
bins_age_group.index = [str(i.left) + '~' + str(i.right) for i in bins_age_group.index]
bins_age_group.plot(kind='bar',alpha=1,rot=60,grid=0.2)

Python实现的北京积分落户数据分析示例

# 3. 姓维度----人数指标
# 增加姓列
#定义一个函数 得到姓名的姓
def get_fname(name):
  if len(str(name)) <= 3:
    return str(name[0])
  else:
    return str(name[0:2])
lh_data['fname'] = lh_data['name'].apply(get_fname)
# 对姓进行分组
group_fname = lh_data.groupby('fname')['score'].agg(['count','sum','mean']).sort_values('count',ascending=False)
# 更改列名称
group_fname.rename(columns={'count':'people_num','sum':'people_sum','mean':'score_mean'},inplace=True)
# 增加占比列
group_fname['people_percent'] = group_fname['people_num'].apply(num_percent,people_sum=lh_data['name'].count())
group_fname.head(10)

Python实现的北京积分落户数据分析示例

# 4. 查看分数段占比 
# 分桶 将分数划分为一个个的区间
bins_score = pd.cut(lh_data['score'],np.arange(90,130,5))
# 将分数装入对应的桶里
bins_score_group = lh_data['score'].groupby(bins_score).count()
# 更改索引显示格式
bins_score_group.index = [str(i.left)+'~'+str(i.right) for i in bins_score_group.index]
bins_score_group.plot(kind='bar',alpha=1,rot=60,grid=0.2,title='score-people_num',colormap='RdBu_r')

Python实现的北京积分落户数据分析示例

总结
1.pandas的绘图方法不够灵活 , 功能也不够强大 , 最好还是使用matplotlib绘图
2.记住数据分析最重要的两个方法 分组: groupby() 和 分桶:cut() , 前者一般用于离散的数据(姓,公司) , 后者用于连续数据 (年龄段,分数段)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python批量同步web服务器代码核心程序
Sep 01 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
python基础知识小结之集合
Nov 25 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
火车票抢票python代码公开揭秘!
Mar 08 Python
Python实现的文本对比报告生成工具示例
May 22 Python
python实现输入数字的连续加减方法
Jun 22 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
Python读取二进制文件代码方法解析
Jun 22 Python
爬虫代理的cookie如何生成运行
Sep 22 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 #Python
Python Django中的STATIC_URL 设置和使用方式
Mar 27 #Python
Python爬虫爬取、解析数据操作示例
Mar 27 #Python
python opencv进行图像拼接
Mar 27 #Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 #Python
Pyspark读取parquet数据过程解析
Mar 27 #Python
Python基于pyecharts实现关联图绘制
Mar 27 #Python
You might like
无限级别菜单的实现
2006/10/09 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
Python中for循环控制语句用法实例
2015/06/02 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
python正则表达式之作业计算器
2016/03/18 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Python能做什么
2020/06/02 Python
计算机网络专业个人的自我评价
2013/10/17 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
销售辞职信范文
2015/03/02 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
安全伴我行主题班会
2015/08/13 职场文书
教师病假条范文
2015/08/17 职场文书
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers