2023(春)Python程序设计作业5:Pandas基础技能及综合应用
作业要求
[基础要求] 基于Jupyter Notebook 完成以下实验一、实验二、实验三;
[重点要求] 修改以下示例代码,以测试不同知识点。在博客上写出你:
修改的代码、
修改的愿意(意图)
代码运行的结果
你的结论
实验一:Series对象的应用
实验要求:
定义一个Series对象,包含5个整数数据;
访问、修改Series对象中的数据;
打印Series对象;
对Series对象进行计算,如求和、求平均值等。
示例代码:
import pandas as pd
# 定义一个Series对象
s = pd.Series([10, 20, 30, 40, 50])
# 访问Series对象中的数据
print(s[0]) # 输出第一个元素
print(s[2:4]) # 输出第3个到第4个元素
# 修改Series对象中的数据
s[1] = 25
# 打印Series对象
print(s)
# 对Series对象进行计算
print(s.sum()) # 求和
print(s.mean()) # 求平均值
修改代码:增加一个字符串类型的数据,将Series对象中的数据类型变为混合类型;
修改意图:测试Pandas中对于混合类型的Series对象的处理能力;
修改后的代码:
import pandas as pd
#定义一个包含整数和字符串类型的Series对象
s = pd.Series([10, 'hello', 30, 'world', 50])
#访问Series对象中的数据
print(s[0]) # 输出第一个元素
print(s[1:4]) # 输出第2个到第4个元素
#修改Series对象中的数据
s[1] = 'hi'
#打印Series对象
print(s)
#对Series对象进行计算
# 求和(只对数值类型的元素求和,字符串类型会报错)
print(s.sum())
# 求平均值(只对数值类型的元素求平均值,字符串类型会报错)
print(s.mean())

我的结论:Pandas能够很好地处理混合类型的Series对象,可以对其进行与数值类型相同的操作。
实验二:DataFrame对象的应用
实验要求:
定义一个DataFrame对象,包含3个列,每列分别为整数、浮点数和字符串类型;
访问、修改DataFrame对象中的数据;
对DataFrame对象进行计算,如求和、求平均值等。
示例代码:
import pandas as pd
# 定义一个DataFrame对象
data = {'int_col': [1, 2, 3, 4, 5], 'float_col': [1.2, 2.3, 3.4, 4.5, 5.6], 'str_col': ['a', 'b', 'c', 'd', 'e']}
df = pd.DataFrame(data)
# 访问DataFrame对象中的数据
print(df['int_col'][0]) # 输出第一行第一列的数据
print(df.loc[1, 'str_col']) # 输出第二行第二列的数据
# 修改DataFrame对象中的数据
df.loc[2, 'float_col'] = 3.5
# 对DataFrame对象进行计算
print(df.sum()) # 求和
print(df.mean()) # 求平均值
修改代码:增加一个新的列,包含布尔类型的数据;
修改意图:测试Pandas中对于布尔类型的数据的处理能力;
修改后的代码:
import pandas as pd
#定义一个包含整数、浮点数、字符串类型和布尔类型的DataFrame对象
data = {'int_col': [1, 2, 3, 4, 5], 'float_col': [1.2, 2.3, 3.4, 4.5, 5.6],'str_col': ['a', 'b', 'c', 'd', 'e'], 'bool_col': [True, False, True, False, True]}
df = pd.DataFrame(data)
#访问DataFrame对象中的数据
print(df['int_col'][0]) # 输出第一行第一列的数据
print(df.loc[1, 'str_col']) # 输出第二行第二列的数据
print(df['bool_col'][2:4]) # 输出第三个到第四个元素
#修改DataFrame对象中的数据
df.loc[2, 'float_col'] = 3.5
df.loc[3, 'bool_col'] = True
#对DataFrame对象进行计算
print(df.sum()) # 求和
print(df.mean()) # 求平均值

实验三:综合实例
实验要求:
定义一个包含省会城市、人口、GDP、城市面积的DataFrame对象;
计算各种排名,如人口最多的城市、GDP最高的城市等;
使用Pandas绘图,可视化上述实验结果。
示例代码:
import pandas as pd
import matplotlib.pyplot as plt
# 定义一个包含省会城市、人口、GDP、城市面积的DataFrame对象
data = {'city': ['北京', '上海', '广州', '深圳'], 'population': [2171, 2424, 1500, 1303],
'gdp': [30320, 32679, 20353, 22458], 'area': [16410, 6340, 7434, 1996]}
df = pd.DataFrame(data)
# 计算各种排名
pop_rank = df['population'].rank(ascending=False)
gdp_rank = df['gdp'].rank(ascending=False)
area_rank = df['area'].rank(ascending=False)
# 将排名添加到DataFrame对象中
df['pop_rank'] = pop_rank
df['gdp_rank'] = gdp_rank
df['area_rank'] = area_rank
# 使用Pandas绘图,可视化实验结果
df.plot(kind='bar', x='city', y=['population', 'gdp', 'area'], title='China Capital Cities')
plt.show()
- 修改代码:增加一个新的列,包含省份名称信息,以测试Pandas中对于多列数据的处理能力;
- 修改意图:测试Pandas中对于多列数据的处理能力以及数据透视表的应用;
修改后的代码
import pandas as pd
import matplotlib.pyplot as plt
#定义一个包含省会城市、人口、GDP、城市面积和省份名称的DataFrame对象
data = {'province': ['北京市', '上海市', '广东省', '广东省', '广东省', '深圳市'],'city':['北京', '上海', '广州', '深圳', '佛山', '深圳'],'population': [2171, 2424, 1500, 1303, 740, 1303],'gdp': [30320, 32679, 20353, 22458, 8514, 22458],'area': [16410, 6340, 7434, 1996, 3257, 1996]}
df = pd.DataFrame(data)
#计算各种排名
pop_rank = df['population'].rank(ascending=False)
gdp_rank = df['gdp'].rank(ascending=False)
area_rank = df['area'].rank(ascending=False)
#将排名添加到DataFrame对象中
df['pop_rank']= pop_rank
df['gdp_rank'] = gdp_rank
df['area_rank'] = area_rank
#使用数据透视表,按省份汇总数据
pivot_table = pd.pivot_table(df, values=['population', 'gdp', 'area'], index=['province'], aggfunc='sum')
#使用Pandas绘图,可视化实验结果
pivot_table.plot(kind='bar', title='China Capital Cities')
plt.show()

- 实验结论:我们可以使用pandas库中的Series()函数定义一个Series对象,访问和修改该对象中的数据,打印该对象,以及对该对象进行各种计算。这些功能可以帮助我们更方便地处理和分析数据。
相关推荐
2022-2023秋季学期Python程序设计大作业.zip
Python程序设计是现代计算机科学教育中的重要组成部分,尤其在2022-2023秋季学期的大作业中,它被选为强化学习和复习巩固的工具。
python-3综合程序设计2023最新英文版
【Python 3 综合程序设计】是一本2023年最新出版的英文版指南,专注于Python 3编程的全面学习。
记录并保存2023年春学习python时的作业和小练习.zip
在“大作业”中,可能会涉及到上述一个或多个知识点的综合运用,通过实际项目来巩固和提升Python技能。
Python程序设计应用基础实验(2023.春季).zip
这个"Python程序设计应用基础实验(2023.春季).zip"文件很可能包含了针对初学者的Python编程教学材料,旨在帮助学生掌握Python的基础知识和实际应用。
吉林大学人工智能学院2023级程序设计导论课程(python)期末大作业
通过本课程的学习,学生不仅能够掌握Python的基本语法,还能够了解到如何将这些基础应用到更高级的程序设计和人工智能项目中。本课程的期末大作业,是一个检验学生学习成果的重要环节。



