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 urllib、urllib2、httplib抓取网页代码实例
May 09 Python
python中enumerate函数用法实例分析
May 20 Python
Python实现对excel文件列表值进行统计的方法
Jul 25 Python
利用python画一颗心的方法示例
Jan 31 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
微信跳一跳自动运行python脚本
Jan 08 Python
Win8下python3.5.1安装教程
Jul 29 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
利用python实现冒泡排序算法实例代码
Dec 01 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
Python使用Socket实现简单聊天程序
Feb 28 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
PHP生成带有雪花背景的验证码
2006/10/09 PHP
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
浅析js封装和作用域
2013/07/09 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python列表推导式的使用方法
2013/11/21 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
Django models filter筛选条件详解
2020/03/16 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
Jdbc数据访问技术面试题
2012/03/30 面试题
毕业生自我鉴定
2013/12/04 职场文书
2014端午节活动策划方案
2014/01/27 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
责任书格式
2015/01/29 职场文书