当前位置: 首页 > news >正文

【大数据处理与可视化】三 、Pandas库的运用

【大数据处理与可视化】三 、Pandas库的运用

  • 实验目的
  • 实验内容
  • 实验步骤
    • 一、使用pandas库分别创建Series对象和DataFrame对象,并对创建的对象使用索引、排序等相关操作;练习DataFrame对象的统计计算和统计描述的功能。
      • 1&2、创建一个DataFrame(df),用data做数据,labels做行索引,显示有关此df及其数据的基本信息的摘要
      • 3、查看此df的前三行数据
      • 4、选择df中列标签为animal和age的数据
      • 5、选择行为[‘d’, ‘e’, ‘i’],且列为['animal', 'age']中的数据
      • 6、选择visuts大于3的行
      • 7、选择age为缺失值的行
      • 8、选择animal为cat,且age小于3的行
      • 9、将f行的age改为1.5
      • 10、计算visits列的数据总和
      • 11、计算每种animal的平均age
      • 12、追加一行(k),列的数据自定义(如可以等于a行的数据),然后再删除新追加的k行
      • 13、计算每种animal的个数(cat有几个,dog几个...)
      • 14、先根据age降序排列,再根据visits升序排列
      • 15、将priority列的yes和no用True和False替换
      • 16、将animal列的snake用python替换
    • 二、给定数据使用Pandas的基础知识对北京高考分数线统计分析,分析出:一本文理科与二本文理科最高的分数线是多少,最低的分数线是多少,相差多少分;求2006年-2008年近13年分数线平均分。
      • 1、首先读取表格内容
      • 2、通过sort_index()=方法让DataFrame对象按照从大到小的顺序排列
      • 3、获取历年一本、二本文理科最高和最低的分数线及极差
      • 4、比较2018年一本与二本文理科分数线的差值
      • 5、计算2006-2018年的平均分数线
  • 实验小结


实验目的

  1. 能够熟练运用pandas库创建Series对象和DataFrame对象;
  2. 能够熟练运用Series对象和DataFrame对象的索引操作和排序操作;
  3. 能够熟练运用pandas库,进行统计计算和统计描述;
  4. 能够熟练运用pandas库进行读写数据操作

实验内容

一、使用pandas库分别创建Series对象和DataFrame对象,并对创建的对象使用索引、排序等相关操作;练习DataFrame对象的统计计算和统计描述的功能。

1、创建一个DataFrame(df),用data做数据,labels做行索引
2、显示有关此df及其数据的基本信息的摘
3、查看此df的前三行数据
4、选择df中列标签为animal和age的数据
5、选择行为[‘d’, ‘e’, ‘i’],且列为[‘animal’, ‘age’]中的数据
6、选择visuts大于3的行
7、选择age为缺失值的行
8、选择animal为cat,且age小于3的行
9、将f行的age改为1.5
10、计算visits列的数据总和
11、计算每种animal的平均age
12、追加一行(k),列的数据自定义(如可以等于a行的数据),然后再删除新追加的k行
13、计算每种animal的个数(cat有几个,dog几个…)
14、先根据age降序排列,再根据visits升序排列
15、将priority列的yes和no用True和False替换
16、将animal列的snake用python替换

二、给定数据使用Pandas的基础知识对北京高考分数线统计分析,分析出:一本文理科与二本文理科最高的分数线是多少,最低的分数线是多少,相差多少分;求2006年-2008年近13年分数线平均分。


实验步骤

一、使用pandas库分别创建Series对象和DataFrame对象,并对创建的对象使用索引、排序等相关操作;练习DataFrame对象的统计计算和统计描述的功能。

1&2、创建一个DataFrame(df),用data做数据,labels做行索引,显示有关此df及其数据的基本信息的摘要

代码:

import pandas as pd
import numpy as np
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
data = {'animal': pd.Series(['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],index=labels),'age': pd.Series([2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],index=labels),'visits': pd.Series([1, 3, 2, 3, 2, 3, 1, 1, 2, 1],index=labels),'priority': pd.Series(['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no'],index=labels)}
df = pd.DataFrame(data)
df

截图:

在这里插入图片描述


3、查看此df的前三行数据

代码:df[0:3]
截图:
在这里插入图片描述


4、选择df中列标签为animal和age的数据

代码:df[['animal','age']]
截图:

在这里插入图片描述


5、选择行为[‘d’, ‘e’, ‘i’],且列为[‘animal’, ‘age’]中的数据

代码:df.loc[['d','e','i'],['animal','age']]
截图:

在这里插入图片描述


6、选择visuts大于3的行

代码:

visits_bool = df['visits']>3
df[visits_bool]

截图:

在这里插入图片描述


7、选择age为缺失值的行

代码:

age_bool = df['age'].isnull()
df[age_bool]

截图:

在这里插入图片描述


8、选择animal为cat,且age小于3的行

代码:df[(df['animal']=="cat")&(df["age"]<3)]
截图:

在这里插入图片描述


9、将f行的age改为1.5

代码:

df.loc[['f'],['age']] = 1.5
df

截图:

在这里插入图片描述


10、计算visits列的数据总和

代码:sum(df['visits'])
截图:

在这里插入图片描述


11、计算每种animal的平均age

代码:df.groupby('animal')['age'].mean()
截图:

在这里插入图片描述


12、追加一行(k),列的数据自定义(如可以等于a行的数据),然后再删除新追加的k行

代码:

df.loc['k']=df.loc['a'].values
df
df.drop('k')

截图:

在这里插入图片描述


13、计算每种animal的个数(cat有几个,dog几个…)

代码:df.groupby('animal').size()
截图:

在这里插入图片描述


14、先根据age降序排列,再根据visits升序排列

代码:df.sort_values(by=['age', 'visits'], ascending=[False, True])
截图:

在这里插入图片描述


15、将priority列的yes和no用True和False替换

代码:

df['priority'] = df['priority'].replace(to_replace=['yes', 'no'], value=[True, False])
df

截图:

在这里插入图片描述


16、将animal列的snake用python替换

代码:

df['animal'] = df['animal'].replace(to_replace='snake', value='python')
df

截图:

在这里插入图片描述


二、给定数据使用Pandas的基础知识对北京高考分数线统计分析,分析出:一本文理科与二本文理科最高的分数线是多少,最低的分数线是多少,相差多少分;求2006年-2008年近13年分数线平均分。

1、首先读取表格内容

代码:

import pandas as pd
df_obj=pd.read_excel('D:/scores.xlsx',header=[0,1])
df_obj

截图:

在这里插入图片描述


2、通过sort_index()=方法让DataFrame对象按照从大到小的顺序排列

代码:

sorted_obj=df_obj.sort_index(ascending=False)
sorted_obj

截图:

在这里插入图片描述


3、获取历年一本、二本文理科最高和最低的分数线及极差

代码:

sorted_obj.max()
sorted_obj.min()
result1=sorted_obj["一本分数线","文科"].ptp()
result1
result2=sorted_obj["一本分数线","理科"].ptp()
result2
result3=sorted_obj["二本分数线","文科"].ptp()
result3
result4=sorted_obj["二本分数线","理科"].ptp()
result4

截图:

在这里插入图片描述


4、比较2018年一本与二本文理科分数线的差值

代码:

ser_obj1=sorted_obj["一本分数线","文科"]
ser_obj1[2018] - ser_obj1[2017]ser_obj2=sorted_obj["一本分数线","理科"]
ser_obj2[2018] - ser_obj2[2017]ser_obj3=sorted_obj["二本分数线","文科"]
ser_obj3[2018] - ser_obj3[2017]ser_obj4=sorted_obj["二本分数线","理科"]
ser_obj4[2018] - ser_obj4[2017]

截图:

在这里插入图片描述


5、计算2006-2018年的平均分数线

代码:sorted_obj.describe()
截图:

在这里插入图片描述


实验小结

       通过本次实验,我了解了科学计算库Pandas,包括Pandas常用的数据结构、索引的相关操作、算术运算、文件的读取操作等。在实验过程中遇到了很多硬件或者是软件上的问题,请教老师,询问同学,上网查资料,都是解决这些问题的途径。最终将遇到的问题一一解决最终完成实验。
注意事项:
1、有疑问前,知识学习前,先用搜索。
2、熟读写基础知识,学得会不如学得牢。
3、选择交流平台,如QQ群,网站论坛等。
4、尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。

http://www.lryc.cn/news/42576.html

相关文章:

  • FPGA解码SDI视频任意尺寸缩放拼接输出 提供工程源码和技术支持
  • 线索二叉树结构
  • 6.网络爬虫——BeautifulSoup详讲与实战
  • Vue:路由管理模式
  • 7个最好的PDF编辑器,帮你像编辑Word一样编辑PDF
  • 【数据结构】树的介绍
  • CoreDNS 性能优化
  • 前端三剑客常见面试题及其答案
  • 【DFS专题】深度优先搜索 “暴搜”优质题单推荐 10道题(C++ | 洛谷 | acwing)
  • 微信小程序自定义组件生命周期有哪些?
  • Linux就该这么学(六)
  • 目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)
  • 【蓝桥杯选拔赛真题39】python输出数字组合 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
  • 网络安全工程师做什么?
  • 总结:K8S运维常用命令
  • 你是真的“C”——进行动态内存分配库函数的使用详解
  • Python|蓝桥杯进阶第五卷——数论
  • 用Python实现单例模式
  • 交叉编译说明:工具链安装和环境变量配置
  • 文件上传的多种利用方式
  • 盘一盘C++的类型描述符(二)
  • 慎投,Frontiers这本期刊显示on hold中
  • Winform控件开发(21)——ProgressBar(史上最全)
  • 校招失败后,在外包公司熬了 2 年终于进了字节跳动,竭尽全力....
  • UniApp + SpringBoot 实现接入支付宝支付功能和退款功能
  • 初识进程
  • SOAP传输协议
  • <Linux>进程控制
  • 有手就行 -- 搭建图床(PicGo+腾讯云)
  • “蓝桥杯”递推和递归(一)——取数位