Python:北京落户积分分析

#导入相关包
import numpy as pd
import pandas as pd
import matplotlib.pyplot as plt
#读取文件
data = pd.read_excel(r"C:\Users\Administrator\Desktop\北京积分落户公布信息.xlsx")

data_2018

#显示前五条信息
data_2018 = data[['姓名','工作单位','积分分值','年龄']]
data_2018.head()

在这里插入图片描述

#展示一些基本信息
data_2018.describe()

在这里插入图片描述
公司分布

#按公司分组并计算每组个数
company_data = data_2018.groupby('工作单位',as_index=False).count()[['工作单位','姓名']]
company_data

在这里插入图片描述

#重命名列
company_data.rename(columns={'姓名':'人数'},inplace=True)
#人数降序排列
company_data = company_data.sort_values('人数',ascending=False)
#人数排名前十
company_data.head(10)

在这里插入图片描述

#画图
from pylab import *                                 #支持中文
mpl.rcParams['font.sans-serif'] = ['SimHei']
from matplotlib import font_manager
plt.figure(figsize=(20,8),dpi=80)

x = company_data.head(10)['工作单位'].to_list()
y = company_data.head(10)['人数'].to_list()
plt.barh(x,y)
plt.xlabel('人数')
plt.ylabel('公司')
plt.legend()
plt.show()

在这里插入图片描述

#人数所占比例
print('前50公司人数所占比例: {:.2%}'.format(company_data.head(50)['人数'].sum()/6019))
#公司所占比例
print('前50公司所占比例: {:.2%}'.format(50/company_data['工作单位'].count()))

在这里插入图片描述
积分分布

#按照步长为5分箱统计
bins = np.arange(90,130,5)
bins = pd.cut(data_2018['积分分值'],bins)
bin_counts = data_2018['积分分值'].groupby(bins).count()
bin_counts

在这里插入图片描述

#处理index
bin_counts.index = [str(x.left) + '~' + str(x.right) for x in bin_counts.index]
#画图
plt.figure(figsize=(20,8),dpi=80)
bin_counts.plot(kind='bar',alpha=1,rot=45)
plt.show()

在这里插入图片描述
年龄分布

#按步长为5分箱统计
bins = np.arange(30,60,5)
bins = pd.cut(data_2018['年龄'],bins)
age_counts = data_2018['年龄'].groupby(bins).count()
age_counts

在这里插入图片描述

#35-45岁年龄所占比例
age_percent = data_2018[data_2018['年龄']<=45][data_2018['年龄']>=35]['姓名'].count()/data_2018['姓名'].count()
print('35-45岁年龄所占比例:{:.2%}'.format(age_percent))

在这里插入图片描述

#画图
age_counts.index = [str(x.left) + '~' + str(x.right) for x in age_counts.index]
plt.figure(figsize=(20,8),dpi=80)
age_counts.plot(kind='bar',alpha=1,rot=0)
plt.show()

在这里插入图片描述

通过SPSS曲线估计得到2018年的方程是y=124.28-3.58lnx,2019年的方程是y=126.245-3.626lnx

#y=124.28-3.58lnx——2018
import math
def function(x):
    y=124.28-3.58*math.log(x,math.e)
    return y

在这里插入图片描述

#y=126.245-3.626lnx----2019
def func(x):
    y=126.245-3.626*math.log(x,math.e)
    return y

func(6000)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rubyw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值