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学习笔记_数据排序方法
May 22 Python
跟老齐学Python之玩转字符串(1)
Sep 14 Python
简单介绍Python中用于求最小值的min()方法
May 15 Python
简单的python协同过滤程序实例代码
Jan 31 Python
Python Excel处理库openpyxl使用详解
May 09 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
Django+python服务器部署与环境部署教程详解
Mar 30 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
详解selenium + chromedriver 被反爬的解决方法
Oct 28 Python
python IP地址转整数
Nov 20 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 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&amp;MYSQL服务器配置说明
2006/10/09 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
Array.prototype 的泛型应用分析
2010/04/30 Javascript
JS date对象的减法处理实现代码
2010/12/28 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
Python算术运算符实例详解
2017/05/31 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
详解Python进程间通信之命名管道
2017/08/28 Python
解决Python3中的中文字符编码的问题
2018/07/18 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
python实现广度优先搜索过程解析
2019/10/19 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
建国大业观后感600字
2015/06/01 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL