pandas小项目练习--通过分组简单分析积分落户数据的年龄及分数分布

大部分内容都是取出需要的维度,处理出一个结果,然后可视化

1、积分落户数据分析

  • 对于离散型数据,可分组后统计,排序等方式分析
  • 对于连续性数据,可使用cut分段后做统计

1.1、读取数据,简单看下数据

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#使用pandas读取csv数据源
luohu_data = pd.read_csv('E:/bj_luohu.csv',index_col='id')
#describe()查询的只会输出数值型结果
print(luohu_data.describe())
print(luohu_data.head(2))

在这里插入图片描述
在这里插入图片描述

1.2、人数最多的公司top

#取出需要的2列
company_data=luohu_data.groupby('company',as_index=False).count()[['company','name']]
#把列重命名
company_data.rename(columns={'name':'people_count'},inplace=True)
#人数降序排列
company_data_sort=company_data.sort_values('people_count',ascending=False)
company_data_sort

1.3、年龄分布分析

#print(pd.to_datetime('2018-7'))
#print(pd.to_datetime(luohu_data['birthday']))
#根据出生日期计算年龄
age=(pd.to_datetime('2018-7')-pd.to_datetime(luohu_data['birthday']))/ pd.Timedelta('365 days')
#给源数据增加age列
luohu_data['age']=age
#print(luohu_data)
#看下最大年龄和最小年龄
#print(age.min())
#print(age.max())
#获取cut需要使用的年龄段
age_bins=np.arange(30,65,5)
#对于age列进行cut,输出age所在的年龄段
age_bins_result=pd.cut(luohu_data['age'],bins=age_bins)
#根据年龄段进行分组,得到各年龄段人数统计
age_data=luohu_data.groupby(age_bins_result).count()['age']

在这里插入图片描述

1.4、分数分布

#分数分布
bins=np.arange(90,130,5)
score_bins=pd.cut(luohu_data['score'],bins)
score_data=luohu_data['score'].groupby(score_bins).count()
print(score_data)
score_data.index=[str(x.left) + '~' + str(x.right) for x in score_data.index]
score_data.plot(kind='bar',alpha=1,rot=0)
plt.show()

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值