panda经典四道题期末考核分享

2024-04-01 17:58

本文主要是介绍panda经典四道题期末考核分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一题

(10分)

某班级部分学生的预处理成绩如下:

杭念云,腾望舒,邢苍,祈思慧,端木尧,贸柳,越朝,空晴虹,王白筠,蒙思雅

88,67,56,90,75,76,74,79,-20,69

1、使用以上数据创建一个Series(姓名为标签,成绩为值)

2、将小于0的成绩改为0

3、假设他们的平时分都是80分,最终成绩 = 平时分 * 30% + 成绩 * 70%,将Series中的成绩都转换为最终成绩

4、按最终成绩按从低到高排序

5、求平均成绩

最终打印:最后的series内容和平均成绩

df = pd.Series([88,67,56,90,75,76,74,79,-20,69],index=['杭念云','腾望舒','邢苍','祈思慧','端木尧','贸柳','越朝','空晴虹','王白筠','蒙思雅'])
def func(x):if x<=0:x =0return x
df = df.apply(func)
def her(x):x = 85*0.3+x*0.7return x
df = df.apply(her)
df = df.sort_values(axis=0)
print(df)
df = df.sort_values(axis=0)
print(df)

王白筠 25.5
邢苍 64.7
腾望舒 72.4
蒙思雅 73.8
越朝 77.3
端木尧 78.0
贸柳 78.7
空晴虹 80.8
杭念云 87.1
祈思慧 88.5
dtype: float64
df2 = df.mean()
print(df2)
72.67999999999999

第二题

(10分)

一位市民一个月的部分花销清单如下。

1、使用以下字典创建一个DataFrame

2、求3日的总支出

3、求微信的总使用金额

4、去掉所有现金支付的账单

5、去掉日期和账户列

6、先按类别排序,再按金额从小到大排序

最终打印:2、3的结果和4、5、6处理后的DataFrame内容

d1 = {'日期':[1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,5,5,5,5,6,6,6,6,6],
'类别':['服装','食品','日用','日用','交通','日用','娱乐','食品','食品','食品','娱乐','日用','服装','交通','医疗','食品','人情','娱乐','交通','食品','娱乐','服装','日用','食品','医疗','食品'],
'金额':[120,14,52,3,8,12,60,18,5,12,42,6,99,5,55,13,100,65,5,16,30,199,31,20,28,14],
'账户':['信用卡','微信','微信','微信','支付宝','微信','支付宝','微信','微信','微信','信用卡','支付宝','支付宝','支付宝','微信','现金','现金','信用卡','现金','微信','信用卡','信用卡','微信','现金','现金','微信']}
​
a = pd.DataFrame(d1)
b =(a.loc[a['日期']<=3])
c = pd.DataFrame(b)
print(c['金额'].sum())
456
b =(a.loc[a['账户']=='微信'])
c = pd.DataFrame(b)
print(c['金额'].sum())
232
d1 =(a.loc[a['账户']!='现金'])
d1 = pd.DataFrame(d1)
d1 = d1.drop(['日期','账户'],axis=1)
d1 = d1.sort_values(['类别','金额'])
print(d1)
类别   金额

13 交通 5
4 交通 8
14 医疗 55
20 娱乐 30
10 娱乐 42
6 娱乐 60
17 娱乐 65
3 日用 3
11 日用 6
5 日用 12
22 日用 31
2 日用 52
12 服装 99
0 服装 120
21 服装 199
8 食品 5
9 食品 12
1 食品 14
25 食品 14
19 食品 16
7 食品 18
第三题(10分)

某管理系统的人员信息如下。

1、使用以下字典创建一个DataFrame

2、用‘不明’来填充姓名中的空值

3、计算平均年龄(需排除异常年龄),并用平均年龄替换掉超过120的年龄值

4、将性别中的m、f替换为男、女

5、密码必须由纯数字组成,如果不是,替换为’密码不合法’

最终打印:处理完毕后的DataFrame内容

d2 = {'ID':[1,2,3,4,5,6,7,8],
'姓名':['夏以蕊','翟天曼','苏安萱','覃英耀','黎梅风',None,'覃英耀','伏灵雨'],
'年龄':[20,182,19,21,20,19,21,20],
'性别':['女','女','f','男','m','男','男','女'],
'密码':['123456','123abc','1234','xyz123','88888888','6666','qweasd123','666666']
}
d2 = pd.DataFrame(d2)
d2 = d2[:]
d2['姓名'] = d2['姓名'].fillna('未知')#位置替代None
def func(x):if x['年龄']>=120:x['年龄'] = Nonereturn x
d2 = d2.apply(func,axis=1)
d2['年龄'] = d2['年龄'].fillna(d2['年龄'].mean())
def func1(x):if x['性别']=='f':x['性别'] = '女'return x
d2 = d2.apply(func1,axis=1)
def func2(x):if x['性别']=='m':x['性别'] = '男'return x
d2 = d2.apply(func2,axis=1)
#密码这里我不会了!!!!!!
def isDigit(x):for j in x['密码']:if isinstance(j,str)==True:x['密码']='密码不合法'return xd2 = d2.apply(isDigit,axis=1)
print(d2)

ID 姓名 年龄 性别 密码
0 1 夏以蕊 20.0 女 123456
1 2 翟天曼 20.0 女 123abc
2 3 苏安萱 19.0 女 1234
3 4 覃英耀 21.0 男 xyz123
4 5 黎梅风 20.0 男 88888888
5 6 未知 19.0 男 6666
6 7 覃英耀 21.0 男 qweasd123
7 8 伏灵雨 20.0 女 666666

第四题

(10分)

目前国内新冠疫情的部分数据如下。

1、使用以下字典分别创建两个DataFrame

2、陕西省12月29日~31日分别新增本土155例、165例、174例,创建一个DateFrame表示这三条数据,并纵向串接到第二个DataFrame中

3、将两个DataFram按照省份进行合并(内连接)

4、将表按日期排序(从前到后)

5、去掉累计确诊一列

6、重塑出一个DataFrame,行标签是日期,列标签是省份,现有确诊和新增本土是填充值

7、用0替代所有的空值

最终打印:处理完毕后的DateFrame内容

d3 = {'省份':['北京','浙江','山东','陕西','四川','云南','广东','广西'],'现有确诊':[12,509,24,1765,36,79,124,247],'累计确诊':[1215,2046,1047,2530,1329,1823,3486,641]
}
d4 = {'日期':['12-20','12-21','12-22','12-23','12-24','12-25','12-26','12-27','12-28'],'省份':['广东','广东','广西','陕西','云南','陕西','广西','浙江','陕西',],'新增本土':[6,2,4,52,4,157,7,1,151]}
#1、使用以下字典分别创建两个DataFrame
demo01 = pd.DataFrame(d3)
demo02 = pd.DataFrame(d4)
# 2、陕西省12月29日~31日分别新增本土155例、165例、174例,创建一个DateFrame表示这三条数据,并纵向串接到第二个DataFrame中
d5 = {'日期':['12-29','12-30','12-31'],'省份':['陕西','陕西','陕西'],'新增本土':[155,165,174]}
demo03 = pd.DataFrame(d5)
demo02 = pd.concat([demo02,demo03])
#3、将两个DataFram按照省份进行合并(内连接)
demo = pd.merge(demo01,demo02,on='省份')# 4、将表按日期排序(从前到后)
demo = demo.sort_values(['日期'])
# 5、去掉累计确诊一列
demo = demo.drop(['累计确诊'],axis=1)
# 6、重塑出一个DataFrame,行标签是日期,列标签是省份,现有确诊和新增本土是填充值
demo = demo.pivot(index='日期',columns='省份',values=['现有确诊','新增本土'])
# 7、用0替代所有的空值
demo = demo.fillna(0)
print(demo)
   现有确诊                              新增本土                      

省份 云南 广东 广西 浙江 陕西 云南 广东 广西 浙江 陕西
日期
12-20 0.0 124.0 0.0 0.0 0.0 0.0 6.0 0.0 0.0 0.0
12-21 0.0 124.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0
12-22 0.0 0.0 247.0 0.0 0.0 0.0 0.0 4.0 0.0 0.0
12-23 0.0 0.0 0.0 0.0 1765.0 0.0 0.0 0.0 0.0 52.0
12-24 79.0 0.0 0.0 0.0 0.0 4.0 0.0 0.0 0.0 0.0
12-25 0.0 0.0 0.0 0.0 1765.0 0.0 0.0 0.0 0.0 157.0
12-26 0.0 0.0 247.0 0.0 0.0 0.0 0.0 7.0 0.0 0.0
12-27 0.0 0.0 0.0 509.0 0.0 0.0 0.0 0.0 1.0 0.0
12-28 0.0 0.0 0.0 0.0 1765.0 0.0 0.0 0.0 0.0 151.0
12-29 0.0 0.0 0.0 0.0 1765.0 0.0 0.0 0.0 0.0 155.0
12-30 0.0 0.0 0.0 0.0 1765.0 0.0 0.0 0.0 0.0 165.0
12-31 0.0 0.0 0.0 0.0 1765.0 0.0 0.0 0.0 0.0 174.0

这篇关于panda经典四道题期末考核分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/867781

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

HotSpot虚拟机的经典垃圾收集器

读《深入理解Java虚拟机》第三版笔记。 关系 Serial、ParNew、Parallel Scavenge、Parallel Old、Serial Old(MSC)、Concurrent Mark Sweep (CMS)、Garbage First(G1)收集器。 如图: 1、Serial 和 Serial Old 收集器 2、ParNew 收集器 3、Parallel Sc

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

分享5款免费录屏的工具,搞定网课不怕错过!

虽然现在学生们不怎么上网课, 但是对于上班族或者是没有办法到学校参加课程的人来说,网课还是很重要的,今天,我就来跟大家分享一下我用过的几款录屏软件=,看看它们在录制网课时的表现如何。 福昕录屏大师 网址:https://www.foxitsoftware.cn/REC/ 这款软件给我的第一印象就是界面简洁,操作起来很直观。它支持全屏录制,也支持区域录制,这对于我这种需要同时录制PPT和老师讲

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。

图书管理系统系统分享

分享一个图书管理系统,Java、SpringBoot、Vue和MySQL开发的图书馆管理系统 gitee项目地址:https://gitee.com/yuanmomoya/open-source-project/tree/master/books-management-system GitHub项目地址:https://github.com/yuanmomoya/open-source-pro

站长常用Shell脚本整理分享(全)

站长常用Shell脚本整理分享 站长常用Shell脚本整理分享1-10 站长常用Shell脚本整理分享11-20 站长常用Shell脚本整理分享21-30 站长常用Shell脚本整理分享31-40 站长常用Shell脚本整理分享41-50 站长常用Shell脚本整理分享51-59 长期更新

分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节

1:MSSQL SQL语法篇: BULK INSERT      [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]         FROM 'data_file'        [ WITH       (      [ [ , ] BATCHSIZE = batch_siz