栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python数据分析练习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python数据分析练习

Python数据分析练习 练习一、

用lagou.csv中的数据完成下面的操作:

  1. 找出各大城市数据分析岗位的需求量并绘制柱状图
  2. 找出不同领域对数据分析的需求量的占比并绘制饼图
  3. 分析各个城市的薪资水平并绘制柱状图和折线图
df1 = lagou_df[lagou_df.positionName.str.contains('数据分析')]
df1
# 1. 找出各大城市数据分析岗位的需求量并绘制柱状图
ser = df1.city.value_counts()
ser.plot(kind='bar', width=0.8, color=np.random.rand(13, 3))
# 给柱子标数字并居中
for i in range(ser.size):
    plt.text(i, ser[i]+5, str(ser[i]), ha='center')
# 改纵轴刻度
plt.yticks(np.arange(0, 501, 50))
# 改横轴字体角度
plt.xticks(rotation=30)
# 给x,y轴标识
plt.xlabel('')
plt.ylabel('招聘需求数量')
# 给图加网格线
plt.grid(axis='y', alpha=0.25)
plt.show()
# 2. 找出不同领域对数据分析的需求量的占比并绘制饼图
# 先处理industryField数据
inds = df1.industryField.str.split(r'[,, 丨, s]', expand=True)[0] # expand参数是将分列后的结果转成Dataframe
df1['industryField'] = inds
# 画出甜甜圈
df1.industryField.value_counts().sort_values().nlargest(10).plot(kind='pie', autopct='%.1f%%', pctdistance=0.8, wedgeprops={'width': 0.4, 'edgecolor': 'white'})
plt.ylabel('')
plt.show()
# 3. 分析各个城市的薪资水平并绘制柱状图和折线图
sal_df = np.round(df1.groupby('city').salary.mean(), 1)
sal_df.plot(kind='bar')
sal_df.plot(kind='line', color='red', marker='o')
plt.yticks(np.arange(5, 26, 5))
plt.show()
练习二、
df1 = pd.Dataframe({
    "类别": ["手机", "手机", "手机", "手机", "手机", "电脑", "电脑", "电脑", "电脑"],
    "品牌": ["华为", "华为", "华为", "小米", "小米", "华为", "华为", "小米", "小米"],
    "等级": ["A类", "B类", "A类", "B类", "C类", "A类", "B类", "C类", "A类"],
    "A组": [1, 2, 2, 3, 3, 4, 5, 6, 7],
    "B组": [2, 4, 5, 5, 6, 6, 8, 9, 9]
})
df1
# 用上面的数据完成以下任务。
# 任务1:A组手机和电脑各卖出多少台
# 任务2:A组不同品牌的手机和电脑各卖出多少台
# 任务3:不同品牌的手机和电脑,A组和B组各卖出多少台
# 任务1:A组手机和电脑各卖出多少台
df1.groupby('类别').A组.sum()
# 任务2:A组不同品牌的手机和电脑各卖出多少台
df1.groupby(['类别', '品牌']).A组.sum()
# 任务3:不同品牌的手机和电脑,A组和B组各卖出多少台
pd.pivot_table(df1, index='类别', columns='品牌', values=['A组', 'B组'], aggfunc=sum)
练习三、

读取2018年北京积分落户数据,完成下面的操作。

  1. 根据company将落户人员分组,统计每个公司有多少积分落户人员?

  2. 根据年龄将落户人员分组,统计每个年龄段有多少人(建议5岁一个年龄段)?

  3. 根据落户积分将落户人员分组,统计每个积分段有多少人?

beijing_df = pd.read_csv(r'C:UserswbyDesktopdatacsv2018年北京积分落户数据.csv')
beijing_df
beijing_df.info()
# 1. 根据company将落户人员分组,统计每个公司有多少积分落户人员?
beijing_df['company'].value_counts()[:10]
# 2. 根据年龄将落户人员分组,统计每个年龄段有多少人(建议5岁一个年龄段)?
from datetime import datetime


curr_date = datetime(2018, 1, 1)
(curr_date - pd.to_datetime(beijing_df.birthday)).dt.days // 365
beijing_df['age'] = (curr_date - pd.to_datetime(beijing_df.birthday)).dt.days // 365
beijing_df
min_age, max_age = beijing_df.age.min(), beijing_df.age.max()
bins = np.arange(min_age, max_age + 5, 5)
cate = pd.cut(beijing_df.age, bins, right=False)
beijing_df.groupby(cate).name.count()
# 3. 根据落户积分将落户人员分组,统计每个积分段有多少人?(和上题同理,分箱操作)
min_score, max_score = beijing_df.score.min(), beijing_df.score.max()
bins = np.arange(min_score, max_score + 1, 5)
cate = pd.cut(beijing_df.score, bins , right=False)
beijing_df.groupby(cate).name.count()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/663952.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号