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

【python数据建模】Pandas库

概述

Pandas库主要提供了三种数据结构:
(1)Series:带标签的一维数据
(2)DataFrame:带标签且大小可变的二维表结构
(3)Panel:带标签且大小可变的三维数据
Pandas 数据结构就像是低维数据的容器。比如,DataFrame 是 Series 的容器,Series 则是标量的容器。使用这种方式,可以在容器中以字典的形式插入或删除对象。

Series

创建对象

import pandas as pd
import numpy as np# 以字典形式给出标签和一维数据
d = {'a': 1, 'b': 2, 'c': 3}
ser=pd.Series(d)# data:传输数据 index:传输标签
a=np.arange(0,3)
d=['x','y','z']
ser=pd.Series(data=a,index=d)

DataFrame

创建对象

import pandas as pd
import numpy as np# index是行标签 columns是列标签 默认都是从0开始的正数索引
d=np.arange(1,10).reshape(3,3)
a=['A','B','C']
e=['一','二','三']
df1=pd.DataFrame(data=d,index=a)
df2=pd.DataFrame(data=d,index=a)
df=pd.DataFrame(data=d,index=e,columns=a)
"""
dfA  B  C
一  1  2  3
二  4  5  6
三  7  8  9
"""

查看数据

1、查看头部与尾部数据

# head(n):从头部开始,选取n行数据
print(df.head(1))# tail(n):从尾部开始,选取n行数据
print(df.tail(2))

2、显示索引与列名

# 索引 行标签
df.index
"""
Index(['一', '二', '三'], dtype='object')
"""
# 列名 列标签
df.columns
"""
Index(['A', 'B', 'C'], dtype='object')
"""

3、to_numpy():输出不包含行索引和列标签的numpy对象

df.to_numpy()

4、describe():快速查看数据的统计摘要

df.describe()
"""A    B    C
count  3.0  3.0  3.0
mean   4.0  5.0  6.0
std    3.0  3.0  3.0
min    1.0  2.0  3.0
25%    2.5  3.5  4.5
50%    4.0  5.0  6.0
75%    5.5  6.5  7.5
max    7.0  8.0  9.0
"""

索引

1 按列标签索引

print(df['A'])
"""
一    1
二    4
三    7
Name: A, dtype: int32
"""

2 按行切片索引

print(df[0:1])
"""A  B  C
一  1  2  3
"""
print(df['二':'三'])
"""A  B  C
二  4  5  6
三  7  8  9
"""

3 loc方法

用DataFrame对象的loc方法,同时按列标签和行切片索引

print(df.loc['二':'三','A'])
"""
二    4
三    7
Name: A, dtype: int32
"""

4 iloc方法

用DataFrame对象的iloc方法,用整数or整数数组按位置索引

print(df.iloc[1,[1,2]])
"""
B    5
C    6
Name: 二, dtype: int32
"""
print(df.iloc[:,[0,2]])
"""A  C
一  1  3
二  4  6
三  7  9
"""

5 布尔索引

print(df[df.A>5])
"""A  B  C
三  7  8  9
"""
print(df[df>5])
"""A    B    C
一  NaN  NaN  NaN
二  NaN  NaN  6.0
三  7.0  8.0  9.0
"""
# isin方法
print(df[df.isin([4,9])])

数据输入输出

CSV

# 将df写入csv格式文件
df.to_csv('文件名.csv')
#读取
pd.read_csv('文件名.csv')

excel

同cvs,有to_csvread_csv

类似SQL的聚合函数

连接:concat

concat()函数用于连接Pandas对象。
列标签相同的话,起到一个上下行拼接的效果。列标签不同的话,会变成列拼接,NAN缺失值会补全数据表。

import pandas as pd
import numpy as npd=np.arange(1,10).reshape(3,3)
a=['A','B','C']
e=['一','二','三']
df=pd.DataFrame(data=d,index=e,columns=a)
df1=pd.DataFrame(data=np.random.rand(3,3),index=e,columns=a)
print(pd.concat([df,df1]))
"""A         B         C
一  1.000000  2.000000  3.000000
二  4.000000  5.000000  6.000000
三  7.000000  8.000000  9.000000
一  0.970790  0.092893  0.438776
二  0.580138  0.996153  0.698677
三  0.554084  0.640035  0.574166
"""
d=np.arange(1,10).reshape(3,3)
a=['A','B','C']
e=['一','二','三']
df=pd.DataFrame(data=d,index=e,columns=a)
df1=pd.DataFrame(data=np.random.rand(3,4),index=e)
print(pd.concat([df,df1]))
"""A    B    C         0         1         2         3
一  1.0  2.0  3.0       NaN       NaN       NaN       NaN
二  4.0  5.0  6.0       NaN       NaN       NaN       NaN
三  7.0  8.0  9.0       NaN       NaN       NaN       NaN
一  NaN  NaN  NaN  0.286544  0.470042  0.229887  0.323514
二  NaN  NaN  NaN  0.475214  0.994036  0.724422  0.788663
三  NaN  NaN  NaN  0.231405  0.785781  0.537038  0.576568
"""

连接:merge

跟SQL语句中的join函数一个效果

import pandas as pd
import numpy as npleft = pd.DataFrame({'key': ['foo', 'foo'], 'lval': [1, 2]})
right = pd.DataFrame({'key': ['foo', 'foo'], 'rval': [4, 5]})
df=pd.merge(left,right)
print(df)
"""key  lval  rval
0  foo     1     4
1  foo     1     5
2  foo     2     4
3  foo     2     5
"""

分组:groupby

相关文章:

【python数据建模】Pandas库

概述 Pandas库主要提供了三种数据结构: (1)Series:带标签的一维数据 (2)DataFrame:带标签且大小可变的二维表结构 (3)Panel:带标签且大小可变的三维数据 Pan…...

Flutter笔记:关于应用程序中提交图片作为头像

Flutter笔记 关于应用程序中提交图片作为头像 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/133418554…...

【C++】C++的类型转换

文章目录 1. C语言中的类型转换2. C中的类型转换2.1 static_cast2.2 reinterpret_cast2.3 const_cast2.4 dynamic 1. C语言中的类型转换 在C语言中,经常会出现一种情况:运算符两边的类型不同,或者形参实参类型不匹配,此时就会发生…...

ahk系列——ahk_v2实现win10任意界面ocr

前言: 不依赖外部api接口,界面简洁,翻译快速,操作简单, 有网络就能用 、还可以把ocr结果非中文翻译成中文、同样可以识别中英日韩等60多个国家语言并翻译成中文,十分的nice 1、所需环境 windows10及其以上…...

linux下端口映射

linux下端口映射 1. 允许数据包转发 echo 1 >/proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -j MASQUERADEiptables -A FORWARD -i [内网网卡名称] -j ACCEPTiptables -t nat -A POSTROUTING -s [内网网段] -o [外网网卡名称] -j MASQUERADE# 例&#xff1a…...

C++ 迭代器(iterator)

迭代器介绍 迭代器(iterator):容器类型内置的“指针” - 使用迭代器可以访问某个元素,迭代器也能从一个元素移动到另一个元素。 - 有迭代器的类型都拥有 begin 和 end 成员- begin:返回指向第一个元素(或字…...

基于Python3搭建qt开发环境

Python可视化编程相信大部分刚接触都是tkinter,tkinter是Python自带的库,不需要安装第三方库即可使用,在我的Python专栏中也有很多基于tkinter来设计的可视化界面。本篇文章将尝试另外一个Python的可视化编程库(pyqt),与tkinter编…...

Linux常见操作命令(1)

​ 前言:作者也是初学Linux,可能总结的还不是很到位 ♈️今日夜电波:达尔文—林俊杰 0:30━━━━━━️💟──────── 4:06 🔄 ◀️ …...

GEO生信数据挖掘(一)数据集下载和初步观察

检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 目录 GEOquery 简介 安装并加载GEOquery包 getGEO函数获取数据(联网下载) 更换下载数据源 对数据集进行初步观察处理 GEOquery 简介 GEOquery是一个…...

Tensorflow2 GPU 安装方法

一、Tensorflow2 GPU 安装方法 1. 首先安装Anaconda3环境2. 在Anaconda Prompt 中安装tensorflow23. 验证GPU是否可以使用 1. 首先安装Anaconda3环境 https://www.anaconda.com/ 2. 在Anaconda Prompt 中安装tensorflow2 conda update conda conda create -n tensorflow pyt…...

QSS之QLineEdit

QLineEdit我们在开发过程中是经常使用的,一般情况下默认的风格是不适合设计师的要求,本篇介绍QLineEdit的基本qss风格: 1.基本属性设置 QLineEdit{background-color:#FFFFFF;color:#333333;border:none;} 2.悬浮状态设置 QLineEdit:hover…...

在比特币上支持椭圆曲线 BLS12–381

通过使用智能合约实现来支持任何曲线 BLS12–381 是一种较新的配对友好型椭圆曲线。 与常用的 BN-256 曲线相比,BLS12-381 的安全性明显更高,并且安全目标是 128 位。 所有其他区块链,例如 Zcash 和以太坊,都必须通过硬分叉才能升…...

简单讲解 glm::mat4

文章目录 前言一、下载glm库二、基本数学知识1. 三维中的 4 x 4 矩阵2.旋转3. 位移4. 缩放5. 组合 三、行向量或列向量四、总结 前言 glm库是OpenGL的官方数学库,里面内置多种跟几何变换相关的函数,熟练掌握glm库可以省下很多麻烦。 因为最近在项目中主…...

第3章-指标体系与数据可视化-3.1.1-Matplotlib绘图库

目录 3.1 Python可视化 3.1.1 Matplotlib绘图库 1. 线图 2. 饼图 3. 条形图 4. 直方图 5.散点图...

探索视听新纪元: ChatGPT的最新语音和图像功能全解析

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🤖 人工智能 AI: 🧠 Machine …...

华为乾坤区县教育安全云服务解决方案(1)

华为乾坤区县教育安全云服务解决方案(1) 课程地址方案背景客户痛点分析区县教育网概述区县教育网业务概述区县教育网业务安全风险分析区县教育网安全运维现状分析区县教育网安全建设痛点分析 安全解决方案功能概述架构概述方案架构设备选型 课程地址 本…...

《Jetpack Compose从入门到实战》第三章 定制 UI 视图

目录 配置颜色、字体与形状Welcome PageLogin PageHome Page 主题CompositionLocal 配置颜色、字体与形状 -ui.theme.Color.kt val pink100 Color(0xFFFFF1F1) val pink900 Color(0xFF3F2C2C) val white Color(0xFFFFFFFF) val white850 Color(0xD9FFFFFF) val gray Col…...

Kubernetes组件和架构简介

目录 一.概念简介 1.含义: 2.主要功能: 3.相关概念: 二.组件和架构介绍 1.master:集群的控制平面,管理集群 2.node:集群的数据平面,为容器提供工作环境 3.kubernetes简单架构图解 一.概…...

ElementUI实现增删改功能以及表单验证

目录 前言 BookList.vue action.js 展示效果 前言 本篇还是在之前的基础上&#xff0c;继续完善功能。上一篇完成了数据表格的查询&#xff0c;这一篇完善增删改&#xff0c;以及表单验证。 BookList.vue <template><div class"books" style"pa…...

C++中有哪些运算符以及它们的优先级?

C中常用的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符等。这里列举一些常见的运算符以及它们的优先级&#xff08;从高到低&#xff09;&#xff1a; 圆括号&#xff08;&#xff09;一元正号、一元负号-数组下标[]成员选择符&#xff08;点号.、箭头…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》

&#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...