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爬虫(入门教程、视频教程)
Jan 08 Python
python 读入多行数据的实例
Apr 19 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
PyTorch基本数据类型(一)
May 22 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
Feb 07 Python
详解Python 循环嵌套
Jul 09 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 Python
Python如何进行时间处理
Aug 06 Python
python识别验证码的思路及解决方案
Sep 13 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
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
Python中取整的几种方法小结
2017/01/06 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Python基于requests库爬取网站信息
2020/03/02 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
公司营业员的工作总结自我评价
2013/10/05 职场文书
后勤副校长自我鉴定
2013/10/13 职场文书
车间统计员岗位职责
2014/01/05 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
会计求职自荐信
2015/03/26 职场文书
财务年终工作总结大全
2019/06/20 职场文书