2023(春)Python程序设计作业5:Pandas基础技能及综合应用

软工211-428-卢天奕。 2023-春-学生 2023-06-15 17:28:26

作业要求

  1.    [基础要求]  基于Jupyter Notebook 完成以下实验一、实验二、实验三;
  2.    [重点要求]  修改以下示例代码,以测试不同知识点。在博客上写出你:
  •  修改的代码、
  •  修改的愿意(意图)
  •  代码运行的结果
  •  你的结论

实验一:Series对象的应用

实验要求:

  • 定义一个Series对象,包含5个整数数据;
  • 访问、修改Series对象中的数据;
  • 打印Series对象;
  • 对Series对象进行计算,如求和、求平均值等。

修改的代码


 
  1. import pandas as pd

  2. # 定义Series对象

  3. data = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])

  4. # 访问Series对象中的数据

  5. print(data['a'])

  6. print(data['c':'d'])

  7. # 修改Series对象中的数据

  8. data['b'] = 25

  9. # 打印Series对象

  10. print(data)

  11. # 对Series对象进行计算

  12. print("和:", data.sum())

  13. print("平均值:", data.mean())

修改的意愿:计划使用index参数定义了Series对象的索引,可以使用索引名称或位置访问和修改数据

运行结果:

结论:修改可实现,只是略繁琐 

实验二:DataFrame对象的应用

实验要求:

  • 定义一个DataFrame对象,包含3个列,每列分别为整数、浮点数和字符串类型;
  • 访问、修改DataFrame对象中的数据;
  • 对DataFrame对象进行计算,如求和、求平均值等。

修改的代码:


 
  1. import pandas as pd

  2. # 定义DataFrame对象

  3. data = pd.DataFrame({'整数': [1, 2, 3, 4, 5], '浮点数': [1.2, 2.3, 3.4, 4.5, 5.6], '字符串': ['a', 'b', 'c', 'd', 'e']}, index=['r1', 'r2', 'r3', 'r4', 'r5'])

  4.  
  5. # 访问DataFrame对象中的数据

  6. print(data.iloc[2, 1])

  7. # 修改DataFrame对象中的数据

  8. data.iat[2, 1] = 10.5

  9. # 打印DataFrame对象

  10. print(data)

  11. # 对DataFrame对象进行计算

  12. print("和:", data.sum())

  13. print("平均值:", data.mean())

修改的意愿:使用index参数定义了DataFrame对象的行索引,bing1使用.iloc[]方法和行/列位置访问和修改数据。我们还可以使用.iat[]方法来访问和修改单个值。

运行结果:

 结论:index方法略繁琐,其次可以借助一些pandas哭的方法

实验三:综合实例

实验要求:

  • 定义一个包含省会城市、人口、GDP、城市面积的DataFrame对象;
  • 计算各种排名,如人口最多的城市、GDP最高的城市等;
  • 使用Pandas绘图,可视化上述实验结果。

    修改的代码:

    
     
    1. import pandas as pd

    2. import matplotlib.pyplot as plt

    3. # 定义DataFrame对象

    4. data = pd.DataFrame({

    5. '城市名称': ['北京', '上海', '广州', '深圳',],

    6. '人口': [2171, 2424, 1500, 1303],

    7. 'GDP': [330320, 32679, 20353, 22458],

    8. '城市面积': [16410, 6340, 7434, 1996]

    9. })

    10. # 计算人口最多的城市

    11. pop_rank = data.sort_values(by='人口', ascending=False)

    12. print('人口最多的城市:', pop_rank.iloc[0]['城市名称'])

    13. # 计算GDP最高的城市

    14. gdp_rank = data.sort_values(by='GDP', ascending=False)

    15. print('GDP最高的城市:', gdp_rank.iloc[0]['城市名称'])

    16. # 计算人口密度排名

    17. data['人口密度'] = data['人口'] / data['城市面积']

    18. density_rank = data.sort_values(by='人口密度', ascending=False)

    19. print('人口密度排名:', density_rank['城市名称'].values)

    20. # 使用Pandas绘图

    21. fig, axs = plt.subplots(2, 2, figsize=(12, 8))

    22. data.plot(kind='bar', x='城市名称', y='人口', ax=axs[0][0])

    23. axs[0][0].set_title('城市人口')

    24. data.plot(kind='bar', x='城市名称', y='GDP', ax=axs[0][1])

    25. axs[0][1].set_title('城市GDP')

    26. data.plot(kind='bar', x='城市名称', y='城市面积', ax=axs[1][0])

    27. axs[1][0].set_title('城市面积')

    28. data.plot(kind='bar', x='城市名称', y='人口密度', ax=axs[1][1])

    29. axs[1][1].set_title('城市人口密度')

    30. plt.tight_layout()

    31. plt.show()

    修改的意愿:使用plot()方法是一种更简单的方法来对DataFrame对象进行可视化,但可能会对绘图的样式和布局有所限制。

    运行的结果:

     

     我的结论:Pandas能够很好地处理多列数据,并支持数据透视表的应用,可以方便地对数据进行汇总、分组和分析。

...全文
76 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文档为一份《计算机程序设计语言(C++)》课程的实验报告,涵盖了从基础语法到面向对象编程的多个实验内容。实验内容包括基础语法练习(如银行存款计算、数值比较、科学计算)、控制结构(分支与循环,如闰年判断、素数判定、Kaprekar黑洞数)、数组操作(一维与二维数组的排序、查找、极值计算、杨辉三角)、函数定义与应用(递归、参数传递、函数重载)以及面向对象编程(类与对象的设计、继承、多态性、文件操作)。文档详细展示了每个实验的任务描述、具体C++代码实现、测试结果及实验分析,体现了从简单到复杂、逐步深入的学习路径。; 适合人群:具备C++基础语法知识,正在学习或巩固程序设计课程的在校大学生及初级编程学习者。; 使用场景及目标:①作为C++课程的配套实验指导材料,帮助学生通过实践掌握编程基础知识和核心算法;②用于自学练习,提升对循环、数组、函数和面向对象等核心概念的理解与编码能力。; 阅读建议:学习者应结合文档中的代码实例,动手在编程环境中逐一实现并调试,重点关注代码逻辑、边界条件处理和算法效率,通过对比预期输出与实际输出加深对知识点的掌握。

162

社区成员

发帖
与我相关
我的任务
社区描述
软件工程老师
python 高校 江苏省·南通市
社区管理员
  • juking@ntu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧