实验二 pandas库绘图以及数据清洗

news/2024/5/2 15:16:15

1.1pandas验证操作

1、验证以下代码,并将结果附截图

import pandas as pd

A=[1,3,6,4,9,10,15]

weight=[67,66,83,68,79,88]

sex=['女','男','男','女','男', '男']

S1=pd.Series(A)#构建S1序列

print(S1)

S2=pd.Series(weight)#构建S2序列

print(S2)

S3=pd.Series(sex)#构建S3序列

print(S3)

print(S3[1])#或print(S3.iloc[1]

print(S2[2])#或print(S2.iloc[2])

  1. 分别验证S2.loc[1]、S2[1]、S2.iloc[1],并附截图,说明序列变量.loc[i]、序列变量.iloc和序列变量[i]的作用

3、验证以下代码,并结果附截图

B=pd.concat([S2,S3],axis=0)

print(B)

S=pd.concat([S2,S3],axis=1)#按列合并序列,合并后为两列成为数据框

print(S)

print(S.loc[0])#第1行

print(S.iloc[0,:])#第1行

print(S[1])#第2列

print(S.iloc[:,1])#第2列

print(S.iloc[1,0])

print(S.loc[1,0])

print(S[0:3])

print(S.iloc[1:3,0:1])

X=[1,3,6,4,9,8,6]

X=pd.DataFrame(X)#由列表创建数据框

print(X)

print(X.loc[1])#默认索引为0,1,2,3,4,由索引号(下标)引用元素

print(X[0])

print(X.iloc[1,0])

4、验证以下代码,并将结果附截图

weight=[88,77,67,66,83,68,79]

df=pd.DataFrame(weight,columns=['weight'],index=['A','C','B','D','E','F','G'])

df

print(df.loc['A'])#用索引引用一个元素

print(df.iloc[0,:])

df['weight2']=df['weight']*2;df#增加数据框列

df['weight2']

df.iloc[:,1]

del df['weight2'];df#删除数据框列

df.sort_index()#按索引index排序

df.sort_values(by='weight')#按weight排序

5、验证以下代码,并将结果附截图

import pandas as pd

datacsv=pd.read_csv(r"exp_data\Bsdata.csv")

# Bsdata.csv文件是研究生开课信息调查表从2600名学生按2%抽样52名调查情况

#r表示当前路径,文件可以从超星下载

print(datacsv.head())

#用pandas读取csv文件实例

datacsv.info()#输出结构信息

h=list(datacsv.身高)

print(h)

print(datacsv.身高.max())

print(datacsv.身高.min())

print(datacsv.loc[1])

print(datacsv.iloc[1,0])

print(datacsv.iloc[1:3,2:3])

#(4)数据框维度

print(datacsv.shape)             #显示数据框的行数和列数

print(datacsv.shape[0])          #数据框行数

print(datacsv.shape[1])          #数据框列数

6、验证以下代码,并将结果附截图,销售流水记录tmp.csv文件可在超星上下载。

import pandas as pd

datacsv=pd.read_csv(r'销售流水记录tmp.csv')

print(len(datacsv))

datacsv.info()

datacsv.head()

7、验证以下代码,并将结果附截图。

datacsv = pd.read_csv(r'销售流水记录tmp.csv', index_col=[0,1],low_memory=False,encoding='gb18030')#读取指定列,1,2列为索引

datacsv.info()

8、验证以下代码,并将结果附截图。

datacsv = pd.read_csv(r'销售流水记录tmp.csv', usecols=["create_dt","order_id","sku_id","sku_name"], nrows=10)

datacsv.info()

datacsv.head(2)

datacsv.sku_name

9、验证以下代码,并将结果附截图,people.csv可在超星上下载。

import pandas as pd

datacsv=pd.read_csv(r'people.csv',names=["年度","Z","Z0_14","Z15_64","Z65_"],header=None,skiprows=1,index_col=0)#指定列标题

#"年度","Z","Z0_14","Z15_64","Z65_"为列标题,skiprows表示跳过第1行,index_col=0年度(第1列)作为时间序列索引,绘图作为x周

print(datacsv)

datacsv.columns.tolist()

10、利用people.csv文件验证以下代码,并将结果附截图

print(datacsv[datacsv['年度']>'2008'])#提取年度大于2008年的数据

print(datacsv[(datacsv['年度']>'2008')&(datacsv['年度']<'2018')])

#逻辑运算符与、或用&、|表示

2.1 pandas工具包绘图

pandas包学习网址User Guide — pandas 2.2.1 documentation

1、读取people.csv文件,指定列标题为"年度","Z","Z0_14","Z15_64","Z65_",利用pandas绘制年度与年末总人口折线图,并附截图,参考代码如下:

2、利用pandas绘制年度与年末总人口、0-14岁人口折线图,并附截图,参考代码如下:

3、利用pandas绘制年度与各年龄阶段人口变化折线对比图,并附截图,参考代码如下:

4、利用pandas绘制年度与各年龄阶段人口变化对比复式柱状图,并附截图,参考代码如下:

5、提取csv文件Bsdata.csv中的身高和体重,利用DataFrame.plot绘制折线图和散点图。

import matplotlib.pyplot as plt

import pandas as pd

plt.rcParams['font.family']=['STSong']#设置汉字字体

datacsv=pd.read_csv(r"Bsdata.csv")

datacsv["身高"].plot()#折线图

datacsv["体重"].plot(color="r")#折线图

datacsv.plot.scatter(x="身高",y="体重",color="r")#散点图

6、提取csv文件Bsdata.csv中的体重,利用DataFrame.plot绘制直方图。

datacsv["体重"].hist(color="r")

7、提取csv文件Bsdata.csv的开设情况,利用DataFrame.plot绘制开设统计分类柱状图。

T=datacsv.开设.value_counts()#针对分类数据或定性数据统计

T.plot(kind='bar')

实 验 结 果 及 分 析:

  1. 读取无人售货机数据

在商场不同地点安放了5台自动售货机,编号分别为A、B、C、D、E。数据1提供了从2017年1月1日至2017年12月31日每台自动售货机的商品销售数据,数据2提供了商品的分类。现在要对两个表格中的数据进行合并。

  1. 使用pandas中的read_csv函数分别读取数据。
  2. 使用pandas中的merge函数或者join方法进行数据合并
  3. 保存合并后的结果

  1. 对1中合并的数据进行数据校验、清洗,如重复值校验与处理、异常值校验与处理、缺失值校验与处理。对每一步的操作都做出说明分析。
  1. 查找重复记录并进行删除
  2. 查找异常数据,并在箱线图中绘制处理,最后对异常数据进行删除
  3. 查找缺失值并进行处理(删除、填充等)。
  4. 保存处理后的数据

 

  1. 针对数据1
  1. 绘制出每个月的订单量的柱状图,用pandas进行绘图展示(要求添加标题、X轴和Y轴名称)

 

  1. 绘制出每个月的销售额变化情况折线图,用pandas进行绘图展示(要求添加标题、X轴和Y轴名称)

 

  1. 绘制出A类自动售货机中商品名称为”怡宝纯净水”的商品,12个月中每个月的订单量饼图,用pandas进行绘图展示(要求添加标题、饼图按照订单量进行排序展示)

 

  1. 对五类自动售货机的实付金额数据,分别绘制出箱线图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11361.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

基于.NET Core开发的轻量级分布式配置中心

前言 今天给大家推荐一个基于.NET Core开发的轻量级分布式配置中心&#xff1a;AgileConfig。 AgileConfig官方介绍 AgileConfig秉承轻量化的特点&#xff0c;部署简单、配置简单、使用简单、学习简单&#xff0c;它只提取了必要的一些功能&#xff0c;并没有像Apollo那样复…

是德科技安捷伦 E5052B信号源分析仪

181/2461/8938产品概述&#xff1a; Keysight E5052B&#xff08;安捷伦&#xff09;信号源分析仪&#xff0c;10 MHz 至 7 GHz&#xff0c;具有许多增强的性能特性。它在表征 VCO 或其他类型的高频信号源以及高速数据通信系统中的时钟抖动评估方面提供了世界上最高的测量吞吐…

【QT入门】 QTabWidget各种常见用法详解

往期回顾&#xff1a; 【QT入门】 Qt代码创建布局之分裂器布局详解-CSDN博客 【QT入门】 Qt代码创建布局之setLayout使用-CSDN博客 【QT入门】 Qt代码创建布局之多重布局变换与布局删除技巧-CSDN博客 【QT入门】 QTabWidget各种常见用法详解 一般来说&#xff0c;学一个新的控…

AR-Net网络(图像篡改检测)

AR-Net网络 摘要AbstractAR-Net1. 文献摘要2. 研究背景3. 创新点4. AR-Net 网络架构5. 实验6. 结论总结 摘要 AR-Net使用自适应注意力机制来融合位置和通道维度的特征&#xff0c;使网络能够充分利用不同维度的被篡改特征&#xff0c;此外&#xff0c;AR-Net 改进了预测掩模&a…

【A-006】基于SSH的新闻发布系统(含论文)

【A-006】基于SSH的新闻发布系统&#xff08;含论文&#xff09; 开发环境&#xff1a; Jdk7(8)Tomcat7(8)MySQLIntelliJ IDEA(Eclipse) 数据库&#xff1a; MySQL 技术&#xff1a; SpringStruts2HiberanteJSPJquery 适用于&#xff1a; 课程设计&#xff0c;毕业设计&…

Godot 4 教程《勇者传说》依赖注入 学习笔记(0):环境配置

文章目录 前言相关地址环境配置初始化环境配置文件夹结构代码结构代码运行 资源文件导入像素风格窗口环境设置背景设置,Tileap使用自动TileMap 人物场景动画节点添加站立节点添加移动动画添加 通过依赖注入获取Godot的全局属性项目声明 当前项目逻辑讲解角色下降添加代码位置问…