大部分内容都是取出需要的维度,处理出一个结果,然后可视化
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()