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访问sqlserver示例
Feb 10 Python
python定时检查某个进程是否已经关闭的方法
May 20 Python
python实现线程池的方法
Jun 30 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
python如何在循环引用中管理内存
Mar 20 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
python设置环境变量的原因和方法
Jun 24 Python
Python 从attribute到property详解
Mar 05 Python
python利用线程实现多任务
Sep 18 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 Python
Python3.8官网文档之类的基础语法阅读
Sep 04 Python
python3中apply函数和lambda函数的使用详解
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中的CMS的涵义
2007/03/11 PHP
php daodb插入、更新与删除数据
2009/03/19 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
Javascript 中介者模式实例
2009/12/16 Javascript
Javascript实现字数统计
2015/07/03 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
python适合人工智能的理由和优势
2019/06/28 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
详解Python 中的容器 collections
2020/08/17 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
中东奢侈品市场:Coveti
2019/05/12 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
酒店办公室文员岗位职责
2013/12/18 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
绿色出行口号
2014/06/18 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
2015年三万活动总结
2015/03/25 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
给领导敬酒词
2015/08/12 职场文书
如何利用golang运用mysql数据库
2022/03/13 Golang