2023(春)Python程序设计作业5:Pandas基础技能及综合应用
作业要求
- [基础要求] 基于Jupyter Notebook 完成以下实验一、实验二、实验三;
- [重点要求] 修改以下示例代码,以测试不同知识点。在博客上写出你:
- 修改的代码、
- 修改的愿意(意图)
- 代码运行的结果
- 你的结论
实验一:Series对象的应用
实验要求:
- 定义一个Series对象,包含5个整数数据;
- 访问、修改Series对象中的数据;
- 打印Series对象;
- 对Series对象进行计算,如求和、求平均值等。
实验源码:
- import pandas as pd
- import matplotlib.pyplot as plt
- # 实验一
- s = pd.Series([10, 20, 30, 40, 50])
- # s = pd.Series(['abbb', 20, 30, 40, 50])
- print(s[0])
- print(s)
- # print(s[-1])
- print(s[0: 5])
- s[0] = 11
- print(s[0])
- print('求和', s.sum())
- print('求平均', s.mean())
- print('求最大值', s.max())
- print('求最小值', s.min())
代码执行结果:
代码修改及意图:(1)对Series对象生成的数组填充不同类型的数据,观察其是否能存储不同类型的数据;
(2)打印s[-1],观察它与Python中的列表的区别;
(3)对生成的数组进行求和、求平均、求最大值和最小值。
结论:有Series对象生成的数组,它与Python中的列表相似和不同支持,首先是Series对象生成的数组不支持反向索引,及无法使用s[-1]来获取数组中的最后一个元素;它与列表一样,均可以使用切片的方式来获得数组片段;Series对象生成的数组有许多内置函数,来进行数据处理。
实验二:DataFrame对象的应用
实验要求:
- 定义一个DataFrame对象,包含3个列,每列分别为整数、浮点数和字符串类型;
- 访问、修改DataFrame对象中的数据;
- 对DataFrame对象进行计算,如求和、求平均值等。
实验源码:
- import pandas as pd
- import matplotlib.pyplot as plt
- data = {
- 'int_col': [1, 2, 3, 4, 5],
- 'float_col': [1.2, 1.3, 1.4, 1.5, 1.6],
- 'str_col': ['a', 'b', 'c', 'd', 'e']
- }
- df = pd.DataFrame(data)
- print(df)
- df.loc[0, 'int_col'] = 3
- print(df)
- print(df.sum())
- print(df.mean(numeric_only=True))
代码执行结果:

代码修改及其意图:(1)在求平均值时,将代码修改为 print(df.mean(numeric_only=True)) ,因为df.mean()方法只能求数值型数据的平均值,不能求字符串或者其他非数值型数据的平均值,所以要使用 numeric_only = True 来使它只求数据数值型的列的平局值。
结论:pandas中的DataFrame() 方法可以将字典(列表)生成矩阵的形式,从而能够使对数据的操作更加方便。有DataFrame()生成的数据结构,每一行和每一 列都有相应的行和列的名称,可以通过同时使用行和列的名称来获取相应的数据。在使用该数据结果求行(列)平均值时,一定要保证该行(列)中的所有 元素均为数值型数据。
实验三:综合实例
实验要求:
- 定义一个包含省会城市、人口、GDP、城市面积的DataFrame对象;
- 计算各种排名,如人口最多的城市、GDP最高的城市等;
- 使用Pandas绘图,可视化上述实验结果。
实验源码:
-
import pandas as pd
-
import matplotlib.pyplot as plt
-
data = {
-
'city': ['beijing', 'shanghai', 'guangzhou', 'shenzhen'],
-
'population': [2171, 2424, 1500, 1303],
-
'gdp': [20000, 30000, 19002, 19990],
-
'area': [16410, 6340, 7434, 1996]
-
}
-
df = pd.DataFrame(data)
-
print(df)
-
pop_rank = df['population'].rank(ascending=False)
-
gdp_rank = df['gdp'].rank(ascending=False)
-
area_rank = df['area'].rank(ascending=False)
-
print(pop_rank)
-
print(gdp_rank)
-
print(area_rank)
-
ax = df.plot(kind='bar', x='city', y=['population', 'gdp', 'area'], title='China Capital Cities')
-
plt.show()
代码执行结果:


代码修改及其意图:我将data字典中城市的名称由中文全部改为了字母拼音,为了使城市的名称能够展示在数据统计图的 X 轴上,必须得使用英文字母。
结论:pandas库可以很方便的对矩阵中的每一列(行)中的数据进行按照升序(降序)来排列;matplotlib库能够将pandas库中生成的矩阵的每一列进行数据统计,并生成相应的数据统计图。
相关推荐
高校及科研院所如何利用外部数据完善技术转移转化机制.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
完全复现虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比(Simulink仿真、Matlab代码实现)
内容概要:本文档围绕“【完全复现】虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比”这一主题,利用Simulink和Matlab平台,系统性地实现了虚拟同步发电机(VSG)的自适应惯量与阻尼控制策略的建模与仿真。内容涵盖VSG的核心控制原理、系统动态响应特性分析、根轨迹绘制以及在不同调节系数下的性能对比研究,旨在深入剖析关键控制参数对系统稳定性与动态性能的影响机制,为新能源并网系统中提升频率支撑能力和暂态稳定性的控制策略设计提供理论依据和技术支持。; 适合人群:具备扎实的电力系统分析与自动控制理论基础,熟练掌握Matlab/Simulink仿真工具,主要从事新能源发电、微电网运行、电力电子变换器控制或电力系统稳定研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展虚拟同步发电机(VSG)的建模与先进控制策略的深入研究;②探究自适应惯量与阻尼控制对改善电网频率响应速度和平抑功率波动的作用机理;③运用根轨迹法进行系统稳定性分析,并指导控制器参数的优化整定;④完成高水平学术论文撰写或科研项目申报所需的仿真复现实验。; 阅读建议:本资源以“完全复现”为核心目标,提供了完整的仿真模型与配套代码。使用者应在深入理解同步发电机转子运动方程、虚拟惯量及阻尼物理意义的基础上,结合电力系统暂态稳定理论,逐步操作并调试仿真模型,尤其需关注不同调节系数变化对系统动态性能指标(如超调量、调节时间)的影响,从而深化对VSG内在控制机制与稳定边界的认知。
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-dQ4ehf7C1792158475
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;DtPXB1792158476
员工满意度数据集(11列,12000 条记录)CSV 合成
详情介绍:该 HR 员工数据集含 12,000 条 ×11 列(满意度、绩效评估、项目数、月均工时、司龄、工伤、福利包、晋升、部门、薪资),无缺失值但无离职标签列,且存在数据质量问题(141 条负绩效评估、144 条负工时、49.4% 异常高工伤率、项目数仅 0/1/2),疑似经过修改或合成,不能直接做经典的员工离职预测,适合做满意度回归、薪资三分类、晋升预测或员工聚类分析,使用前必须清洗异常值并注意数据真实性限制。
科技服务机构如何通过数据服务增强市场竞争力?.docx
科技服务机构如何通过数据服务增强市场竞争力?


