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 pass详细介绍及实例代码
Nov 24 Python
Python多继承原理与用法示例
Aug 23 Python
Python3标准库总结
Feb 19 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
如何使用Python多线程测试并发漏洞
Dec 18 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
Jan 16 Python
基于python3实现倒叙字符串
Feb 18 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
Python中三种花式打印的示例详解
Mar 19 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
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
2013/06/24 PHP
php通过session防url攻击方法
2014/12/10 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
浅谈编码,解码,乱码的问题
2016/12/30 Python
基于python的字节编译详解
2017/09/20 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
致1500米运动员广播稿
2014/02/07 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书
入职担保书范文
2014/05/21 职场文书
庆七一活动简报
2015/07/20 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js