版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章人工智能前世今生【职业能力测评】一、选择题1.被人们称为“人工智能之父”是(C)。马文·闵斯基阿兰·图灵约翰·麦卡锡赫伯特·西蒙2.人工智能元年是指(B)。1955年1956年1957年1958年3.人工智能是集(ABCD)等众多学科为一体的复杂学科。(多选)A.计算机科学B.逻辑学C.心理学D.哲学4.人工智能按照智能程度来分有哪些(BC)?(多选)A.普通人工智能B.弱人工智能C.强人工智能D.专用人工智能5.人工智能有哪几个学派(ACD)?(多选)A.符号主义学派B.自由主义学派C.连接主义学派D.行为主义学派二、思考题1.结合生活实际,请找出你身边的3个人工智能应用场景,并做简要的描述。(略)2.思考人工智能未来将改变哪些行业?并举例说明。(略)三、人机协作探索题如果未来AI能完全模仿人类创作诗歌、音乐,你认为“人类创造力”还有价值吗?要求:基于生成式人工智能工具,人机协作完成“分解问题—查找资料—整理资料—编写报告—制作讲稿—汇报演讲”等过程,学会分析问题和解决问题的基本能力。参考提示词:围绕“如果未来AI能完全模仿人类创作诗歌、音乐,你认为“人类创造力”还有价值吗?”核心问题,按照要求生成汇报演讲内容:1)设计8-12页PPT内容结构(含封面、目录、核心分析、结论、参考文献)。2)避免简单“是/否”回答,需多维度分析人类创造力的独特价值。3)每页PPT用图标/关键词/对比图表提炼核心观点(文字需简洁)。第2章人工智能技术体系【职业能力测评】一、选择题1.被称为人工智能“大脑”的是(C)。机器学习深度学习算法数据2.被称为人工智能“燃料”的是(D)。机器学习深度学习算力数据3.下列说法错误的是?(B)A.神经网络可以泛指生物神经网络和人工神经网络。B.人工神经网络由输入层、隐藏层、输出层组成,层与层之间、层内之间都通过神经元连接。C.深度学习一般指具有多个隐藏层的神经网络。D.卷积神经网络一般包含输入层、卷积层、池化层、全连接层和输出层。4.人工智能的算力通常分为(ABCD)。(多选)A.通用算力B.智能算力C.超级算力D.边缘算力5.人工智能按照技术架构分为(ABC)?(多选)A.基础层B.技术层C.应用层D.场景层二、思考题1.查阅资料文献,分析我国在人工智能领域的技术发展现状。(略)2.思考人工智能快速发展背后的深层原因。(略)三、人机协同探索题随着人工智能技术的大力发展,人工智能将与传统行业深度融合,促进着传统行业的数字化转型,同时又不断衍生出新行业。人工智能将大量取代简单重复性、数字化、程序化等劳动密集型工作,将对工作提出更高的要求。结合自身实际,谈谈大学生应该如何应对人工智能时代?要求:通过“分解问题—查找资料—整理资料—编写报告—制作讲稿—汇报演讲”等过程,学会分析问题和解决问题的基本能力。(略)第3章人工智能伦理法规【职业能力测评】一、选择题1.人工智能伦理的核心要素不包括以下哪一项?(C)。A.尊重和保护人权B.公平性和非歧视性C.高效性和盈利性D.透明度和可解释性2.《全球人工智能治理倡议》由哪个国家发布?(A)A.中国B.美国C.英国D.法国3欧盟发布的关于人工智能的首部系统化监管法律文件是(C)。A.《人工智能协调计划》B.《人工智能白皮书》C.《人工智能法案》D.《可信赖人工智能伦理准则》4.以下哪部法规强化了生成内容的合规标识与责任溯源?(B)A.《新一代人工智能伦理规范》B.《生成式人工智能服务管理暂行办法》C.《新一代人工智能发展规划》D.《算法正义和网络透明度法(草案)》5.中国关于人工智能的基本法律框架主要包括以下哪些选项?(ABD)(多选)A.《中华人民共和国个人信息保护法》B.《中华人民共和国网络安全法》C.《中华人民共和国消费者权益保护法》D.《中华人民共和国数据安全法》二、思考题1.请简述人工智能伦理在实践应用中如何促进医疗领域的公平性和普惠性?(略)2.分析人工智能法规在维护市场秩序方面的作用,并举例说明。(略)三、探索题独居老人对家庭陪伴机器人产生重度情感依赖,子女要求停用机器人引发“数字监护权”诉讼,厂商以“心理健康干预功能”主张保留设备控制权,请分析人类主体性消解风险(如情感替代、决策权转移)。要求:通过“分解问题—查找资料—整理资料—编写报告—制作讲稿—汇报演讲”等过程,学会分析问题和解决问题的基本能力。(略)第4章Python入门与基础---员工薪资计算【职业能力测评】选择题1.以下选项不属于Python语言特点的是(C)。【计算机二级Python语言程序设计真题】平台无关第三方库丰富适合编写系统软件语法简洁2.以下选项,不是Python保留字的选项是(D)。【计算机二级Python语言程序设计真题】andwithiscount3.以下关于Python程序语法的描述,正确的是(D)。【计算机二级Python语言程序设计真题】A.缩进格式要求程序对齐,增添了编程难度B.Python变量名允许以数字开头C.true是Python的关键字D.所有的if、while、def、class语句后面都要用冒号结尾4.以下符合Python语言变量命名规则的是(C)。【计算机二级Python语言程序设计真题】A.5_2B.!1C.turtleD.(ABC)5.以下代码的输出结果是(B)。【计算机二级Python语言程序设计真题】print(0.1+0.2==0.3)A.TrueB.FalseC.-1D.0二、实训操作题为响应国家绿色低碳发展战略,某城市环保部门正在推进空气质量监测智能化,使用AQI作为空气质量评价指标。PM2.5是影响空气质量的重要指标,其浓度与AQI密切相关。根据国家标准,PM2.5浓度在75~115g/m3时,AQI计算公式参数为:BPL=75,BPH=115,ILow=101,IHigh=150,C=污染物PM2.5的实测浓度,请按照如下要求完成编码。要求:输入PM2.5浓度值。清洗数据并转为浮点数。计算AQI,公式AQI=(输出清洗后的浓度值和AQI。参考代码:#输入PM2.5浓度值raw_value=input("请输入PM2.5浓度值:")#转为浮点数pm25=float(raw_value)#AQI计算参数BPL,BPH=75,115I_Low,I_High=101,150#代入公式计算aqi=((I_High-I_Low)/(BPH-BPL))*(pm25-BPL)+I_Low#结果输出print(f"清洗后浓度:{pm25}μg/m³")print(f"AQI计算结果:{aqi:.1f}")第5章流程控制-机器人货物分拣【职业能力测评】一、选择题1.以下代码的输出结果是(A)。x=10ifx>5:print("A")elifx>8:print("B")else:print("C")ABC无输出2.以下代码的输出结果是(A)。foriinrange(3):print(i,end="")0121230123123.以下代码的输出结果是(A)。count=0whilecount<3:print(count,end="")count+=1A.012B.123C.0123D.124.以下代码的输出结果是(A)。foriinrange(5):ifi==3:breakprint(i,end="")A.012B.0123C.01234D.1235.以下代码的输出结果是(A)。foriinrange(5):ifi==3:continueprint(i,end="")A.0124B.01234C.012D.123二、实训操作题编写一个程序,实现以下功能:使用
for
循环遍历1到20的整数;如果数字是3的倍数,输出
Fizz;如果数字是5的倍数,输出
Buzz;如果数字同时是3和5的倍数,输出
FizzBuzz;其他情况输出数字本身。参考代码:foriinrange(1,21):ifi%3==0andi%5==0:print(i,"------>FizzBuzz")elifi%3==0:print(i,"------>Fizz")elifi%5==0:print(i,"------>Buzz")else:print(i,"------>",i)第6章函数和模块-智能小车避障【职业能力测评】一、选择题1.下面函数定义正确的是(B)。A.defmy_func(1,b):returna+bB.defmy_func(a,b=2):returna*bC.defmy_func(a;b):returna/bD.defmy_func(a,3):returna**32.要在代码中使用math.sqrt()的写法是(B)。A.importmath.sqrtB.frommathimportsqrtC.importmath->sqrtD.includemath3.执行下面代码会输出(A)。defadd(a,b):returna+bresult=add(3,5)print(result)A.8B.35C.没有输出D.报错4.函数中return的作用是(B)。A.打印结果B.结束函数并返回一个值C.循环执行代码D.定义变量5.使用random.randint(0,10)可以生成的整数范围是(A)。A.0到10(包括0和10)B.0到10(不包括10)C.1到10(包括1和10)D.1到10(不包括10)二、实训操作题定义一个名为calculate_sum_diff的函数,并编写主程序调用该函数,满足以下要求: (1)函数参数:接收两个整数a和b。 (2)函数功能:计算两数之和(a+b)。计算两数之差(a-b)。 (3)函数返回值:直接打印"和为*,差为*"。(4)主程序代码:调用函数,实参为a=5和b=3,输出结果。参考代码:defcalculate_sum_diff(a,b):total=a+bdifference=a-bprint(f"和为{total},差为{difference}")if__name__=="__main__":calculate_sum_diff(5,3)第7章组合数据类型-智能泊车管理【职业能力测评】一、选择题1.以下哪个操作可以将两个字符串连接起来?(A)A.+B.-C.*D./2.列表(list)是一种(A)。A.有序集合,可以包含重复元素B.无序集合,不能包含重复元素C.只包含数字的集合D.只包含字符串的集合3.元组(tuple)与列表的主要区别在于(C)。A.元组可以被索引和切片B.元组是无序的C.元组是不可变的D.元组只能包含一个元素4.集合(set)中的元素是(B)。A.有序的B.无序的C.可以重复的D.必须按照字母顺序排列5.下列关于集合(set)说法正确的是(B)。A.有序的B.不可以重复C.可以通过索引访问D.不可变的6.以下哪个函数可以用来获取字符串的长度?(A)A.len()B.size()C.count()D.length()7.要将一个字符串转换为列表,可以使用哪个方法?(A)A.list()B.tuple()C.set()D.dict()8.字符串s="abcdefg",执行s[::-1]的结果是(A)。A."gfedcba"B.报错C."abcdefg"D."a"9.要创建一个空集合,正确的是(B)。A.set1={}B.set2=set()C.set3=[]D.set4={[]}10.对于字符串s="Pythonisgreat",要获取子串"is",正确的切片操作是(A)。A.s[7:9]B.s[6:8]C.s[7:8]D.s[6:9]二、实训操作题1.编写一个函数,接收一个字符串作为参数,返回该字符串的反转字符串。参考代码:defreverse_string(str):
returnstr[::-1]
print(reverse_string("abcd"))2.编写一个函数,该函数接收一个整数列表作为参数,返回列表中所有大于10且为偶数的元素组成的新列表。参考代码:deffilter_even_numbers(lst):
#初始化结果列表
result=[]
#遍历输入列表
fornuminlst:
#检查元素是否满足条件
ifnum>10andnum%2==0:
#添加满足条件的元素到结果列表
result.append(num)
#返回结果列表
returnresult
print(filter_even_numbers([12,13,2,3,45,23,26]))3.编写一个函数,接受一个字符串作为参数,返回一个字典,字典的键是字符串中的字符,值是该字符在字符串中出现的次数。参考代码:defcount_characters(str):
#初始化空字典
char_count={}
#遍历字符串
forcharinstr:
#检查字符是否已在字典中
ifcharinchar_count:
char_count[char]+=1
else:
char_count[char]=1
#返回结果字典
returnchar_count
print(count_characters("abcdbcade"))第8章文件与异常-项目日报管理【职业能力测评】一、选择题1.以下模式中,(D)用于打开文件进行读取和写入。’r’’w’’a’’r+’2.当使用open()函数打开文件时,如果文件不存在且指定的模式为写入,会发生(B)。抛出异常创建一个新文件什么也不做程序崩溃3.以下异常中,(B)用于处理文件读取错误。A.FileNotFoundErrorB..IoErrorC.ValueErrorD.TypeError4.在处理文件时,使用with语句的主要优点是(A)。A.自动处理文件关闭B.提高文件读取速度C.可以同时处理多个文件D.减少代码量5.以下代码中,用于读取文件内容并逐行打印的正确方式是(C)。withopen('file.txt','r')asf:#选项A.print(f.readline())B.forlineinf.readlines():print(line)C.forlineinf:print(line)D.print(f.read())二、判断题1.要以追加模式打开文件,应使用的模式是a。2.当读取文件时,如果到达文件末尾,readline()方法会返回空字符串。3.处理异常时,使用try语句后,必须跟上___except___和finally语句中的至少一个。4.在Python中,捕获异常使用except语句。5.如果在写入文件时不想覆盖原有内容,应使用的模式是a。三、实训操作题【Python程序开发-技能竞赛真题】将长沙近七天的历史天气数据保存到txt文件中,列名信息有城市、日期、最高气温、最低气温、天气、风向。具体数据如图所示:参考代码:fromdatetimeimportdatetime,timedeltadefgenerate_weather_data():"""生成长沙近七天的模拟天气数据"""#使用固定的日期范围(与示例一致)base_date=datetime(2025,3,12)date_list=[(base_date+timedelta(days=i)).strftime("%Y-%m-%d")foriinrange(7)]#示例数据weather_data=[{"城市":"长沙","日期":date_list[0],"最高气温":"28℃","最低气温":"18℃","天气":"晴","风向":"东风"},{"城市":"长沙","日期":date_list[1],"最高气温":"26℃","最低气温":"17℃","天气":"多云","风向":"北风"},{"城市":"长沙","日期":date_list[2],"最高气温":"24℃","最低气温":"16℃","天气":"小雨","风向":"南风"},{"城市":"长沙","日期":date_list[3],"最高气温":"22℃","最低气温":"15℃","天气":"阴","风向":"西风"},{"城市":"长沙","日期":date_list[4],"最高气温":"25℃","最低气温":"17℃","天气":"晴","风向":"东风"},{"城市":"长沙","日期":date_list[5],"最高气温":"27℃","最低气温":"19℃","天气":"多云","风向":"北风"},{"城市":"长沙","日期":date_list[6],"最高气温":"29℃","最低气温":"20℃","天气":"晴","风向":"南风"},]returnweather_datadefsave_weather_data_to_txt(weather_data,filename="changsha_weather.txt"):"""将天气数据保存到TXT文件(与示例格式完全一致)"""try:#打开文件并写入数据withopen(filename,mode="w",encoding="utf-8")asfile:#写入列名(使用中文逗号)file.write("城市,日期,最高气温,最低气温,天气,风向\n")#写入天气数据(使用中文逗号和英文逗号混合,与示例一致)fordatainweather_data:line=f"{data['城市']},{data['日期']},{data['最高气温']},{data['最低气温']},{data['天气']},{data['风向']}\n"file.write(line)print(f"天气数据已成功保存到{filename}")returnTrueexceptPermissionError:print("错误:没有权限写入文件,请检查文件路径或权限设置。")returnFalseexceptExceptionase:print(f"发生未知错误:{e}")returnFalsedefdisplay_weather_data(weather_data):"""在控制台显示天气数据"""print("\n长沙近七天历史天气数据:")print("="*50)print("城市,日期,最高气温,最低气温,天气,风向")fordatainweather_data:print(f"{data['城市']},{data['日期']},{data['最高气温']},{data['最低气温']},{data['天气']},{data['风向']}")defmain():"""主函数"""#生成天气数据weather_data=generate_weather_data()#显示在控制台display_weather_data(weather_data)#保存到文件success=save_weather_data_to_txt(weather_data)print(f"天气数据已成功保存到{filename}")ifsuccess:#扩展内容:读取并显示文件内容以验证try:withopen("changsha_weather.txt","r",encoding="utf-8")asfile:print("\n文件内容验证:")print("="*50)print(file.read())exceptFileNotFoundError:print("错误:找不到文件")exceptExceptionase:print(f"读取文件时发生错误:{e}")if__name__=="__main__":main()第9章面向对象编程—学生就业管理【职业能力测评】一、选择题1.在Python中,哪个关键字用于定义类?(A)A.
classB.
defC.
funcD.
type2.在Python中,如何实现方法重写?(B)A.使用override关键字B.直接在子类中定义同名方法C.使用super()调用父类方法D.使用extends关键字3在Python中,以下哪个关键字用于创建一个私有属性?(D)A.
privateB.
publicC.
protectedD.
__private4.在Python中,以下哪些方法用于类的继承?(AB)(多选)A.
classChild(Parent):B.
classChild(Parent,AnotherParent):C.
classChild:D.
classChild(Parent,object):5.在Python中,以下哪些关键字用于定义类的特殊方法?(ABC)(多选)A.
__init__()B.
__str__()C.
__getitem__()D.
Classmethod二、实训操作题请编写一个Python程序,实现一个名为Rectangle的类,该类具有以下特性:私有属性__width和__height,分别表示矩形的宽和高。构造方法__init__(self,width,height),用于初始化矩形的宽和高。方法area(self),返回矩形的面积。方法perimeter(self),返回矩形的周长。方法resize(self,width,height),用于调整矩形的宽和高。特殊方法__str__(self),返回矩形的描述信息,格式为"Rectangle(width,height)"。要求:确保__width和__height在类外部不可直接访问。提供一个测试用例,创建Rectangle对象,并调用其方法验证功能。参考代码:classRectangle:
def__init__(self,width,height):
self.__width=width#私有属性
self.__height=height#私有属性
defarea(self):
"""计算矩形面积"""
returnself.__width*self.__height
defperimeter(self):
"""计算矩形周长"""
return2*(self.__width+self.__height)
defresize(self,width,height):
"""调整矩形尺寸"""
self.__width=width
self.__height=height
def__str__(self):
"""返回对象的描述信息"""
returnf"Rectangle({self.__width},{self.__height})"
#测试用例
if__name__=="__main__":
#创建矩形对象
rect=Rectangle(2,3)
#验证初始状态
print(rect)#输出:Rectangle(2,3)
print("面积:",rect.area())#输出:6
print("周长:",rect.perimeter())#输出:10
#调整尺寸后验证
rect.resize(4,5)
print("\n调整尺寸后:")
print(rect)#输出:Rectangle(4,5)
print("新面积:",rect.area())#输出:20
print("新周长:",rect.perimeter())#输出:18
#验证私有属性不可直接访问(尝试访问会报错)
#print(rect.__width)#取消注释会触发AttributeError三、思考题描述Python中的“鸭子类型”(DuckTyping)及其在面向对象编程中的意义。提示:在Python中,“鸭子类型”是一种动态类型检查的概念,它不关注对象的实际类型,而是关注对象能否执行某些行为(例如具有某些方法或属性)。这种类型的概念支持多态性,使得代码更加灵活和可扩展。(略)第10章网络爬虫基础-电商数据爬取与解析【职业能力测评】一、选择题1.以下哪个库常用于Python网络爬虫?(C)numpypandasrequestsmatplotlib2.在发送HTTP请求时,以下哪个方法通常用于获取网页内容?(A)GETPOSTPUTDELETE3.要解析HTML内容,以下哪个库比较常用?(A)A.BeautifulSoupB.ScrapyC.SeleniumD.Flask4.以下哪个状态码表示请求成功?(A)A.200B.404C.500D.3015.以下哪种数据格式常用于数据交换和存储在网络爬虫中?(D)A.CSVB.JSONC.XMLD.以上都是二、填空题1.网络爬虫的主要流程包括发送请求、获取响应、解析内容和存储数据。2.在Python中,通过requests模块可以发送HTTP请求。3.爬虫中,常常需要设置请求头来模拟不同的用户访问。4.抓取到的数据通常需要进行清洗操作,以去除噪声和提取有用信息。5.常见的HTTP头部字段包括User-Agent、Referer和Cookie等。三、人机协作探索题假设你是一名数据分析师,受某健康研究机构委托,需要收集全国三甲医院的药品价格数据,用于分析药品价格差异。你在网上发现了一个非官方的医疗信息网站(假设为:),该网站聚合了全国各大医院的实时药品价格信息。请从技术、伦理、法律三个维度综合分析,直接爬取该网站()的数据是否存在潜在风险和问题?如果你认为存在风险,请阐述你会如何以更合规的方式完成这项研究任务。要求:基于生成式人工智能工具,人机协作完成“分解问题—查找资料—整理资料—编写报告—制作讲稿—汇报演讲”等过程,加深对网络爬虫技术应用边界的全面理解。参考答案:略人工智能+金融应用【职业能力测评】一、选择题1.机器学习按照学习方式可分为哪几类?(ABCD)(多选)A.有监督学习B.半监督学习C.无监督学习D.强化学习2.线性回归和逻辑回归之间的主要区别是(ABC)。(多选)A.线性回归用于预测连续值,而逻辑回归用于预测二分类标签。
B.线性回归的输出范围是(-∞,+∞),而逻辑回归的输出范围是(0,1)。
C.线性回归通常使用均方误差(MSE)作为损失函数,而逻辑回归使用交叉熵损失函数。
D.线性回归可以处理多分类问题,而逻辑回归只能处理二分类问题。3.线性回归是一种(B)。A.分类算法B.回归算法C.聚类算法D.优化算法4.逻辑回归是一种(A)。A.分类算法B.回归算法C.聚类算法D.优化算法5.准确率是最常用的分类性能指标,其计算公式为(D)。Accuracy=TP/((TP+FP)Accuracy=TP/(TP+FN)Accuracy=1/Precisin+1/RecallAccuracy=(TP+TN)/(TP+FN+FP+TN)二、实训操作题【Python程序开发-技能竞赛真题】配套教学资源中的day.csv文件中包含了多个城市2011年1月1日至2022年4月30日的天气数据。原始数据中存在脏数据,不能直接用于后续数据分析,现需要对该表数据进行清洗操作,并将清洗之后的数据进行保存。参考代码:importnumpyasnp
importpandasaspd
importdatetimeasdt
defdeal_tem_col(df,tem_col):
"""将温度处理成浮点型,传入df和要处理的列名"""
#将温度后面的C去掉
df[tem_col]=df[tem_col].apply(lambdax:x[:-1]ifxisnotnp.nanelsex)
#将空串替换为np.nan
df[tem_col]=df[tem_col].replace('',np.nan)
#将除空值以外的数据变为浮点型,方便计算
df[tem_col]=df[tem_col].apply(lambdax:float(x)ifxisnotnp.nanelsex)
defgen_full_df(origin_df,all_date,left_on,right_on,sorted_field,drop_col=None):
"""
定义函数生成日期完整的DataFrame
origin_df:原始数据
all_date:完整的日期
left_on:左连接字段
right_on:右连接字段
sort_field:排序字段
drop_col:要删除的字段
"""
new_list=[]#获取城市
citys=pd.unique(origin_df['city'])
forcityincitys:
#筛选城市的DataFrame
city_df=origin_df.loc[origin_df['city']==city]
#将城市的DataFrame和日期合并
merge_df=pd.merge(city_df,all_date,left_on=left_on,right_on=right_on,how='right')
#合并后,有些数据城市为nan,修改城市列
merge_df['city']=city
#将表中的date_week删掉
ifdrop_col:
merge_df=merge_df.drop(labels=drop_col,axis=1)
#按日期降序排序
merge_df=merge_df.sort_values(by=sorted_field,ascending=False,ignore_index=True)
new_list.append(merge_df)
full_df=pd.concat(new_list)
returnfull_df
defget_wind_direction_and_level(winds):
"""
传入原有风力,得到风向和风力等级
winds:原有的风力列
"""
#定义风向和风力列表
wind_directions,wind_levels=[],[]
#遍历风力
forwindinwinds:
try:
wind_split=wind.split()
#如果切分长度等于2
iflen(wind_split)==2:
#前面代表风向
wind_directions.append(wind_split[0])
#后面代表风力等级
wind_levels.append(wind_split[1])
else:
wind_directions.append(np.nan)
wind_levels.append(np.nan)
exceptException:
wind_directions.append(np.nan)
wind_levels.append(np.nan)
returnwind_directions,wind_levels
defget_mode(x):
"""求众数,求不到返回nan"""
try:
returnx.mode().values[0]
exceptException:
returnnp.nan
deffill_null_value(wait_fill_df,to_fill_df,col_name,idx1,idx2):
"""
wait_fill_df:待填充的DataFrame
to_fill_df:填充的DataFrame
col_name:需要填充列名
idx1:从填充DataFrame中去查询数据的字段索引
idx2:从填充DataFrame中去查询数据的字段索引
"""
#按列筛选出该列存在缺失值的数据
col_value=wait_fill_df.loc[wait_fill_df[col_name].isnull()]
#空值列表
null_list=[]
forrowincol_value.values:#计算应该填充的值
null_v=to_fill_df.loc[(row[idx1],row[idx2]),col_name]
null_list.append(null_v)
#将计算出来的值赋值到原来为nan的地方
wait_fill_df.loc[wait_fill_df[col_name].isnull(),col_name]=null_list
print("%s填充成功"%col_name)
#处理每日天气数据
defdeal_day_data():
#1.1获取2011年1月1日至2022年4月30日的所有天数
days=pd.date_range(start='2011-01-01',end='2022-04-30',freq='D').to_frame(name='date').astype({'date':'str'})
print("天数:%s"%len(days))
#1.2读取每日数据,根据数据实际存放路径修改
day_df=pd.read_csv('../data/day.csv')
print(day_())
print(day_df.describe())
print("#"*30)
#将id设置为行索引
day_df=day_df.set_index('id')
#1.3处理date_week
day_df['date_week']=day_df['date_week'].apply(lambdax:x[:10])
#1.4处理最高温和最低温
#查看以下最高温中各类数据的频数,除了空值之外,基本就是数字+C这种形式
vc=day_df['hightest_tem'].value_counts()
#print(vc)
deal_tem_col(day_df,'hightest_tem')
deal_tem_col(day_df,'lowest_tem')
#1.5去重,按照城市和日期去重
print("去重前:",len(day_df))#后续删除
day_df=day_df.drop_duplicates(subset=['city','date_week'])
print("去重之后数据条数:%s"%len(day_df))
#1.6生成日期完整的DataFrame
full_day_df=gen_full_df(day_df,days,left_on='date_week',right_on='date',sorted_field='date',
drop_col='date_week')
#1.7从风力中得到风向和风力等级
full_day_df['wind_direction']=get_wind_direction_and_level(full_day_df['wind'].values)[0]
full_day_df['wind_level']=get_wind_direction_and_level(full_day_df['wind'].values)[1]
#处理之后,将原来的风力删掉
full_day_df.drop(labels='wind',axis=1,inplace=True)
#1.8填充缺失值
#每天的缺失值需要按照其它年份相应月相应天的平均值来填充,比如2022年1月1日的数据缺失,我们需要用除该年之外的其它年份的1月1日数据填充
#首先需要生成一列,月日,用于分组
full_day_df['month_day']=full_day_df['date'].apply(lambdax:x[5:])
#按照城市和month_day分组,温度求平均值,weather、风向、风力等级求众数,这些值计算出来用于填充缺失值
month_day_group=full_day_df.groupby(by=['city','month_day']).agg({'hightest_tem':'mean','lowest_tem':'mean',
'weather':get_mode,
'wind_direction':get_mode,
'wind_level':get_mode})
#对刚才分组得到的df中的nan进行填充,以该列的平均值和众数来填充
month_day_group['hightest_tem']=month_day_group['hightest_tem'].fillna(month_day_group['hightest_tem'].mean())
month_day_group['lowest_tem']=month_day_group['lowest_tem'].fillna(month_day_group['lowest_tem'].mean())
month_day_group['weather']=month_day_group['weather'].fillna(month_day_group['weather'].mode()[0])
month_day_group['wind_direction']=month_day_group['wind_direction'].fillna(
month_day_group['wind_direction'].mode()[0])
month_day_group['wind_level']=month_day_group['wind_level'].fillna(month_day_group['wind_level'].mode()[0])
#print(month_day_group)
#为含有缺失值的列进行填充
fill_null_value(full_day_df,month_day_group,'hightest_tem',0,-1)
fill_null_value(full_day_df,month_day_group,'lowest_tem',0,-1)
fill_null_value(full_day_df,month_day_group,'weather',0,-1)
fill_null_value(full_day_df,month_day_group,'wind_direction',0,-1)
fill_null_value(full_day_df,month_day_group,'wind_level',0,-1)
#1.9这里处理一下,如果最高温比最低温还低,则将最高温改为最低温+5
diff=full_day_df['hightest_tem']-full_day_df['lowest_tem']
diff[diff<0]=5
full_day_df['hightest_tem']=full_day_df['lowest_tem']+diff
#1.10温度保留2位小数
full_day_df['hightest_tem']=full_day_df['hightest_tem'].apply(lambdax:round(x,2))
full_day_df['lowest_tem']=full_day_df['lowest_tem'].apply(lambdax:round(x,2))
#生成星期
weekday_dic={0:"星期一",1:'星期二',2:'星期三',3:'星期四',4:'星期五',5:'星期六',6:'星期天'}
full_day_df['weekday']=full_day_df['date'].apply(
lambdax:weekday_dic[dt.datetime.strptime(x,'%Y-%m-%d').weekday()])
#查看清洗后的info()、describe()
print(full_day_())
print("*"*30)
print(full_day_df.describe())
#1.11存储,根据数据实际需存放路径修改
full_day_df.to_csv('../data/cleaned_data/clean_day.csv',index=False,encoding='utf-8')
if__name__=='__main__':
deal_day_data()代码运行结果:天数:4138<class'pandas.core.frame.DataFrame'>RangeIndex:127666entries,0to127665Datacolumns(total7columns):#ColumnNon-NullCountDtype----------------------------0id127666non-nullint641city127666non-nullobject2date_week127666non-nullobject3hightest_tem127664non-nullobject4lowest_tem127663non-nullobject5weather127654non-nullobject6wind127665non-nullobjectdtypes:int64(1),object(6)memoryusage:6.8+MBNoneidcount127666.000000mean63835.487021std36855.085885min0.00000025%31918.25000050%63835.50000075%95751.750000max127670.000000##############################去重前:127666去重之后数据条数:123542hightest_tem填充成功lowest_tem填充成功weather填充成功wind_direction填充成功wind_level填充成功<class'pandas.core.frame.DataFrame'>Int64Index:124140entries,0to4137Datacolumns(total9columns):#ColumnNon-NullCountDtype----------------------------0city124140non-nullobject1hightest_tem124140non-nullfloat642lowest_tem124140non-nullfloat643weather124140non-nullobject4date124140non-nullobject5wind_direction124140non-nullobject6wind_level124140non-null
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年南阳科技职业学院单招职业适应性考试题库及答案详解(典优)
- 2026年厦门华厦学院单招职业适应性测试题库附答案详解(精练)
- 2026年内蒙古民族幼儿师范高等专科学校单招职业倾向性考试题库带答案详解(完整版)
- 2026年内蒙古美术职业学院单招职业技能测试题库及一套参考答案详解
- 2026年内蒙古科技职业学院单招综合素质考试题库及参考答案详解(新)
- 2026年内蒙古锡林郭勒盟单招职业倾向性测试题库带答案详解(突破训练)
- 2026年内蒙古阿拉善盟单招职业适应性测试题库及完整答案详解1套
- 2026年克拉玛依职业技术学院单招职业技能考试题库含答案详解(夺分金卷)
- 2026年南充文化旅游职业学院单招职业适应性考试题库带答案详解
- 2026年厦门东海职业技术学院单招综合素质考试题库含答案详解(基础题)
- 医院放射应急管理培训
- 可持续采购培训课件
- 企业付款流程及管理新制度发布
- 2025年高考英语复习知识清单(全国)专题45 应用文写作11组34个满分句式68个真题例句 (讲案)解析版
- 2023《广东省建设工程消防设计审查疑难问题解析》
- 中学-学年第二学期教科室工作计划
- 2024年贵州省公务员考试《行测》真题及答案解析
- DB34T 3267-2024 公路养护工程设计文件编制规范
- 英语阅读理解50篇
- 催化剂导论课件
- 科技研发中心物业管理服务方案
评论
0/150
提交评论