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中使用HTMLParser解析html实例
Feb 08 Python
Python实现把回车符\r\n转换成\n
Apr 23 Python
python中as用法实例分析
Apr 30 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
为什么说Python可以实现所有的算法
Oct 04 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
May 27 Python
python如何查看网页代码
Jun 07 Python
使用OpenCV去除面积较小的连通域
Jul 05 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 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 网页过期时间的控制代码
2009/06/29 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
Javascript 继承机制的实现
2009/08/12 Javascript
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
javascript操作数组详解
2014/12/17 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
使用Python写CUDA程序的方法
2017/03/27 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
python re模块常见用法例举
2021/03/01 Python
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
大学生优秀团员事迹材料
2014/01/30 职场文书
党校学习自我鉴定
2014/02/24 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
倡议书怎么写?
2019/04/11 职场文书
导游词之南京中山陵
2019/11/27 职场文书
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL