Python实战:Pandas数据合并与重塑

本文将深入探讨Pandas库在数据合并与重塑方面的强大功能。我们将涵盖多种数据合并方法,如merge、join、concat等,以及数据重塑的技巧,如pivot_table、merge_asof等。

一、引言

Pandas是一个强大的Python数据分析库,它提供了丰富的数据结构和数据分析工具,使得数据处理变得简单易行。在数据分析和挖掘过程中,数据合并与重塑是常见的操作。Pandas提供了多种方法来实现这些操作,使得我们能够高效地处理数据。

二、数据合并

数据合并是将多个DataFrame对象合并成一个DataFrame对象的过程。在Pandas中,有多种方法可以实现数据合并,如merge、join、concat等。
1. concat
concat函数用于沿着指定轴将多个DataFrame对象合并成一个DataFrame对象。它支持不同的轴(axis),如0轴(行)和1轴(列)。

import pandas as pd
# 创建两个DataFrame对象
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']},index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],'B': ['B4', 'B5', 'B6', 'B7'],'C': ['C4', 'C5', 'C6', 'C7'],'D': ['D4', 'D5', 'D6', 'D7']},index=[4, 5, 6, 7])
# 沿着0轴(行)合并
result_row = pd.concat([df1, df2])
# 沿着1轴(列)合并
result_col = pd.concat([df1, df2], axis=1)

2. merge
merge函数用于根据指定的键(key)将两个或多个DataFrame对象合并成一个DataFrame对象。它支持不同的连接方式,如内连接(inner)、外连接(left、right、outer)等。

# 创建两个DataFrame对象
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3']})
df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']})
# 内连接
result_inner = pd.merge(df1, df2, on='key', how='inner')
# 左连接
result_left = pd.merge(df1, df2, on='key', how='left')
# 右连接
result_right = pd.merge(df1, df2, on='key', how='right')
# 外连接
result_outer = pd.merge(df1, df2, on='key', how='outer')

3. join
join函数用于根据索引将两个或多个DataFrame对象合并成一个DataFrame对象。它支持不同的连接方式,如内连接(inner)、外连接(left、right、outer)等。

# 创建两个DataFrame对象
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3'],'C': ['C0', 'C1', 'C2', 'C3']},index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],'B': ['B4', 'B5', 'B6', 'B7'],'D': ['D4', 'D5', 'D6', 'D7']},index=[4, 5, 6, 7])
# 内连接
result_inner = df1.join(df2, how='inner')
# 左连接
result_left = df1.join(df2, how='left')
# 右连接
result_right = df1.join(df2, how='right')
# 外连接
result_outer = df1.join(df2, how='outer')

三、数据重塑

数据重塑是将DataFrame对象转换成其他形式的过程,如转置、重塑、分组等。在Pandas中,可以使用多种方法来实现数据重塑,如pivot_table、merge_asof等。
1. pivot_table
pivot_table函数用于将DataFrame对象转换成 pivot 表。它可以根据指定的行键、列键和值键来重塑数据。

# 创建一个DataFrame对象
df = pd.DataFrame({'key1': ['A', 'A', 'B', 'B'],'key2': ['one', 'two', 'one', 'two'],'value': [10, 20, 30, 40]})
# 重塑数据
result = pd.pivot_table(df, values='value', index=['key1', 'key2'], columns='value')

2. merge_asof
merge_asof函数用于根据指定的键(key)和度量(measure)将两个DataFrame对象合并成一个DataFrame对象。它支持不同的连接方式,如内连接(inner)、左连接(left)等。

# 创建两个DataFrame对象
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3']})
df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']})
# 内连接
result = pd.merge_asof(df1, df2, on='key', by='A', direction='nearest')

四、总结

本文详细介绍了Pandas在数据合并与重塑方面的功能。我们首先探讨了数据合并的方法,如concat、merge和join,以及它们的不同连接方式和应用场景。然后,我们介绍了数据重塑的方法,如pivot_table和merge_asof,以及它们在数据转换和分组方面的应用。

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

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

相关文章

【Flutter】文件选择器(file_picker)的用法

Flutter 没有提供内置的文件选择器,但社区内有人贡献了一个比较完整的解决方案——file_picker。 file_picker 的 API 简洁易用,支持全平台(Android / iOS / Mac / Linux / Windows),是我开发桌面应用时的首选。 这边…

HMI界面之:上位机界面设计,一文扫盲

一、什么是上位机 上位机(Supervisory Control and Data Acquisition,简称SCADA)是一种用于监控和控制工业过程的计算机系统。它通常由两个主要部分组成:上位机和下位机。 上位机是SCADA系统中的主要控制中心,负责监控…

mysql笔记:24. 主从同步环境搭建

文章目录 主从同步的基本原理主从同步的搭建步骤1. 环境准备2. 配置主服务器(Master)3. 配置从服务器(Slave)4. 测试配置5. 常见故障5.1. 主从服务器上的MySQL版本不一致导致失败?5.2. Slave_IO_Running状态异常&#…

【No.10】蓝桥杯构造法|两道例题(C++)

什么是构造 构造题 要求解题者通过观察问题的结构和规律,找到一种通用的方法或模式,使得在问题规模增大时,依然能够高效地得到答案。 在解决构造题时,以下几点思考是很重要的: 观察问题规模的增长:了解问题随着规模的增大&…

使用ollama + webui 运行任意大模型

安装ollama https://hub.docker.com/r/ollama/ollama docker run -d -v ~/Documents/work/softs/docker/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama验证安装 # 进入容器docker exec -it ollama bash # 运行大模型 ollama run llama2 # 发送请求&…

【联邦学习贡献评估综述——未来展望(研究点)】

贡献评估的研究展望 参与方贡献评估作为激励参与方加入联邦的关键问题, 目前已有一些探索性研究工作, 但是现有工作在 价值度量有效性和可靠性、贡献评估方案公平合理性、评估算法在联邦学习应用上的性能和安全性等问题上 仍存在不足之处, 有待未来研究攻克这些挑战. 1. 设计…

三级数据库技术考点(详解!!)

1、 答疑:【解析】分布式数据库系统按不同层次提供的分布透明性有:分片透明性;②位置透明性;③局部映像透明性,位置透明性是指数据分片的分配位置对用户是透明的,用户编写程序时只需 要考虑数据分片情况,不需要了解各分片在各个场地的分配情…

大型LLM模型语言全面解读-开篇

目录 由于1万字的要求过于庞大,我将先给出论文的大纲以及部分内容的详细撰写,以确保内容的质量和完整性。如果您需要更完整的内容,可以在之后继续输入。 大型LLM模型语言全面解读 **摘要:**本文旨在对大型语言模型(…

什么是物联网远程模块

在数字化和信息化的浪潮下,物联网技术正在以惊人的速度改变着我们的生活和生产方式。物联网远程模块,作为物联网技术的核心组件之一,正引领着这场变革。HiWoo Box就是这样一款出色的物联网远程模块,它通过支持远程透传、远程锁机、…

多进程数据库不适合作为hive的元数据库

简介 “今天发现一个比较奇怪的现象,因为博主不熟悉mysql,所以在安装hive的使用了postgresql作为hive的元数据库,在测试几个连接工具对hive进行链接,后面再测试的时候发现链接不上了,并且报错日志如下:” …

从回收站删除的文件如何恢复?图文详解(3个方法)!

“各位大佬!从回收站删除了重要的文件后,有什么方法可以恢复文件吗?快帮帮我吧!这些被删除的文件都是比较重要的!” 回收站作为电脑中的一个重要工具,当我们误删文件后,通过回收站有机会快速恢复…

QT增加线程函数步骤流程

在使用线程的时候,不仅要关注线程开启的时机,同时还要关注线程安全退出,这样才能保证程序的健壮性,如果线程开启的较多,且开启关闭比较频繁,建议使用线程池来处理。开启线程有三种方式:第一种C的…

C语言动态内存管理(重点)

目录 1、为什么要有动态内存分配 2、malloc 和 free 2.1 malloc函数 2.2 free函数 3、calloc 和 realloc 3.1 calloc函数 3.2 realloc 函数 3.3 realloc 和 malloc 区别 3.4 realloc 函数存在的问题 4、常见的动态内存的错误 5、动态内存经典笔试题分析 6、柔…

Vue.js前端开发零基础教学(一)

目录 第一章 初识Vue.js 前言 开发的好处 一.前端技术的发展 什么是单页Web应用? 二. Vue的简介 三. Vue的特性 四. Vue的版本 五.常见的包管理 六.安装node环境 第一章 初识Vue.js 学习目标: 了解前端技术的发展 了解什么是Vue掌握使用方…

Oracle19C图形界面安装教程

文章目录 一、安装前的准备1、安装Linux操作系统2、配置网络源或者本地源3、hosts文件配置 二、Oracle19c安装过程1、安装相关软件:2、用户与组:3、修改内核参数:4、资源限制:5、配置用户环境变量:6、创建相关文件目录…

如何理解 Linux 命令行参数与环境变量7

一、命令行参数 1.1参数介绍 在写C语言程序时,main函数是否可以带参数呢?------ 是可以的 int argc: 命令行参数的个数char *argv[ ]: 字符指针数组(指向各个命令行参数的字符指针所构成的数组) 我们写一段代码来打印一下看这…

CISP 4.2备考之《软件安全开发》知识点总结

文章目录 第一节 软件安全开发基础第二节 软件安全开发模型第三节 安全需求、设计、编码、测试、交付 第一节 软件安全开发基础 1.软件工程三要素:方法、过程、工具。2.软件开发模型:瀑布模型、迭代模型、增量模型、螺旋模型、原型模型、净室模型。3.千…

Python BaseModel和dataclass用法和区别

Pydantic 的 BaseModel Pydantic 是一个数据验证和设置管理的库,它使用 Python 类型注释来定义数据模型的结构。在 Pydantic 中,BaseModel 是所有模型的基类,提供了类型检查、数据转换和验证等功能。下面是一个简单的例子: from…

AI和机器学习中的Python基础库和框架

Python基础 基本语法 Python是一种高级的、解释型的编程语言,以其简洁清晰的语法和强大的灵活性而闻名。对于初学者来说,掌握Python的基本语法是学习其他高级概念之前的重要步骤。以下是Python基本语法的详细介绍: 变量类型 在Python中&a…

基于单片机的事务管理系统

基于单片机的事务管理系统 摘 要 所谓事务管理系统就是主要用来做提醒,辅助以计时、秒表等的一个小系统。利用MCS51单片机即可完成系统硬件需要,成本低廉,程序简单,功能丰富实用,使用率广。根据题目的设计要求&#…