Python实验 、Pandas 分组与聚合_Anyoneeeeee的博客-程序员宅基地

技术标签: Python实验  python  数据分析  

1、内容

1 程序题
①以年级信息为分组键,对学生信息进行分组,并输出大一学生的信息
②分别计算出四个年级中身高最高的学生
③计算大一学生和大二学生的平均体重
2 、北京租房数据统计分析(续)
3 )按照具体户型(如 3 2 厅)或户型中的室(如 3 室)进行分组,统
计每种户型的数量、最高 / 最低 / 平均租价等信息;
按照区域(如海淀)进行分组,统计房源数量、最高 / 最低 / 平均租价等信息。
3 、读取美国大选数据,利用分组聚合、可视化等方法进行简要的统计分析
注:
1 )数据来源: https://www.kaggle.com/unanimad/us-election-2020
共分为 4 部分: governor (州长)、 house (众议院)、 president (总统)
senate (参议院)选举
2 )政党可按照 REP (共和党)、 DEM (民主党)和其他政党进行分组
3 )本题为开放题,请同学们自行设定所要统计的信息;
也可以前往 Kaggle 网站选择其他数据集进行简要分析。
4 、自定义题目:处理从 Kaggle 网站下载的 Netflix 数据。

2、源代码清单

1 程序题
#以年级信息为分组键,对学生信息进行分组,并输出大一学生的信息 
import numpy as np 
import pandas as pd 
info_df=pd.DataFrame({'年级':['大一','大二','大三','大四','大二','大三','大一','大三 ','大四'], 
                      '姓名':['李宏卓','李思真','张振海','赵鸿飞','白蓉','马腾飞',' 张晓凡','金紫萱','金烨'], 
                      '年龄':[18,19,20,21,19,20,18,20,21], 
                      '性别':['男','女','男','男','女','男','女','女','男'], 
                      '身高(cm)':[175,165,178,175,160,180,167,170,185], 
                      '体重 (kg)':[65,60,70,75,55,70,52,53,73]},index=[1,2,3,4,5,6,7,8,9]) 
info_df.index.name='序号' 
info_df.columns.name='项目' 
print(info_df)
#输出大一学生的信息
gob=info_df.groupby('年级') 
group1=dict([x for x in gob])['大一'] 
print(group1)
#分别计算出四个年级中身高最高的学生
data1=gob['身高(cm)'].max() 
data2=pd.merge(info_df,data1,on=['身高(cm)','年级'],how='right') 
print(data2)
#计算大一学生和大二学生的平均体重
print('大一学生的平均体重:',group1['体重(kg)'].apply('mean')) 
print('大二学生的平均体重:',dict([x for x in gob])['大二']['体重 (kg)'].apply('mean'))

2、北京租房数据统计分析(续)

#按照具体户型(如 3 室 2 厅)或户型中的室(如 3 室)进行分组
group_obj=data.groupby('户型') 
room_group=dict([x for x in group_obj])['3 室 2 厅']
#统计每 种户型的数量、最高/最低/平均租价等信息
print('3 室 2 厅户型最高价:',room_group['价格(元/月)'].max()) 
print('3 室 2 厅户型最低价:',room_group['价格(元/月)'].min()) 
print('3 室 2 厅户型平均价:',room_group['价格(元/月)'].mean())
#按照区域(如海淀)进行分组,统计房源数量、最高/最低/平均租价等信息
gobj=data.groupby('区域')#按照区域分组 
group_haidian=dict([x for x in gobj])['海淀']#分出海淀区 
print('海淀区房源:',group_haidian['户型'].count())#房源总数 
print('海淀区最高价:',group_haidian['价格(元/月)'].max()) 
print('海淀区最低价:',group_haidian['价格(元/月)'].min()) 
print('海淀区平均价:',group_haidian['价格(元/月)'].mean())

3、美国大选数据分析

import pandas as pd 
import numpy as np 
from openpyxl import load_workbook 
#输入数据
data1=pd.read_csv(r'E:\实验数据\governors_county.csv') 
data2=pd.read_csv(r'E:\实验数据\governors_county_candidate.csv') 
data3=pd.read_csv(r'E:\实验数据\governors_state.csv') 

#检查是否有缺失值和空值
pd.isnull(data1) 
pd.isnull(data2) 
pd.isnull(data3)

#删除空值和缺失值
data1.dropna() 
data2.dropna() 
data3.dropna()

#删除重复值
data1.drop_duplicates()
data2.drop_duplicates() 
data3.drop_duplicates()

#检测是否有异常值
data3.boxplot(column=['state','votes','electoral_vote'])

#根据 state 一列合并 data1 和 data3
merged_by_state= pd.merge(data1,data3,left_on='state',right_on='state',how='left') print(merged_by_state)

#根据 state 一列将 data1 分组之后分别输出分组情况
group_o=data1.groupby('state') 
for i in group_o: 
    print(i) 
group1=dict([x for x in group_o])['Montana'] 
print(group1) 
group2=dict([x for x in group_o])['New Hampshire'] 
print(group2)

#算数处理。求蒙大拿和新罕布尔两州的票数总和
total_votes_montana=group1['total_votes'].sum() 
print('蒙大纳州的有效票数总和为:',total_votes_montana) total_votes_NewHampshire=group2['total_votes'].sum() 
print('新罕布尔州的有效票数总和为:',total_votes_NewHampshire)

4、Netflix影视数据分析

#导入 csv 文件 
import pandas as pd 
import numpy as np 
import re 
netflix_data=pd.read_csv(r'E:\实验数据\netflix_titles.csv')

#删除空值和缺失值 
netflix_data=netflix_data.dropna() 

#删除重复值 
netflix_data=netflix_data.drop_duplicates() 

#根据体裁分类并显示电影一组 
nf_group=netflix_data.groupby('type') 
movie_group=dict([x for x in nf_group])['Movie']

#从电影一组取出只有一集的电影 
minut=movie_group['duration'].str.contains('min') 
min_group=movie_group[minut] 

#算数处理 
#电影时常转换为整型 
min_group['duration']=min_group['duration'].map(lambda x: str(x)[:-3]) 
min_group['duration']=min_group['duration'].apply(pd.to_numeric) min_group['duration']=min_group['duration'].astype(dtype='int') 

#找出一集电影中时常最长的 
longest_movie=min_group['duration'].max() 
print('电影时长最长为:',longest_movie)

#根据发行时间分组并显示 2019 年发行的所有影视作品 year_group=netflix_data.groupby('release_year') 
twenty_nineteen_group=dict([x for x in year_group])[2019]

#求出 2019 年发行的影视作品总数 
tng_count=twenty_nineteen_group['show_id'].count() 
print('2019 年发行的影视作品总数为:',tng_count) 

#求出 2019 年发行的影视作品种类总数 list_count=twenty_nineteen_group['listed_in'].drop_duplicates().count() 
print('2019 年发行的影视作品种类总数为:',list_count)

老师在要求里面有提到Kaggle这个网站,上去看了一下,数据特别多。当学了python没有东西拿来练手的时候可以上去随便下载一个数据开始分析。注册花了很长时间~~不过最后还是成功上去了~非常好的一个网站!!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44015135/article/details/111357364

智能推荐

shell脚本中使用echo显示带颜色的内容_weixin_30497527的博客-程序员宅基地

shell脚本中使用echo显示带颜色的内容,需要使用参数-e格式如下:echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"例如:echo -e "\033[41;36m Hello World \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注:   1、字背景颜色和文字颜色之间是英文的""   2、文字颜色后面有个...

tar 解压缩命令详解_aFakeProgramer的博客-程序员宅基地

tar 解压缩命令详解 以下是对tar命令的一些总结:1 # tar -cvf test.tar test 仅打包,不压缩 2 # tar -zcvf test.tar.gz test 打包后,以gzip压缩 在参数f后面的压缩文件名是自己取的,习惯上用tar来做,如果加z参数,3 则以tar.gz 或tgz来代表gzip压缩过的tar file文件解压操作:1 #tar -zxvf /usr/local/test.tar.gztar 解压缩命令详解1 -c: 建立压缩档案

x5浏览器内核全屏播放_Ruonorth的博客-程序员宅基地_x5-video-player-fullscreen

x5内核+video,这两个词放在一起他就会有一些坑。比如全屏问题、同层渲染问题、自动播放问题。陆续更新中。。。(等更完找时间做个video踩坑合集)一、x5-video-player-fullscreen全屏方式如果不申明此属性,页面得到视口区域为原始视口大小(视频未播放前),比如在微信里,会有一个常驻的标题栏,如果不声明此属性,这个标题栏高度不会给页面,播放时会平均分为两块(上下黑块)全屏监听进入监听:myVideo.addEventListener("x5videoenterfullscre

什么是类(class)成员函数_爱吃的小花猫_Vigor的博客-程序员宅基地

就是一个类(class)里面所定义的函数例如class A{public:   void B();private:   int C();protected:   bool D(int i);};那么,B(),C(),D(int)都是A的成员函数

c语言图按邻接表存储遍历,c语言图的遍历,邻接表存储,深度,广度优先遍历..._atone2003的博客-程序员宅基地

匿名用户1级2011-12-03 回答(1)图的建立,按采用邻接表作为存储结构。(2)从指定顶点出发进行深度优先搜索遍历。(3)从指定顶点出发进行广度优先搜索遍历。#include"stdio.h"#include"string.h"#include"stdlib.h"#include"math.h"#define MAX_INT 1000#define MAX_VERTEX_NUM 20#def...

es6如何修改json数组里的某个值,ES6:如何解散内部数组并展平JSON数组?_weixin_39597262的博客-程序员宅基地

Imagine that I have the following JSON array:[{"team": "Colts","players": [{"name": "Andrew Luck","position": "quarterback"},{"name": "Quenton Nelson","position": "guard"}]},{"team": "Patriots","playe...

随便推点

MyBatis 源码分析 - 配置文件解析过程_ThinkWon的博客-程序员宅基地

文章目录* 本文速览1.简介2.配置文件解析过程分析2.1 配置文件解析入口2.2 解析 properties 配置2.3 解析 settings 配置2.3.1 settings 节点的解析过程2.3.2 元信息对象创建过程2.3.2.1 DefaultReflectorFactory 源码分析2.3.2.2 Reflector 源码分析2.3.2.3 PropertyTokenizer 源码分析2.3.3 小结2.4 设置 settings 配置到 Configuration 中2.5 解析 typeA

jmeter进行dubbo接口测试_weixin_30699463的博客-程序员宅基地

最近工作中接到一个需求,需要对一个MQ消息队列进行性能测试,测试其消费能力,开发提供了一个dubbo服务来供我调用发送消息。这篇博客,介绍下如何利用jmeter来测试dubbo接口,并进行性能测试。。。一、Dubbo简介dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含如下几点:1、远程通讯:提供对多种基于...

ERROR:"org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /config/to..._大数据从业者FelixZh的博客-程序员宅基地

PROBLEM DESCRIPTIONWhencreating or deleting topics in Kafka, they cannot be authorized through the Ranger policies. The following errors are displayed while creating the topics:[[email protected]

@Target、@Retention、@Documented注解简介_菜兜兜的博客-程序员宅基地

@Target、@Retention、@Documented注解简介源码样例:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@[email protected] @interface MthCache { String key();}@Target 注解功能:指明了修饰的这个注解的使用范围,即被描述的注解可以用在哪里。ElementType的取值包含以下几种:TYPE:类,接口或...

Swift Explore - 关于 Swift 中的 isEqual 的一点探索_weixin_30362233的博客-程序员宅基地

在我们进行 App 开发的时候,经常会用到的一个操作就是判断两个对象是否相等。比如两个字符串是否相等。而所谓的 相等 有着两层含义。一个是值相等,还有一个是引用相等。如果熟悉 Objective-C 开发的话,就会知道 Objective-C 为我们提供了一系列 isEqual: 方法来判断值相等,而 == 等于号用来判断引用相等。 我们来看一个 Objective-C 的例子就会更加明...

解决网页在手机端显示界面很小的问题_violet-jack的博客-程序员宅基地

在使用Vue+mintUI写项目的时候发现在电脑上调试很好,但是到手机上就发现界面变得好小好小,于是Google了一些解决了该问题。参考html网页兼容手机浏览器(解决显示页面很小的问题),添加一下代码到mata声明中即可。 <meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1.0