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

一周学会Pandas2 Python数据处理与分析-Pandas2数据合并与对比-pd.concat():轴向拼接

锋哥原创的Pandas2 Python数据处理与分析 视频教程:  

2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

在数据分析中,数据往往分散在多个来源(如不同文件、数据库表或API),需要通过合并整合为统一视图。同时,数据清洗、版本更新或业务验证时,常需对比数据差异以确保一致性。

一般有这样几种情况:

一是两份数据的列名完全相同,把其中一份数据追加到另一份的后面;

二是两份数据的列名有些不同,把这些列组合在一起形成多列;

三是以上两种情况混合。同时,在合并过程中还需要做些计算。

Pandas提供的各种功能能够轻而易举地完成这些工作。

pd.concat():轴向拼接

核心功能

沿行(纵向)或列(横向)拼接多个 DataFrame,支持批量合并。 适用场景:结构相同的数据表合并(如多个 CSV 文件)、多维度数据堆叠。

基本语法:

pd.concat(objs,                 # 要合并的对象列表(如多个DataFrame)axis=0,               # 合并方向:0沿行(纵向),1沿列(横向)join='outer',         # 合并方式:'outer'保留所有列,'inner'保留共有列ignore_index=False,   # 是否重置索引(避免重复)keys=None,            # 添加层次化索引(标识来源)sort=False,           # 是否对列排序
)

参数详解

  • objs: 要拼接的 DataFrame 列表(必填,如 [df1, df2])。

  • axis: 拼接方向,axis=0(默认,纵向堆叠),axis=1(横向拼接)。

  • ignore_index: 是否重置索引(默认 False,保留原索引)。

  • keys: 添加层级索引标识来源(如 keys=['A', 'B'])。

  • join: 对齐方式,join='outer'(默认,保留所有列),join='inner'(仅共有列)。

常用场景示例

1,纵向合并(默认 axis=0)
import pandas as pddf1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})result = pd.concat([df1, df2])

2,横向合并(axis=1)
result = pd.concat([df1, df2], axis=1)

3,处理索引重复

使用 ignore_index=True 重置索引:

result = pd.concat([df1, df2], ignore_index=True)

4,仅合并共有列(join='inner')

若两个 DataFrame 列不完全一致:

df3 = pd.DataFrame({'A': [5, 6], 'C': [9, 10]})
result = pd.concat([df1, df3], join='inner')  # 仅保留共有列'A'

5,添加层次化索引(keys)

标识数据来源:

result = pd.concat([df1, df2], keys=['df1', 'df2'])

注意事项

  1. 索引问题:合并时默认保留原索引,可能导致重复,建议用 ignore_index=True 重置。

  2. 列名对齐:横向合并(axis=1)时,按行索引对齐,缺失值填充NaN。

  3. 性能优化:合并大量数据时,建议先预处理再合并,避免内存不足。

http://www.xdnf.cn/news/8744.html

相关文章:

  • wan2.1代码笔记
  • 简说IMM
  • AI 理论- 模型优化 - 注意力机制
  • 整平机技术进阶:从原理到实战的深度解析
  • MD5加密(Java)
  • 如何快速解决 java maven项目中jar冲突的问题
  • CAU人工智能class6 ResNet
  • 业务设计篇隐私合规检测URL 重定向资源拒绝服务配合项目
  • leetcode2466,爬楼梯变体,取模注意
  • 【第四篇】 SpringBoot整合第三方技术
  • 板凳-------Mysql cookbook学习 (六)
  • day25JS- es5面向对象、Proxy代理对象
  • ARM笔记-ARM指令集
  • PG Pebbles 靶机复现
  • 【C++】移动窗口
  • Java中使用Stream API优化for循环
  • [NOIP 2003 普及组] 麦森数 Java
  • AI要掌握的知识
  • Python_day35 模型可视化与推理
  • Java 内存模型(JMM)深度解析:理解多线程内存可见性问题
  • 网页 CSS美化2(详解)
  • Reason-ModernColBERT论文速览:内存受限设置下深度对比学习批量大小的扩展
  • IDA插件 MIPSROP的安装和使用方法
  • 电子人的分水岭-FPGA模电和数电
  • 大模型智能体入门扫盲——基于camel的概述
  • 嵌入式<style>设计模式
  • DeepSeek 赋能数字农业:从智慧种植到产业升级的全链条革新
  • 可编程运动控制器行业2025数据分析报告
  • CodeBuddy实现图片水印添加工具
  • Ntfs!ReadIndexBuffer函数分析之根目录读取索引缓冲区的一个例子