Pandas库:从入门到应用(一)
一、Pandas简介

pandas是 Python 的核⼼数据分析⽀持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。pandas是Python进⾏数据分析的必备⾼级⼯具。
pandas的主要数据结构是 **Series(**⼀维数据)与 DataFrame (⼆维数据),这两种数据结构⾜以处理⾦融、统计、社会科学、⼯程等领域⾥的⼤多数案例
处理数据⼀般分为⼏个阶段:数据整理与清洗、数据分析与建模、数据可视化与制表,Pandas 是处理数据的理想⼯具
二、Pandas 安装验证
2.1、本地wendows或linux直接pip安装
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

2.2、登入python验证
import pandas as pd ## 没有报错说明pandas安装成功

三、Pandas 的数据结构
3.1、Series
Series对象用来表示一维数据结构 ,和常规的数组类型,但是Series的内部结构是包含了两个数组
一个是用来保存数据(data),一个是用来保存数据的索引(index)
pandas.Series( data, index, dtype, name, copy)
参数说明:
- data:一组数据(ndarray 类型)。
- index:数据索引标签,如果不指定,默认从 0 开始。
- dtype:数据类型,默认会自己判断。
- name:设置名称。
- copy:拷贝数据,默认为 False。
pd.Series(data=['北京','上海','广州','深圳'],index=[1,2,3,4],dtype='str',name='中国一线城市')

如果不指定索引(index)会自动从0开始

3.2、DataFrame
DataFrame 是一个二维数组的数据结构,类似Excel、sql表。
DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。
pandas.DataFrame( data, index, columns, dtype, copy)
参数说明:
- data:一组数据(ndarray、series, map, lists, dict 等类型)。
- index:索引值,或者可以称为行标签。
- columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
- dtype:数据类型。
- copy:拷贝数据,默认为 False。
df1 = pd.DataFrame(data = np.random.randint(0,151,size=(3,3)), #index = ['张三','李四','王五'], # ⾏索引columns= ['python','math','english'])

四、DataFrame的常用属性
4.1、head()函数
显示头部数据,默认显示头部5行数据
import numpy as np
import pandas as pd
df1 = pd.DataFrame(data = np.random.randint(0,151,size=(10,3)), columns= ['python','math','english'])
df1.head(7) ##显示前7行数据

4.2、tail()函数
显示尾部数据,默认显示尾部5行数据
df1.tail(5)

4.3、shape 函数
显示DataFrame数据结构的行数和列数
df1.shape ## (10, 3)
4.4、dtypes 函数
显示各列的数据类型
df1.dtypes

4.5、index 函数
显示DataFrame数据的行索引,及索引类型
import numpy as np
import pandas as pd
df1 = pd.DataFrame(data = np.random.randint(0,151,size=(10,3)), #index=['张三','大华','小明','李四','小丽','小军','王五','木木','明明','小六子'],columns= ['python','math','english'])
df1.index

4.6、columns 函数
显示DataFrame数据的列索引,及索引类型
df1.columns

4.7、values 函数
显示DataFrame数据的二维ndarray数组
df1.values

4.8、describe() 函数
查看数值型列的汇总统计,计数、平均值、标准差、最⼩值、四分位数、最⼤值
df1.describe()

4.9、info() 函数
查看列索引、数据类型、⾮空计数和内存信息
df1.info()

五、Pandas 数据输入与输出
5.1、操作csv文件
5.1.1、写入csv文件
import numpy as np
import pandas as pd
df1 = pd.DataFrame(data = np.random.randint(0,151,size=(10,3)), #index=['张三','大华','小明','李四','小丽','小军','王五','木木','明明','小六子'],columns= ['python','math','english'])df1.to_csv('./score.csv',sep = ',', # ⽂本分隔符,默认是逗号header = True,# 是否保存列索引index = True, # 是否保存⾏索引,保存⾏索引,⽂件被加载时,默认⾏索引会作为⼀列index_label= '姓名') # 设置index列的名称

5.1.2、读取csv文件
import numpy as np
import pandas as pd
pd.read_csv('./score.csv',sep = ',',# 默认是逗号header = [0],#指定列索引index_col=0) # 指定⾏索引pd.read_table('./score.csv', # 和read_csv类似,读取限定分隔符的⽂本⽂件sep = ',',header = [0],#指定列索引index_col=0) # 指定⾏索引

5.2、操作Excel文件
5.2.1、下载Excel的包
pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install xlwt -i https://pypi.tuna.tsinghua.edu.cn/simple

5.2.2、写入Excel文件
import numpy as np
import pandas as pd
import xlrd
df1 = pd.DataFrame(data = np.random.randint(0,50,size = [50,5]), # 薪资情况columns=['IT','化⼯','⽣物','教师','⼠兵'])
# 保存到当前路径下,⽂件命名是:salary.xls
df1.to_excel('./salary.xls',sheet_name = 'salary',# Excel中sheet⼯作表的名字header = True,# 是否保存列索引index = True,# 是否保存⾏索引index_label= '编号' # 设置index列的名称)

5.2.3、⼀个Excel⽂件中保存多个⼯作表
import numpy as np
import pandas as pd
import xlrd
import xlwt
import openpyxl
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'])# ⼀个Excel⽂件中保存多个⼯作表
with pd.ExcelWriter('./data.xls') as writer:df1.to_excel(writer,sheet_name='salary',index = False)df2.to_excel(writer,sheet_name='score',index = False)

5.2.4、读取Excel文件
import numpy as np
import pandas as pd
import xlwtpd.read_excel('./salary.xls',sheet_name=0,# 读取哪⼀个Excel中⼯作表,默认第⼀个header = 0,# 使⽤第⼀⾏数据作为列索引index_col=0)# 指定⾏索引,A作为⾏索引

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

5.3、操作HDF5文件
5.3.1、HDF5简介及安装
- HDF5是⼀个独特的技术套件,可以管理⾮常⼤和复杂的数据收集。
- HDF5可以存储不同类型数据的⽂件格式,后缀通常是.h5,它的结构是层次性的。
- HDF5⽂件可以被看作是⼀个组包含了各类不同的数据集。
pip install tables -i https://pypi.tuna.tsinghua.edu.cn/simple

5.3.2、HDF5架构
对于HDF5⽂件中的数据存储,有两个核⼼概念:group 和 dataset
dataset :代表数据集,⼀个⽂件当中可以存放不同种类的数据集,
group:最直观的理解,可以参考我们的⽂件管理系统,不同的⽂件位于不同的⽬录下,⽬录就是HDF5中的group

5.3.2、写入HDF5文件
import numpy as np
import pandas as pddf1 = 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'])
# 保存到当前路径下,⽂件命名是:data.h5
df1.to_hdf('./data.h5',key='salary') # 保存数据的key,标记
df2.to_hdf('./data.h5',key = 'score')
.h5文件没法直接打开,打开全都乱码了,但是还是看到有HDF的标识

5.3.3、读取HDF5文件
pd.read_hdf('./data.h5',key='score')

相关文章:
Pandas库:从入门到应用(一)
一、Pandas简介 pandas是 Python 的核⼼数据分析⽀持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。pandas是Python进⾏数据分析的必备⾼级⼯具。 pandas的主要数据结构是 **Series(**⼀维数据)与 DataFrame (⼆维数据…...
MySQL中concat()、concat_ws()、group_concat()函数使用
在平时工作中,经常记不清或者记混他们的用法,正好有时间就记录一下~concat()函数语法:concat(str1, str2, int1...)例如执行sql:SELECT CONCAT(id,USERNAME,USER_PHONE) FROM tb_user输出查询结果为: 1test15216756754…...
【JavaEE初阶】第四节.文件操作 和 IO (上篇)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、文件 1.1 文件的概念 1.2 文件的路径二、 Java中文件系统操作 2.1 File类的属性 2.2 File类的构造方法 2.3 File类的方法 …...
开源免费堡垒机Teleport堡垒机的安装
准备:纯净centos7系统一个作为堡垒机,若干个linux系统或windows系统服务器作为受保护的服务器 堡垒机IP:192.168.1.15 服务器IP:192.168.1.10 1、teleport安装 下载地址: https://www.tp4a.com/static/download/teleport-server-linux-x64-3.6.4-b3.tar.gz xshell上传压缩…...
图形报表ECharts
图形报表ECharts1 图形报表ECharts1.1 ECharts简介-富客户端图表库ECharts缩写来自Enterprise Charts,商业级数据图表,是百度的一个开源的使用JavaScript实现的数据可视化工具,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏…...
便捷式储能电源核心技术--单相逆变器设计
便捷式储能电源核心技术–单相逆变器设计 1.逆变器的规格参数 输入电压直流400V输出电压交流rms220V开关频率10kHz滤波电容6.23uF控制方式单极性倍频2.视频学习链接 视频学习链接 3.主电路仿真设计...
Gamma矫正
Gamma 曲线Gamma校正被使用在8位RGB图中。用来解决在有限的存储空间中保存尽可能多的人类感受敏感的色彩内容。Gamma 矫正Gamma校正的方式就是采样时,和输出到显示器给人类看时,对亮度进行的调整.如采样时 Gamma1/2.2 调亮Gamma,如显示时 Gamma2.2 调暗Gamma实际亮度…...
速懂cookie,session,token
文章目录cookiesessiontoken区别cookie 是浏览器提供的一种能力,可以在每次发起请求前,带上cookie里面的内容(一些key,value值) 分类: 会话级cookie:默认情况,就是会话级cookie&…...
javaEE初阶 — HTML 中的常见标签
文章目录注释标签标题标签:h1 h6段落标签:p换行标签:br格式化标签图片标签:img1. img 的 alt 属性2. img 的 title 属性3. width 与 heigth 属性用来描述图的尺寸超链接标签:a表格标签列表标签表单标签1. from 标签2. …...
MySQL慢查询
2 慢查询 2.1 慢查询介绍 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。具体指运行时间超过long_query_time值的SQL&…...
tensorflow【import transformers 报错】
目录 一、安装 安装好了tensorflow,但是import时候报错: import transformers 报错 一、安装 (1)创建环境: conda create -n [name] python3.3-3.7 (2)激活环境: conda activate [name] …...
JMU软件20 计算机网络复习
文章目录题型单位换算第一章协议与划分层次、网络协议的三个组成要素,分层的思想等协议网络协议的三个组成要素分层的思想⭐计算机网络体系结构OSI 的七层协议TCP/IP 的四层协议五层协议发送时延、传播时延、总时延、往返时间RTT计算第二章 物理层传输媒体导向性传输…...
Java基础之《dubbo(1)—dubbo基础入门》
一、为什么要使用dubbo 1、dubbo是什么 dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 2、dubbo有何特点 (1)远程通讯:提供透明化的远程方法调用,提供…...
HTML注入的一种攻击思路(超链接替换为点击验证,现在常见)
目录 背景 利用方法 举一反三 场景1:截获 TOKEN 场景2:截获后台信息 总结...
Redis-6集群
文章目录前言Redis集群原理搭建Redis集群集群拓展后记前言 前两期介绍和搭建了Redis的主从复制架构和哨兵模式,虽然哨兵模式能够实现自动故障转移主备切换,一定程度上提高了系统的容错性 但这两种架构模式都不能解决单节点的并发压力和物理上线的问题&…...
Spring Cloud学习笔记:基础知识
这是本人学习的总结,主要学习资料如下 马士兵教育 目录1、Spring Cloud 简介2、Eureka3、建立Spring Cloud项目3.1、启动Server3.1.1、dependency3.1.2、配置文件3.1.3、Server端启动代码3.2、启动Client3.2.1、dependency3.2.2、配置文件3.3.3、Client端启动代码3…...
农产品销售系统/商城,可运行
文章目录项目介绍一、项目功能介绍1、用户模块主要功能包括:2、商家模块主要功能包括:3、管理员模块主要功能包括:二、部分页面展示1、用户模块部分功能页面展示2、商家模块部分功能页面展示3、管理员模块部分功能页面展示三、部分源码四、底…...
【Java开发】JUC进阶 05:函数式接口、ForkJoin
1 四大函数式接口函数式接口:只有一个抽象方法的接口,只要是函数式接口,就可以用lambda表达式简化例如Runnable:FunctionalInterface public interface Runnable {public abstract void run(); }框架底层大量应用函数式接口&#…...
Nginx支持quic协议
第一种方式:Nginx官方nginx-quic搭建 通过部署Nginx官方的QUIC分支来实现的浏览器和nginx-quic服务器粗略的HTTP3通信。 1、下载BoringSSL BoringSSL 是由谷歌开发,从 OpenSSL 中分离的一个分支。BoringSSL 是 Chrome/Chromium、Android(但它不是 NDK 的…...
笔记 - Java 内存结构与模型
-- Java里内存结构与内存模型是两种概念 一、Java内存结构: HeapMemory - 堆内存Java Stacks - 栈内存 (运行时)Method Area - 方法区Native Method Stack - 本地方法栈 真实和系统打交道的地方Jit Compiler - 将java运行指令编译成机器指令G…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
