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

软工211-450-周鑫 2023-春-学生 2023-05-21 15:55:36

作业要求

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

实验一:Series对象的应用

实验要求:

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

示例代码:

import pandas as pd

s=pd.Series([10,20,30,40,50])#定义一个对象
print(s[0])#打印第一个数据
print(s[1:3])#打印第二第三个数据
s[0]=35#修改数据
print(s)
print(s.sum())#求和
print(s.mean())#求平均值

实验结果:

 


 

实验二:DataFrame对象的应用

实验要求:

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

示例代码:

import pandas as pd
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)
print(df['int_col'][0])#数据定位
print(df.loc[1, 'str_col'])
df.loc[2, 'float_col'] = 3.5#数据修改
print("求和为:",end='')
print(df.sum())
print("第一列平均值:",end='')
print(df['int_col'].mean())
print("第二列平均值:",end='')
print(df['float_col'].mean())

实验结果:


 

实验三:综合实例

实验要求:

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

示例代码:

 
import pandas as pd
import matplotlib.pyplot as plt
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False
# 定义一个包含省会城市、人口、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
print(df)
#计算人口密度
population_density=df['population']/df['area']
#城市人均GDP
GDP_per_people=df['gdp']/df['population']
#数据添加在表格中
df['population_density']=population_density
df['GDP_per_people']=GDP_per_people
print(df)
# 使用Pandas绘图,可视化实验结果
df.plot(kind='bar', x='city', y=['population', 'gdp', 'area'], title='China Capital Cities')
plt.show()

结论:

        pabdas功能十分强大,不仅兼具了数组的功能,而且在实现二维的DataFrame中能够实现图像可视化,以清晰的表格图像来展示结果。此次实验加深了自己对于pandas与matplotlib的使用,在实验中也加入了自己对功能的一些扩展,在正常的使用时,因为图形库对于中文字符的识别有很大的问题,因此加入了pylab库来对文字进行处理。

        总的来说,panndas库对于日常化的数据处理是及其擅长的,不仅体现在数据的灵活性上,同时也能将数据多元化处理。

 

...全文
16 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

162

社区成员

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

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