当前位置: 首页 > news >正文

大数据与云计算学习:数据分析(二)

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

按照名字将数据分组,总数,平均数,标准差
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])

图片描述

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

pandas.DataFrame.pivot_table

# 使用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()

图片描述

参考

pandas教程:agg分组多种计算
pandas 0.21.1 documentation
图片描述

相关文章:

  • 3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令
  • 剑指offer 矩阵覆盖
  • 从0开始弄一个面向OC数据库--终结篇
  • C++ Exercises(一)
  • restful+springmvc+mybatis+ webservice 分布式架构
  • 有歧义(AMBIGUOUS LAYOUT)的约束布局调试方法2
  • CSU-ACM2018寒假集训选拔-入门题
  • 云数据库 Redis 版功能特性
  • bootstrap和elementUI真的会冲突
  • LeetCode:26. Remove Duplicates from Sorted Array(Easy)
  • jvm 内存分配
  • 从Storm和Spark 学习流式实时分布式计算的设计
  • Nginx + Tomcat + HTTPS 配置原来不需要在 Tomcat 上启用 SSL 支持
  • 应用多级缓存模式支撑海量读服务
  • iOS 兼容多个有crash 收集机制的SDK
  • 【译】理解JavaScript:new 关键字
  • 2019年如何成为全栈工程师?
  • 345-反转字符串中的元音字母
  • Docker 笔记(2):Dockerfile
  • express.js的介绍及使用
  • JAVA 学习IO流
  • JavaScript的使用你知道几种?(上)
  • MobX
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • spring + angular 实现导出excel
  • Vue.js 移动端适配之 vw 解决方案
  • 世界上最简单的无等待算法(getAndIncrement)
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 说说我为什么看好Spring Cloud Alibaba
  • ​Linux·i2c驱动架构​
  • ​力扣解法汇总946-验证栈序列
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #LLM入门|Prompt#3.3_存储_Memory
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)http协议
  • (转)用.Net的File控件上传文件的解决方案
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 发送邮件
  • .NET大文件上传知识整理
  • [20180129]bash显示path环境变量.txt
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [AIGC 大数据基础]hive浅谈
  • [Android]RecyclerView添加HeaderView出现宽度问题
  • [Android]使用Git将项目提交到GitHub
  • [Bada开发]初步入口函数介绍
  • [BZOJ1053][HAOI2007]反素数ant
  • [C#] 基于 yield 语句的迭代器逻辑懒执行
  • [c#基础]值类型和引用类型的Equals,==的区别
  • [CareerCup] 12.3 Test Move Method in a Chess Game 测试象棋游戏中的移动方法