Pandas数据合并与重塑

在数据处理与分析的领域中,Pandas 无疑是一颗璀璨的明星。它提供了丰富且强大的功能,让我们能够轻松应对各种复杂的数据操作。其中,数据合并与重塑是两个至关重要的环节,它们能够帮助我们整合不同来源的数据,调整数据的结构以满足分析需求。本文将深入探讨 Pandas 中数据合并与重塑的相关知识和技巧。

一、数据合并

在实际应用中,我们经常会遇到需要将多个数据集合并在一起的情况。Pandas 提供了多种数据合并的方法,主要包括 mergeconcatjoin

(一)merge 方法

merge 方法类似于 SQL 中的 JOIN 操作,它可以根据一个或多个键将两个 DataFrame 进行合并。

import pandas as pd# 创建两个示例 DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C'],'value1': [1, 2, 3]
})df2 = pd.DataFrame({'key': ['A', 'B', 'D'],'value2': [4, 5, 6]
})# 根据 'key' 列进行合并,默认是 inner join
result_inner = pd.merge(df1, df2, on='key')
print(result_inner)# 进行 left join
result_left = pd.merge(df1, df2, on='key', how='left')
print(result_left)# 进行 right join
result_right = pd.merge(df1, df2, on='key', how='right')
print(result_right)# 进行 outer join
result_outer = pd.merge(df1, df2, on='key', how='outer')
print(result_outer)

在上述代码中,on 参数指定了用于合并的键,how 参数指定了合并的方式,包括 inner(内连接)、left(左连接)、right(右连接)和 outer(外连接)。

(二)concat 方法

concat 方法可以将多个 DataFrame 沿着指定的轴进行拼接。

# 创建两个示例 DataFrame
df3 = pd.DataFrame({'A': [1, 2],'B': [3, 4]
})df4 = pd.DataFrame({'A': [5, 6],'B': [7, 8]
})# 沿着行方向(axis=0)拼接
result_concat_row = pd.concat([df3, df4], axis=0)
print(result_concat_row)# 沿着列方向(axis=1)拼接
result_concat_col = pd.concat([df3, df4], axis=1)
print(result_concat_col)

concat 方法还可以通过 keys 参数为拼接后的 DataFrame 添加层次化索引。

(三)join 方法

join 方法主要用于基于索引的合并,它是 merge 方法的一种简化形式,适用于索引对齐的情况。

# 设置索引
df1.set_index('key', inplace=True)
df2.set_index('key', inplace=True)# 使用 join 方法进行合并
result_join = df1.join(df2, how='left')
print(result_join)

二、数据重塑

数据重塑是指改变数据的结构,使其更适合进行分析和可视化。Pandas 提供了多种数据重塑的方法,如 stackunstackpivotmelt

(一)stackunstack 方法

stack 方法可以将 DataFrame 的列旋转为行,而 unstack 方法则是将行旋转为列。

# 创建一个示例 DataFrame
df5 = pd.DataFrame({'A': [1, 2],'B': [3, 4],'C': [5, 6]
}, index=['X', 'Y'])# 使用 stack 方法
result_stack = df5.stack()
print(result_stack)# 使用 unstack 方法
result_unstack = result_stack.unstack()
print(result_unstack)

(二)pivot 方法

pivot 方法可以将 DataFrame 从长格式转换为宽格式,类似于 Excel 中的数据透视表操作。

# 创建一个示例 DataFrame
data = {'date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],'category': ['A', 'B', 'A', 'B'],'value': [10, 20, 15, 25]
}
df6 = pd.DataFrame(data)# 使用 pivot 方法
result_pivot = df6.pivot(index='date', columns='category', values='value')
print(result_pivot)

(三)melt 方法

melt 方法与 pivot 方法相反,它可以将 DataFrame 从宽格式转换为长格式。

# 对 pivot 后的结果进行 melt 操作
result_melt = result_pivot.melt(id_vars='date', var_name='category', value_name='value')
print(result_melt)

三、实际应用场景

(一)数据整合

在数据分析项目中,我们可能会从多个数据源获取数据,这些数据可能存储在不同的文件中,具有不同的结构。通过 mergeconcat 方法,我们可以将这些数据整合到一个统一的 DataFrame 中,方便后续的分析。

(二)数据预处理

在进行机器学习建模时,通常需要将数据转换为特定的格式。例如,某些算法要求输入数据为二维数组形式,且特征和目标变量需要分开。我们可以使用数据重塑的方法对原始数据进行处理,以满足算法的要求。

(三)数据可视化

不同的可视化工具对数据格式有不同的要求。通过数据重塑,我们可以将数据转换为适合可视化的格式,从而更直观地展示数据的特征和规律。

四、总结

Pandas 的数据合并与重塑功能为我们处理和分析数据提供了强大的支持。通过 mergeconcatjoin 方法,我们可以轻松地将多个数据集合并在一起;而 stackunstackpivotmelt 方法则可以帮助我们调整数据的结构,以满足不同的分析需求。在实际应用中,我们需要根据具体的问题和数据特点,选择合适的方法进行数据合并与重塑。希望本文能够帮助你更好地掌握 Pandas 的这些功能,提升数据处理和分析的能力。如果你有任何疑问或建议,欢迎在评论区留言交流。

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

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

相关文章

Nodejs数据库单一连接模式和连接池模式的概述及写法

概述 单一连接模式和连接池模式是数据库连接的两种主要方式: 单一连接模式: 优点:实现简单,适合小型应用缺点:每次请求都需要创建新连接,连接创建和销毁开销大,并发性能差,容易出…

将 DeepSeek 集成到 Spring Boot 项目实现通过 AI 对话方式操作后台数据

文章目录 项目简介GiteeMCP 简介环境要求项目代码核心实现代码MCP 服务端(批量注册 Tool)MCP 客户端(调用 DeepSeek) DeepSeek APIDockersse 连接ws 连接(推荐)http 连接 Cherry Studio配置模型配置 MCP调用…

【HDFS入门】HDFS性能调优实战:压缩与编码技术深度解析

目录 1 HDFS性能调优概述 2 HDFS压缩技术原理与应用 2.1 常见压缩算法比较 2.2 压缩流程架构 2.3 压缩配置实践 3 列式存储编码技术 3.1 ORC与Parquet对比 3.2 ORC文件结构 3.3 Parquet编码流程 4 性能调优实战建议 4.1 压缩选择策略 4.2 编码优化技巧 5 性能测试…

HCIP --- OSPF综合实验

一、拓扑图 二、实验要求 1,R5为ISP,其上只能配置IP地址;R4作为企业边界路由器,出口公网地址需要通过PPP协议获取,并进行chap认证。 2,整个0SPF环境IP基于172.16.0.8/16划分。 3,所有设备均可访问R5的环…

c++:线程(std::thread)

目录 从第一性原理出发:为什么需要线程? ✅ 本质定义: 📌 使用基本语法: 线程之间的“并发”与“并行”的区别 线程安全与数据竞争(Race Condition) 如何让线程“安全地”访问数据&#x…

PCL软件架构

Point Cloud Library (PCL) 采用模块化设计,提供了丰富的点云处理功能。以下是PCL的核心架构和主要类的详细介绍。 一、PCL整体架构 PCL的架构可以分为以下几个主要层次: 数据表示层:基础点云数据结构和基本操作 算法层:各种点云处理算法实现 I/O层:点云数据的输入输出 …

CCLinkIE转EtherCAT边缘计算网关构建智能产线:跨协议设备动态组网与数据优化传输

一、行业背景 随着新能源汽车市场爆发式增长,汽车制造企业对产线效率、设备协同性及柔性生产能力的要求显著提升。传统产线多采用CC-LinkIEFieldBasic(CCLINKIEFB)协议的三菱PLC控制系统,而新一代伺服驱动设备普遍采用EtherCAT协…

模态双侠闯江湖:SimTier 分层破局,MAKE 智炼新知

目录 利用多模态表示提升淘宝展示广告效果:挑战、方法与洞察摘要1 引言2 预备知识推荐模型中的ID特征基于ID的模型结构 3 多模态表示的预训练3.1 语义感知对比学习3.2 预训练数据集的构建3.3 优化 4 与推荐模型的集成4.1 观察和见解4.2 方法一:SimTier4.…

基于大模型的下肢静脉曲张全流程预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 研究方法与数据来源 二、下肢静脉曲张概述 2.1 定义与病理生理 2.2 风险因素与临床表现 2.3 诊断方法与现有治疗手段 三、大模型预测原理与构建 3.1 大模型技术简介 3.2 预测模型的数据收集与预处理 3.…

跨站脚本(XSS) 的详细分类、对比及解决方案

以下是 跨站脚本(XSS) 的详细分类、对比及解决方案: 一、XSS的分类与详解 1. 反射型XSS(非持久型XSS) 定义:攻击载荷通过URL参数传递,服务器直接返回到页面中,需用户主动触发。 工…

thinkphp实现图像验证码

示例 服务类 app\common\lib\captcha <?php namespace app\common\lib\captcha;use think\facade\Cache; use think\facade\Config; use Exception;class Captcha {private $im null; // 验证码图片实例private $color null; // 验证码字体颜色// 默认配置protected $co…

swift-12-Error处理、关联类型、assert、泛型_

一、错误类型 开发过程常见的错误 语法错误&#xff08;编译报错&#xff09; 逻辑错误 运行时错误&#xff08;可能会导致闪退&#xff0c;一般也叫做异常&#xff09; 2.1 通过结构体 第一步 struct MyError : Errort { var msg: String &#xff5d; 第二步 func divide(_ …

实验扩充 LED显示4*4键位值

代码功能概述 键盘扫描&#xff1a; 使用 KeyPort&#xff08;定义为 P1&#xff09;作为键盘输入端口。扫描 4x4 矩阵键盘&#xff0c;检测按键并返回按键编号&#xff08;0~15&#xff09;。 数码管显示&#xff1a; 根据按键编号&#xff0c;从 SegCode 数组中获取对应数码…

从零开始搭建CLIP模型实现基于文本的图像检索

目录 CLIP原理简介代码实现参考链接 CLIP原理简介 论文链接&#xff0c;源码链接 CLIP模型由OpenAI在2021年提出&#xff0c;利用双Decoder&#xff08;Dual Encoder&#xff09;的架构来学习图像和文本之间的对应关系&#xff0c;是多模态大模型的开创之作&#xff0c;为后续许…

熊海cms代码审计

目录 sql注入 1. admin/files/login.php 2. admin/files/columnlist.php 3. admin/files/editcolumn.php 4. admin/files/editlink.php 5. admin/files/editsoft.php 6. admin/files/editwz.php 7. admin/files/linklist.php 8. files/software.php 9. files…

[Java微服务组件]注册中心P3-Nacos中的设计模式1-观察者模式

在P1-简单注册中心实现和P2-Nacos解析中&#xff0c;我们分别实现了简单的注册中心并总结了Nacos的一些设计。 本篇继续看Nacos源码&#xff0c;了解一下Nacos中的设计模式。 目录 Nacos 观察者模式 Observer Pattern观察者模式总结 Nacos 观察者模式 Observer Pattern 模式定…

电脑 访问 github提示 找不到网页,处理方案

1、找到 本机的 host文件 例如 windows 的 一般在 C:\Windows\System32\drivers\etc\hosts 用管理员身份打开 hosts 文件 如果文件中没有 github的配置&#xff0c;需要自己手动添加上去&#xff1b; 如果有&#xff0c;则需要 检查 github.com 与 github.global.ssl.fastly.…

Linux系统中的网络管理

1.RHEL9版本中&#xff0c;使用nm进行网络配置&#xff0c;ifcfg不再是网络配置文件的主存储&#xff0c;样式仍然可用&#xff0c;但它不再是NetworkManger存储新网络配置文件的默认位置&#xff0c;RHEL以key-file格式在etc/NetworkManger/system-connections/中存储新的网络…

AI技术深度解析:从移动芯片到AIoT的全面突破

作为全球无线通信技术和半导体解决方案的重要参与者,高通始终将技术创新作为核心驱动力,在移动通信、物联网(IoT)、汽车电子、AI计算等领域占据关键地位。本文将从其核心产品线、技术突破、应用场景及未来布局四个维度,客观解析高通的技术积累与行业角色。 一、核心产品线…

使用CS Roofline Toolkit测量带宽

使用CS Roofline Toolkit测量带宽 工程下载&#xff1a;使用CS Roofline Toolkit测量带宽-案例工程文件&#xff0c;也可以按照下面的说明使用git clone下载 目录 使用CS Roofline Toolkit测量带宽0、Roofline模型理解1、CS Roofline Toolkit下载1.1、设置代理1.2、git clone下…