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中的装饰器详解
Apr 13 Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
python实现随机梯度下降(SGD)
Mar 24 Python
python实现m3u8格式转换为mp4视频格式
Feb 28 Python
解决python3捕获cx_oracle抛出的异常错误问题
Oct 18 Python
Python datetime包函数简单介绍
Aug 28 Python
django实现用户注册实例讲解
Oct 30 Python
使用pygame编写Flappy bird小游戏
Mar 14 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
用python绘制樱花树
Oct 09 Python
python实战之一步一步教你绘制小猪佩奇
Apr 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
php+oracle 分页类
2006/10/09 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
Javascript如何实现扩充基本类型
2020/08/26 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
python批量提交沙箱问题实例
2014/10/08 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
详解python 爬取12306验证码
2019/05/10 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
应聘教师自荐信
2013/10/12 职场文书
出差报告怎么写
2014/11/06 职场文书
学习与创新自我评价
2015/03/09 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
sql server 累计求和实现代码
2022/02/28 SQL Server