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实现对excel文件列表值进行统计的方法
Jul 25 Python
Python中扩展包的安装方法详解
Jun 14 Python
Python实现的文本编辑器功能示例
Jun 30 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
Python走楼梯问题解决方法示例
Jul 25 Python
python使用rpc框架gRPC的方法
Aug 24 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
python实现简单的五子棋游戏
Sep 01 Python
浅析Python打包时包含静态文件处理方法
Jan 15 Python
python必学知识之文件操作(建议收藏)
May 30 Python
在python中读取和写入CSV文件详情
Jun 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 删除无限级目录与文件代码共享
2008/11/22 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
python实现泊松图像融合
2018/07/26 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
医学专业毕业生推荐信
2013/11/14 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers