pandas

一、pandas初级

在这里插入图片描述
安装matplotlib:pip install matplotlib
安装pandas:pip install pandas
本地C:\Users\Administrator\pip,在此目录配置清华园的远程下载
在这里插入图片描述
配置内容:

[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

1.1 花色调整

import numpy as np
import matplotlib.pyplot as plt
img=plt.imread('./向日葵.jpg')
img.shape  #高、宽、颜色,(1200, 1920, 3)
# 1200高度像素
# 1920宽度像素
# 3 颜色通道:红绿蓝
plt.imshow(img) #展示图像,红绿蓝,红色
plt.imshow(img[:,:,::-1]) #蓝绿红,蓝色
plt.imshow(img[:,:,[1,0,2]]) #绿红蓝,绿色

1.2 pandas

1.2.1 数据结构

一维结构

import pandas as pd
s=pd.Series(data=[0,3,5,7],index=['a','b','c','d'])#指定索引,一一对应
s=pd.Series(data=[0,3,5,7])#不指定索引,默认从0自增
s

0 0
1 3
2 5
3 7
dtype: int64

二维结构
第一种方式:

import pandas as pd
import numpy as np
#Excel类似
#创建DataFrame第一种方式
pd.DataFrame(data=np.random.randint(0,150,size=(5,3)),columns=['Python','En','Math'],index=list('ABCDE'),dtype=np.float32)

在这里插入图片描述
第二种方式:

import pandas as pd
import numpy as np
#Excel类似
#创建DataFrame第二种方式,字典中的key作为列索引,冒号后面表示数据pd.DataFrame(data={'Python':np.random.randint(100,150,size=5),'En':np.random.randint(0,150,size=5),'Math':np.random.randint(0,150,size=5)},index=list('ABCDE'))

在这里插入图片描述

1.2.2 数据查看

import numpy as np
import pandas as pd
df=pd.DataFrame(data=np.random.randint(0,151,size=(150,3)),index=None,#行索引默认columns=['Python','Math','En'])#列索引
# df.head(10)#查看前10行
# df.tail#默认查看后5个
# df.shape#查看形状
df['Python']=df['Python'].astype(np.int64)#修改数据类型
df.dtypes#查看数据类型
df.index#行索引
df.columns#列索引
df.values#对象值,二维数组
df.describe()#查看数值型列的汇总统计,平均值,最大值最小值等
df.info()#查看列索引、数据类型、非空计数和内存信息

在这里插入图片描述

1.2.3 数据的输入和输出

第一节:csv

import numpy as np
import pandas as pd
df=pd.DataFrame(data=np.random.randint(0,50,size=(50,5)),#薪资情况columns=['IT','化工','生物','教师','士兵'])
display(df)
#保存到当前路径
df.to_csv('./salary.csv',sep=',',#文本分隔符,尽量用逗号header=True,#是否保存列索引index=True#是否保存行索引,若保存,文件被加载时,默认行索引会作为一列)
#加载文件
pd.read_csv('./salary.csv',sep=',',header=[0],#指定列索引index_col=0)#指定行索引

第二节:Excel
pip install xlrd
pip install xlwt

import numpy as np
import pandas as pd
df1=pd.DataFrame(data=np.random.randint(0,50,size=(50,5)),#薪资情况columns=['IT','化工','生物','教师','士兵'])
df2=pd.DataFrame(data=np.random.randint(0,50,size=(150,3)),#计算机科目的考试成绩    columns=['Python','Tensorflow','Keras'])#列索引df1.to_excel('./salary.xlsx',sheet_name='salary', #Excel中工作表的名字header=True,#是否保存列索引index=False)#是否保存行索引

pd.read_excel('./salary.xlsx',sheet_name=0,#读取哪一个Excel工作表,默认第一个,或者sheet_name='salary'header=0,#使用第一行数据作为列索引names=list('ABCDE'),#替换列索引index_col=1)#指定行索引,B作为行索引

一个Excel中保存多个工作表

with pd.ExcelWriter('./data.xlsx') as writer:df1.to_excel(writer,sheet_name='salary',index=False)df2.to_excel(writer,sheet_name='score',index=False)

Excel中保存的多个工作表中,读取一个

pd.read_excel('./data.xlsx',sheet_name='salary')#读取Excel中指定名字的工作表

1.2.4 数据选择

和Numpy的花式索引类似

df=pd.DataFrame(np.random.randint(0,150,size=(1000,3)),columns=['Py','En','Math'])
df

在这里插入图片描述
列获取:

# df['Py'] #不显示列索引
# df.Py #不显示列索引
df[['Py','Math']]#使用两个中括号时才会显示列索引
df[['En']] #显示列索引

行获取:

df2=pd.DataFrame(np.random.randint(0,150,size=(5,3)),index=list('ABCDE'),columns=['Py','En','Math'])
df2

在这里插入图片描述

df2.loc['A']#行索引
df2.loc[['A','D']]

在这里插入图片描述

# df2.iloc[0]#自然数索引,第一行
df2.iloc[[0,3]]#第1行,第4行

在这里插入图片描述
具体数值:

df2['Math']['B']#这个必须分开写 110
df2.loc['B']['Math'] #加了loc首先要跟行索引,注意先后顺序110
df2.loc['B','Math']#也是先行后列110
# iloc表示,先获取行,再获取列
df2.iloc[1,2]#110
df2.loc['A':'C','En':]

在这里插入图片描述

df2.iloc[2:4,[0,-1]]#第三行、第四行的第一列和最后一列

在这里插入图片描述

boolean索引:

cond=df['Py']==140
df[cond]

在这里插入图片描述

cond1=df['Py']>130
cond2=df['Math']>130
cond=cond1&cond2
df[cond]

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java Spring Boot 自动启动热部署 (别再改点东西就要重启啦)

上文 java Spring Boot 手动启动热部署 我们实现了一个手动热部署的代码 但其实很多人会觉得 这叫说明热开发呀 这么捞 写完还要手动去点一下 很不友好 其实我们开发人员肯定是希望重启这种事不需要自己手动去做 那么 当然可以 我们就让它自己去做 Build Project 这个操作 我们…

WOL唤醒配置(以太网、PHY、MAC)

目录 wol 以太网 MAC PHY RMII 通信配置 总结 wol Wake-on-LAN简称WOL,WOL(网络唤醒) 是一种标准网络协议,它的功效在于让已经进入休眠状态或关机状态的计算机,透过局域网(多半为以太网&#xff…

聊聊常见的IO模型 BIO/NIO/AIO 、DIO、多路复用等IO模型

聊聊常见的IO模型 BIO/NIO/AIO/DIO、IO多路复用等IO模型 文章目录 一、前言1. 什么是IO模型2. 为什么需要IO模型 二、常见的IO模型1. 同步阻塞IO(Blocking IO,BIO)2. 同步非阻塞IO(Non-blocking IO,NIO)3.…

测试用例的编写(面试常问)

作者:爱塔居 专栏:软件测试 作者简介:不断总结,才能变得更好~踩过的坑,不能再踩~ 文章简介:常见的几个测试用例。 一、淘宝购物车 二、登录页面 三、三角形测试用例 abc结果346普通三角形333等边三角形334…

计算机毕业设计 基于SpringBoot的图书馆管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

分享一款开源的QT的串口示波器

分享一款开源的QT的串口示波器,完全开源,支持串口、TCP、波形显示、通信协议。 Sailor Project功能说明 串口调试助手功能 支持传统的串口调试助手的基本收发功能,同时可以刷新大量的数据而不卡顿 支持保存接收的数据 支持最大200条可编辑…

软件工程与计算总结(二)软件工程的发展

本章开始介绍第二节内容,主要是一些历史性的东西~ 一.软件工程的发展脉络 1.基础环境因素的变化及其对软件工程的推动 抽象软件实体和虚拟计算机都是软件工程的基础环境因素,它们能从根本上影响软件工程的生产能力,而且是软件工程无法反向…

C++语言GDAL批量裁剪多波段栅格图像:基于像元个数裁剪

本文介绍基于C 语言的GDAL模块,按照给定的像元行数与列数,批量裁剪大量多波段栅格遥感影像文件,并将所得到的裁剪后新的多波段遥感影像文件保存在指定路径中的方法。 在之前的文章中,我们多次介绍了在不同平台,或基于不…

软件测试教程 自动化测试selenium篇(二)

掌握Selenium常用的API的使用 一、webdriver API public class Main {public static void main(String[] args) {ChromeOptions options=new ChromeOptions();//参数表示允许所有请求options.addArguments("--remote-allow-origins=*");WebDriver webDriver=new Chr…

JS三大运行时全面对比:Node.js vs Bun vs Deno

全文约 5100 字,预计阅读需要 15 分钟。 JavaScript 运行时是指执行 JavaScript 代码的环境。目前,JavaScript 生态中有三大运行时:Node.js、Bun、Deno。老牌运行时 Node.js 的霸主地位正受到 Deno 和 Bun 的挑战,下面就来看看这…

电子地图 | VINS-FUSION | 小觅相机D系列

目录 一、相关介绍 二、VINS-FUSION环境安装及使用 (一)Ubuntu18.04安装配置 1、Ubuntu下载安装 2、设置虚拟内存(可选) (二)VINS-FUSION环境配置 1、ros安装 2、ceres-solver安装 3、vins-fusion…

MySQL进阶 —— 超详细操作演示!!!(下)

MySQL进阶 —— 超详细操作演示!!!(下) 五、锁5.1 概述5.2 全局锁5.3 表级锁5.4 行级锁 六、InnoDB 引擎6.1 逻辑存储结构6.2 架构6.3 事务原理6.4 MVCC 七、MySQL 管理7.1 系统数据库7.2 常用工具 MySQL— 基础语法大…