博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数据与云计算学习:数据分析(二)
阅读量:6188 次
发布时间:2019-06-21

本文共 2525 字,大约阅读时间需要 8 分钟。

推荐github上的这个课程来练习下,做个入门

按照名字将数据分组,总数,平均数,标准差
print(baby_names.groupby('name').agg([np.sum,np.mean,np.std]))

图片描述

哪些名字出现的频率最高?
# 哪些名字出现的频率最高?print(baby_names.groupby('name').agg({'frequency': sum}))

图片描述

# James, John, Robert, Micheal, Mary...都是耳熟能详的名字baby_names.groupby('name').agg({'frequency': sum}).sort_values(by=['frequency'], ascending=[0])

图片描述

每年出生的男孩和女孩的个数分别是多少?

# 使用pivot_table方法查看freq_by_gender_year = baby_names.pivot_table(index ='year', columns='gender',                                             values = 'frequency', aggfunc=sum)

图片描述

# 使用tail方法查看最近几年出生人数print(freq_by_gender_year.tail())

图片描述

# 一行命令即可做出高质量图形freq_by_gender_year.plot(title='Frequency by year and gender')plt.show()

图片描述

起名趋势分析
#增加一个变量rank,这个是根据年份性别依据名字出现频率所产生的次序baby_names['ranked'] = baby_names.groupby(['year','gender'])['frequency'].rank(ascending=False)print(baby_names.head(10))

图片描述

#计算每个名每年按性别占总出生人数的百分比def add_pct(group):#自定义    group['pct'] = group.frequency / group.frequency.sum()*100    return group#groupby和apply函数baby_names = baby_names.groupby(['year','gender']).apply(add_pct)# 查看新加的百分比(pct)print(baby_names.head())

图片描述

查看每年最流行的名字所占百分比趋势
####起名趋势分析####增加一个变量rank,这个是根据年份性别依据名字出现频率所产生的次序baby_names['ranked'] = baby_names.groupby(['year','gender'])['frequency'].rank(ascending=False)# print(baby_names.head(10))#计算每个名每年按性别占总出生人数的百分比def add_pct(group):#自定义    group['pct'] = group.frequency / group.frequency.sum()*100    return group# #groupby和apply函数baby_names = baby_names.groupby(['year','gender']).apply(add_pct)# # 查看新加的百分比(pct)# print(baby_names.head())#####查看每年最流行的名字所占百分比趋势#####将数据分为男孩和女孩dff = baby_names[baby_names.gender == 'F']dfm = baby_names[baby_names.gender == 'M']#获取每年排名第一的名字rank1m = dfm[dfm.ranked == 1]rank1f = dff[dff.ranked == 1]plt.plot(rank1m.year, rank1m.pct, color="blue", linewidth = 2, label = 'Boys')plt.fill_between(rank1m.year, rank1m.pct, color="blue", alpha = 0.1, interpolate=True)plt.xlim(1880,2012)plt.ylim(0,9)plt.xticks(scipy.arange(1880,2012,10), rotation=70)plt.title("Popularity of #1 boys' name by year", size=18, color="blue")plt.xlabel('Year', size=15)plt.ylabel('% of male births', size=15)plt.show()plt.close()

图片描述

plt.plot(rank1f.year, rank1f.pct, color="red", linewidth = 2, label = 'Girls')plt.fill_between(rank1f.year, rank1f.pct, color="red", alpha = 0.1, interpolate=True)plt.xlim(1880,2012)plt.ylim(0,9)plt.xticks(scipy.arange(1880,2012,10), rotation=70)plt.title("Popularity of #1 girls' name by year", size=18, color="red")plt.xlabel('Year', size=15)plt.ylabel('% of female births', size=15)plt.show()plt.close()

图片描述

参考

图片描述

转载地址:http://proda.baihongyu.com/

你可能感兴趣的文章
为密码文本框不可粘帖字符串
查看>>
【零基础学习iOS开发】【02-C语言】06-变量与内存
查看>>
metasploit 常用指令
查看>>
43个多图片轮转jquery插件
查看>>
在Linux里设置环境变量的方法(export PATH)
查看>>
yum局域网软件源搭建
查看>>
线程同步:互斥量与读写锁的异同与性能分析
查看>>
PL/pgSQL函数带output参数例子
查看>>
C#动态生成html页
查看>>
面对一个新的MCU,我再也不敢说第一步是点灯了
查看>>
php中使用mysql_fetch_object向页面输出结果,总结!
查看>>
女人脱裤子的水平决定婚姻的质量[转]
查看>>
Autocomplete in ASP.NET MVC3自动检索并填充输入框
查看>>
网页常用分享代码(备用)
查看>>
利用顺序栈判断一个字符串是否为对称串
查看>>
unity3D与网页的交互
查看>>
jiffies存放
查看>>
关于c#中的Timer控件的简单用法
查看>>
U盘启动笔记本无法安装Win7问题和解决
查看>>
如何整合Office Web Apps至自己开发的系统(二)
查看>>