1、Pandas 数据结构:从 Series 到 DataFrame
目录
Series
创建 Series
Series 索引和选择
DataFrame
创建 DataFrame
DataFrame 索引和选择
DataFrame 操作和转换
数据结构转换
Series
Series 是 Pandas 中的一维数组形式的数据结构,它可以包含任何数据类型(整数、字符串、浮点数、Python对象等)。Series 基本上可以被视作一个定长的有序字典,因为它是索引值到数据值的一个映射。
创建 Series
可以使用 pd.Series(data, index=index) 来创建 Series,其中 data 可以是列表、字典、ndarray 等,index 是数据索引标签。
import pandas as pd# 从列表创建 Series
s1 = pd.Series([1, 3, 5, 7, 9])
print(s1)
print("=="*10)# 从字典创建 Series
s2 = pd.Series({'a': 100, 'b': 200, 'c': 300})
print(s2)
print("=="*10)# 从 ndarray 创建 Series
s3 = pd.Series(pd.date_range('20230101', periods=6))
print(s3)
结果:
0 1
1 3
2 5
3 7
4 9
dtype: int64
====================
a 100
b 200
c 300
dtype: int64
====================
0 2023-01-01
1 2023-01-02
2 2023-01-03
3 2023-01-04
4 2023-01-05
5 2023-01-06
dtype: datetime64[ns]
Series 索引和选择
Series 支持基于位置和基于标签的索引。
# 选择第四个元素
print(s1[3])# 选择索引标签为 'b' 的元素
print(s2['b'])# 选择前三个元素
print(s1[:3])
结果:
7
200
0 1
1 3
2 5
DataFrame
DataFrame 是 Pandas 中的二维表格型数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame 既有行索引也有列索引,它可以被看作是由 Series 组成的字典。
创建 DataFrame
可以使用 pd.DataFrame(data, index=index, columns=columns) 来创建 DataFrame,其中 data 可以是字典、ndarray、Series 或另一个 DataFrame。
import numpy as np
import pandas as pd# 从字典创建 DataFrame
df1 = pd.DataFrame({'A': 1.,'B': pd.Timestamp('20230102'),'C': pd.Series(1, index=list(range(4)), dtype='float32'),'D': np.array([3] * 4, dtype='int32'),'E': pd.Categorical(["test", "train", "test", "train"]),'F': 'foo'
})
print(df1)# 从二维ndarray创建 DataFrame
df2 = pd.DataFrame(np.random.randn(6, 4), columns=['A', 'B', 'C', 'D'])
print(df2)
结果:
A B C D E F
0 1.0 2023-01-02 1.0 3 test foo
1 1.0 2023-01-02 1.0 3 train foo
2 1.0 2023-01-02 1.0 3 test foo
3 1.0 2023-01-02 1.0 3 train fooA B C D
0 -0.434026 0.948463 0.386731 0.814795
1 -0.317982 -2.987843 0.519228 -1.365834
2 -2.120951 0.385530 -0.066971 0.089497
3 -1.299795 0.648691 -1.954919 -0.441423
4 0.789665 0.819811 -0.519527 -0.157360
5 0.701758 0.455677 -0.418348 0.518226
DataFrame 索引和选择
DataFrame 提供了多种方法来选择和索引:
# 选择单独的一列,返回一个 Series
print(df1['A'])# 利用 loc 选择行
print(df2.loc[0])# 通过位置选择
print(df2.iloc[3])# 切片选择行
print(df2[2:5])# 布尔索引
print(df1[df1['A'] > 0])
结果:
0 1.0
1 1.0
2 1.0
3 1.0
Name: A, dtype: float64
A 0.463703
B -0.132394
C -1.097140
D 0.617243
Name: 0, dtype: float64
A 1.522528
B 1.262699
C 1.334090
D -1.488483
Name: 3, dtype: float64A B C D
2 -0.382140 2.616053 1.539264 0.486279
3 1.522528 1.262699 1.334090 -1.488483
4 -0.272724 4.060280 1.894378 0.794090A B C D E F
0 1.0 2023-01-02 1.0 3 test foo
1 1.0 2023-01-02 1.0 3 train foo
2 1.0 2023-01-02 1.0 3 test foo
3 1.0 2023-01-02 1.0 3 train foo
DataFrame 操作和转换
DataFrame 支持各种操作,包括数据清洗、转换、聚合等。
# 设置新的一列
df1['G'] = df1['A'] * 2
print(df1)# 删除一列
df1.drop(columns='G', inplace=True)# 聚合操作
print(df1.mean())
数据结构转换
Series 与 DataFrame 之间可以相互转换:
# Series 转 DataFrame
s_to_df = s1.to_frame()# DataFrame 转 Series
df_to_s = df1['A']相关文章:
1、Pandas 数据结构:从 Series 到 DataFrame
目录 Series 创建 Series Series 索引和选择 DataFrame 创建 DataFrame DataFrame 索引和选择 DataFrame 操作和转换 数据结构转换 Series Series 是 Pandas 中的一维数组形式的数据结构,它可以包含任何数据类型(整数、字符串、浮点数、Python对象…...
MySQL函数—字符串函数
MySQL函数—字符串函数 函数功能CONCAT(s1,s2,...sn)字符串拼接,将s1,s2,...sn拼接成一个字符串LOWER(str)将字符串全部转为小写UPPER(str)将字符串全部转为大写LPAD(str,n,pad)左填充,用字符串pad对str左边进行填充,达到n个字符串长度RPAD(s…...
PLC从HTTP服务端获取JSON文件,解析数据到寄存器
智能网关IGT-DSER集成了多种PLC协议,方便实现各种PLC与HTTP服务端之间通讯。通过网关的参数配置软件绑定JSON文件的字段与PLC寄存器地址,配置URL,即可采用POST命令,将JSON文件提交给HTTP的服务端; 服务端有返回的JSON&…...
LeetCode 46. 全排列
46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入&#…...
NVMe TCG安全数据存储简介
NVMe(非易失性内存主机控制器接口规范)与TCG(可信计算组)的集成主要体现在数据安全、固件验证和硬件信任根等方面,以确保存储设备的数据保护能力和安全性。 TCG Opal定义了一套针对自加密硬盘(SED, Self-En…...
Linux命令-ab命令(Apache服务器的性能测试工具 )
Apache服务器的性能测试工具 ab命令 是一个测试你 Apache http 服务器的工具,你可以通过这个工具,指定一个单位时间内向 apache 发出的请求数量来看看你的 Apache 和机器配合的性能如何。 语法 []内容为ab命令后跟的语法,eg:ab …...
蓝桥杯java基础
数组的倒序与隔位输出 时间限制:1.000S 空间限制:128MB 题目描述 给定一个整数数组,编写一个程序实现以下功能: 1. 将输入的整数数组倒序输出,每个数之间用空格分隔。 2. 从正序数组中,每隔一个单位&a…...
Unity3d引擎中使用AIGC生成的360全景图(天空盒)
前言 在这里与Skybox AI一起,一键打造体验无限的360世界,这是这个AIGC一键生成全景图的网站欢迎语。 刚使用它是23年中旬,在没有空去给客户实地拍摄全景图时,可以快速用它生成一些相关的全景图,用作前期沟通的VR de…...
React Router v6 改变页面Title
先说正事再闲聊 1、在路由表加个title字段 2、在index包裹路由 3、在App设置title 闲聊: 看到小黄波浪线了没 就是说默认不支持title字段了 出来的提示, 所以我本来是像下面这样搞的,就是感觉有点难维护,就还是用上面的方法了 …...
postman测试导入文件
01 上传文件参数 1.选择请求方式 选择post请求方式,输入请求地址 2.填写Headers Key:Content-Type ; Value:multipart/form-data 如下图 3.填写body 选择form-data,key选择file类型后value会出现按钮࿰…...
ZigBee学习(一)
文章目录 一、ZigBee介绍二、IEEE 802.15.42.1 物理层2.2 MAC层2.3 如何实现网络和设备寻址2.4 能量管理 三、ZigBee网络拓扑结构四、ZigBee配置参数 一、ZigBee介绍 ZigBee是一种基于IEEE 802.15.4标准的高级通信协议,它被设计用于低速率、低功耗和短距离无线通信&…...
Unity—配置lua环境变量+VSCode 搭建 Lua 开发环境
每日一句:保持须臾的浪漫,理想的喧嚣,平等的热情 Windows 11下配置lua环境变量 一、lua-5.4.4版本安装到本地电脑 链接:https://pan.baidu.com/s/14pAlOjhzz2_jmvpRZf9u6Q?pwdhd4s 提取码:hd4s 二、高级系统设置 此电…...
前端-云点播技术
一、简介 云点播(Cloud Video On Demand)是一种基于云计算平台提供的视频点播服务。这种服务允许用户在需要的时候按需观看视频内容,而无需等待下载完成。以下是一些关于云点播技术的常见特征和要点: 存储和管理: 云存…...
k8s---ingress对外服务(traefik)
目录 ingress的证书访问 traefik traefik的部署方式: deamonset deployment nginx-ingress与traefix-ingress相比较 nginx-ingress-controller ui访问 deployment部署 ingress的证书访问 ingress实现https代理访问: 需要证书和密钥 创建证书 密钥 secre…...
MySQL-SQL-DQL
DQL-介绍 DQL-语法 基本查询 1、查询多个字段 2、设置别名 3、去除重复记录 条件查询 1、语法 2、条件 聚合函数 1、介绍 2、常见的聚合函数 3、语法 分组查询 1、语法 2、where与having区别 排序查询 1、语法 2、排序方式 分页查询 1、语法 DQL-执行顺序...
Docker(十四)Etcd 项目
作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! etcd etcd 是 CoreOS 团队发起的一个管理配置信息和服务发现(Service Discovery)的项目,在这一章里面&a…...
EtherNet/IP开发:C++开发CIP源代码
① 介绍一下CIP CIP是一种考虑到自动化行业而设计的通用协议。然而,由于其开放性,它可以并且已经应用于更多的领域。CIP网络库包含若干卷: 第1卷介绍了适用于所有网络自适应的CIP的常见方面。本卷包含通用对象库和设备配置文件库࿰…...
【算法题】68. 文本左右对齐
题目 给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必…...
PHP 调用 e 签宝接口签名指南
前言 在 401 问题上卡了 一段时间,参考官网文档和鉴权签名计算测试也试了很久,签名确定是没错的,但是一直提示 INVALID_SIGNATURE 其实问题在于我忽略了 公共请求头格式 中 Content-MD5 部分的一句话: GET 和 DELETE 请求且 Bod…...
穿越Flink的时间隧道:解锁实时数据之窗,掌握流处理之巅
目录 Flink中的时间和窗口 1时间语义 1.1Flink中的时间语义 1.1.1处理时间 1.1.2事件时间 1.2那种时间语义更重要 2 水位线 2.1 事件时间和窗口 2.2 什么是水位线 2.3 如何生成水位线 2.3.1使用WatermarkGenerator 2.3.2使用SourceFunction 2.4 水位线的传递 2.5 水位…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...
VSCode 没有添加Windows右键菜单
关键字:VSCode;Windows右键菜单;注册表。 文章目录 前言一、工程环境二、配置流程1.右键文件打开2.右键文件夹打开3.右键空白处打开文件夹 三、测试总结 前言 安装 VSCode 时没有注意,实际使用的时候发现 VSCode 在 Windows 菜单栏…...
