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

高考技术——pandas使用

百家讲坛,谈论古今,今天我们不聊别的,我们来聊一聊中国的国宝——大熊猫(bushi)

好好,言归正传,我们今天来讲pandas

import pandas as pd

申明无需多言,高考主要考察Series和DataFrame的用法

一.Series 

1.声明

s1 = pd.Series([168,176,169]) #创建Series
s2 = pd.Series([168,176,169],index = ['s1','s2','s3']) #更改Series的index

两种声明方式 ,效果如图:

 2.遍历方式

for i in s2.values:print(i)  #输出所有值
for i in s2.index:print(i)  #输出所有index
for i in s2:print(i)  #输出所有值

三种遍历,没有指定则默认输出values,如第三个循环,效果如图:

3.值的获取,修改 

s2[0] = 123
s2["s2"] = 123
s2.s3 = 123  #三种修改值的方法s2["s4"] = 123  #若没有s4,则增加s4并赋值
s2.s5 = 123  #不可以使用这种方式

获取到对应的index并且拿出或者修改相应的值 ,修改后s2变为如图

二.DataFrame 

1.声明

df1 = pd.DataFrame({"姓名":["a1","a2","a3"],"身高":[168,169,170]})  #字典方式生成
df2 = pd.DataFrame({"姓名":["a1","a2","a3"],"身高":[168,169,170]},columns = ["姓名","成绩"]) #字典方式下,若设置了columns,则服从columns
df3 = pd.DataFrame([["a1",168],["a2",169],["a3",170]],columns = ["姓名","身高"],index=['s1','s2','s3'])  #列表方式生成,index和columns的位置可以互换
print(df3)

三种声明方式,字典可以不设置columns,若设置则服从设置,用列表则一定需要columns,效果如图:

2.读取excel 

df4 = pd.read_excel("test_01.xlsx") #读取excel文件

注意需要放在同一个目录下

为了方便大家学习,我们来整一点活把excel文件分享给大家,大家可以直接下载使用 

这是excel内的表格

这是pandas的输出 

3.遍历

for i in df4:print(i) #输出columns
for i in df4.columns:print(i) #输出columns
for i in df4.index:print(i) #输出index
for i in df4.values:print(i) #输出values 一个values为一行,输出形式为列表

输出效果如图 

import pandas as pd####################################################################################################
#########################################Series 使用#################################################
####################################################################################################s1 = pd.Series([168,176,169]) #创建Series
s2 = pd.Series([168,176,169],index = ['s1','s2','s3']) #更改Series的indexprint(s1)
print(s2)for i in s2.values:print(i)  #输出所有值
for i in s2.index:print(i)  #输出所有index
for i in s2:print(i)  #输出所有值s2[0] = 123
s2["s2"] = 123
s2.s3 = 123  #三种修改值的方法s2["s4"] = 123  #若没有s4,则增加s4并赋值
s2.s5 = 123  #不可以使用这种方式
print(s2)
####################################################################################################
####################################dataframe使用####################################################
####################################################################################################df1 = pd.DataFrame({"姓名":["a1","a2","a3"],"身高":[168,169,170]})  #字典方式生成
df2 = pd.DataFrame({"姓名":["a1","a2","a3"],"身高":[168,169,170]},columns = ["姓名","成绩"]) #字典方式下,若设置了columns,则服从columns
df3 = pd.DataFrame([["a1",168],["a2",169],["a3",170]],columns = ["姓名","身高"],index=['s1','s2','s3'])  #列表方式生成,index和columns的位置可以互换
print(df3)df4 = pd.read_excel("test_01.xlsx") #读取excel文件
print(df4)for i in df4:print(i,end = ' ') #输出columns
print("\n")
for i in df4.columns:print(i,end = ' ') #输出columns
print("\n")
for i in df4.index:print(i,end = ' ') #输出index
print("\n")
for i in df4.values:print(i) #输出values 一个values为一行,输出形式为列表print(df4.T) #行列转置,不对df4产生更改
print(df4.学校)
print(df4["学校"]) #获取对应columns下的列
print(df4[ ["学校","2020年分数线"] ]) #获取多个columns下的值,注意中括号的数量
print(df4[2:3]) #获取对应index下的值,使用切片,这里输出 index = 2 的整一行
print(df4["学校"][2])
print(df4.at[2,"学校"]) #获取对应行列下的值
print(df4[df4["2020年分数线"]>=530]) #获取2020年分数线大于530的学校的整行,格式为DataFrame
df4["2022年分数线"] = [1,2,9999,4,5,6,7,8,9,10,11,12,13,14,15]  #更改数据,若没有这一列,则追加该列,df4.只用于访问更改,不用于追加print(df4.count()) #统计每一列的个数(为非空 即不为 NaN 的个数)
print(df4["学校"].count()) #统计该列的个数print(df4.sum()) #计算每一列的总和
print(df4["排名"].sum()) #计算该列的总和print(df4["排名"].mean()) #计算该列的平均数print(df4["排名"].max())
print(df4["排名"].min()) #输出每一列的最大最小值,注:此处输出的是一个数值print(df4["2020年分数线"].describe()) #获取该列各种各样的统计的数据,比如百分位数,平均数等等print(df4.head())
print(df4.tail()) #返回DataFrame前n行或后n行,n默认为5df5 = pd.DataFrame([["s2c1神班",-1,99999,99999,99999]],columns=["学校","排名","2020年分数线","2021年分数线","2022年分数线"],index = [1])
df6 = pd.DataFrame({"学校":"s2c1神班","排名":-1,"2020年分数线":99999,"2021年分数线":99999,"2022年分数线":99999},index = [1])
df7 = df4._append(df5,ignore_index = True) #在df7后面追加df5,ignore_index默认为False,若为True,则追加的df的index接续上面的index,比如df4的结尾index为15,则神班的index=16
print(df7)df7.insert(loc = 2, column= "实力" , value = [0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,999999])
print(df7) #插入一列,插入后为第二列(从0开始编号),列标题为“实力”,注意value的个数一定等于行数print(df7.drop(["2021年分数线"],axis = 1)) #删除列,axis = 1表示删除列,注意:此处不改变df7的数值
print(df7.drop(0)) #删除第一行数据
print(df7.drop([0,1])) #删除多行数据,注意:后续index的值不变print(df7.sort_values(by = ["实力"])) #按照实力升序排位
print(df7.sort_values(by = ["实力"],ascending = False)) #按照实力降序排位
print(df7.sort_values(by = ["实力","排名"],ascending = False)) #先按照实力排位,若相同再按照排名排序

 

相关文章:

  • FastGPT大模型介绍
  • Python面向对象基础:类属性
  • Vscode把全部‘def‘都收起来的快捷键
  • Mybatis中 #{} 和 ${} 的区别是什么?
  • 【RabbitMQ】RabbitMq消息丢失、重复消费以及消费顺序性的解决方案
  • 媒界:助力民生保障 长城“消防炮”即将批量交付硬核守护万家灯火
  • 【hot100-java】【最长公共子序列】
  • 数据加密标准(DES)详解:原理、步骤及Python实现
  • Python连接Kafka收发数据等操作
  • MySQl查询分析工具 EXPLAIN ANALYZE
  • SpringSecurity -- 入门使用
  • 在某服务中,两方法递归调用导致堆栈溢出
  • 【第十六章:Sentosa_DSML社区版-机器学习之生存分析】
  • “投其所招”-智能投标领军者丨OPENAIGC开发者大赛高校组AI创作力奖|
  • 基于RepLKNet31B模型在RML201610a数据集上的调制识别【代码+数据集+python环境+GUI系统】
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 345-反转字符串中的元音字母
  • 77. Combinations
  • Android Volley源码解析
  • Asm.js的简单介绍
  • egg(89)--egg之redis的发布和订阅
  • Facebook AccountKit 接入的坑点
  • JAVA SE 6 GC调优笔记
  • JavaScript DOM 10 - 滚动
  • JDK 6和JDK 7中的substring()方法
  • Lucene解析 - 基本概念
  • PHP CLI应用的调试原理
  • rabbitmq延迟消息示例
  • RxJS: 简单入门
  • Vue2 SSR 的优化之旅
  • Vue2.x学习三:事件处理生命周期钩子
  • 阿里研究院入选中国企业智库系统影响力榜
  • 程序员最讨厌的9句话,你可有补充?
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 解析带emoji和链接的聊天系统消息
  • 看域名解析域名安全对SEO的影响
  • 听说你叫Java(二)–Servlet请求
  • 因为阿里,他们成了“杭漂”
  • ​HTTP与HTTPS:网络通信的安全卫士
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #pragma multi_compile #pragma shader_feature
  • #宝哥教你#查看jquery绑定的事件函数
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (160)时序收敛--->(10)时序收敛十
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (南京观海微电子)——COF介绍
  • (七)Activiti-modeler中文支持
  • (强烈推荐)移动端音视频从零到上手(上)
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (算法)求1到1亿间的质数或素数
  • (轉貼) UML中文FAQ (OO) (UML)
  • .bat批处理出现中文乱码的情况