Pandas中concat的用法

Pandas中concat的用法

pd.concat 是 pandas 库中的一个函数,用于将多个 pandas 对象(如 Series、DataFrame)沿指定轴进行合并连接。

pd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)

参数说明:

  • objs: 要合并的 pandas 对象,可以是一个列表、元组或字典。
  • axis (可选): 指定合并连接的轴,0 表示沿着行方向合并,1 表示沿着列方向合并。
  • join (可选): 指定合并连接的方式,‘outer’ 表示并集,‘inner’ 表示交集。
  • 其他参数:例如 ignore_indexkeysverify_integrity 等参数用于控制合并连接的方式和结果。

​ 假如我有两个dataframe类型,需要将其变为一个,我们如何实现呢?

import pandas as pd# 合并连接两个 DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
print(df1)
print("-----------------------------")
print(df2)

在这里插入图片描述

垂直拼接:
result0 = pd.concat([df1, df2]) # 默认是axis=0 按照行进行拼接
print(result0)

我们发现这样还是存在有一些问题的,他的索引是乱序的,就是直接将两个dataframe类型拼接起来的,如下。

在这里插入图片描述

方法一:

可以使用ignore_index参数来忽略原始的索引,实现拼接的效果。

# # 忽略原始索引,重新生成索引 (相当于对使用reset_index)
result3 = pd.concat([df1, df2], ignore_index=True)
print(result3)

在这里插入图片描述

方法二:

使用reset_index对索引列进行重置。

# 重新索引排序 同时删除旧索引
result5= pd.concat([df1, df2],axis=0).reset_index(drop=True 不然会出现两个索引 ) # 必须要加上drop=True 不然会出现两个索引 
print(result5)

效果如下:

在这里插入图片描述

水平拼接:
# 沿着列方向合并连接两个 DataFrame
result1 = pd.concat([df1, df2], axis=1)
print(result1)

在这里插入图片描述

我们会发现,当axis=1的时候,是按照列进行拼接的,连接条件是有共同的索引。

# 创建两个具有不重叠列的 DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
# 使用 join='inner' 进行合并连接
result_inner = pd.concat([df1, df2], join='inner', axis=1)
print("\nInner Join:")
print(result_inner)

在这里插入图片描述

总结:

​ 当涉及到合并连接多个 DataFrame 对象时,concat 函数是一个非常有用的工具。以下是对 concat 函数的总结:

concat 函数主要用于以下场景:

  1. 合并多个 DataFrame:concat 函数可以将多个 DataFrame 对象连接在一起,形成一个新的 DataFrame。这对于合并来自不同源的数据或者将数据拆分为更小的块进行处理非常有用。
  2. 纵向拼接数据:通过设置 axis=0concat 函数可以将具有相同列的多个 DataFrame 对象按行方向(纵向)拼接起来。这样可以将数据堆叠在一起,增加行数。
  3. 横向拼接数据:通过设置 axis=1concat 函数可以将具有相同行索引的多个 DataFrame 对象按列方向(横向)拼接起来。这对于将数据水平扩展或将不同特征的数据合并到一起非常有用。
  4. 在特定轴上拼接数据:concat 函数可以根据指定的轴(axis)将数据进行拼接。默认情况下,它在轴 0 上进行拼接,即按行拼接。但您也可以通过设置 axis=1 在轴 1 上进行拼接,即按列拼接。

​ 总之,concat 函数提供了一种简单而灵活的方式来合并连接多个 DataFrame 对象。无论是纵向还是横向拼接数据,concat 函数都能满足您的需求。它在数据处理和数据分析过程中非常有用。

​ 如果您有任何其他问题,欢迎继续提问。

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

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

相关文章

查看ios 应用程序性能

摘要 本篇博文将介绍一款重量级性能测试工具——克魔助手,针对iOS应用程序的性能监控进行详细介绍。通过克魔助手,开发者可以方便地查看应用程序的CPU、内存、GPU性能情况,以及网络监控和抓包等功能,帮助优化应用的性能。本文将重…

LabVIEW在电机噪声与振动探测的应用

LabVIEW在电机噪声与振动探测的应用 硬件部分是电机噪声和振动测试分析系统的基础,主要由三大核心组件构成:高灵敏度振动传感器、先进的信号调理电路和高性能数据采集卡。这些设备协同工作,确保了从电机捕获的噪声和振动信号的准确性和可靠性…

轻松实现电脑对iPhone应用管理

目录 摘要 引言 用户登录工具和连接设备 电脑可对手机应用程序批量操作 运行APP和查看APP日志 IPA包安装测试 摘要 本文介绍了如何使用克魔助手工具实现电脑对手机应用的管理操作。通过简单的步骤,用户可以批量操作手机应用、运行应用、查看应用日志以及安装测…

SpringBoot+modbus4j实现ModebusTCP通讯读取数据

场景 Windows上ModbusTCP模拟Master与Slave工具的使用: Windows上ModbusTCP模拟Master与Slave工具的使用-CSDN博客 Modebus TCP Modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。 1996年施耐德公司推出基于以太网TCP/IP的Modbus协议&…

web等保评测需要实机查看的操作系统、服务器、数据库和应用部分

“等保测评”全称是信息安全等级保护测评。是经公安部认证的具有资质的测评机构,依据国家信息安全等级保护规范规定,受有关单位委托,按照有关管理规范和技术标准,对信息系统安全等级保护状况进行检测评估的活动。 本文陆续将遇到的…

使用Commons JXPath简化XML/JSON处理

第1章:引言 咱们都知道,在现代软件开发中,处理XML和JSON数据几乎是家常便饭。这两种格式广泛应用于配置文件、数据交换、API响应等领域。不过,要手动解析和操作它们,有时候真是让人头大。 当你面对一堆复杂的XML或JS…

子母导弹反无人机集群制导策略

源自:系统工程与电子技术 作者:罗瑞宁, 黄树彩, 赵岩, 张振 “人工智能技术与咨询” 发布 摘 要 针对中远程反无人机(unmanned aerial vehicle, UAV)集群的制导问题, 提出了一种子母导弹拦截UAV集群的作战构想与制导策略。首先, 综合考虑UAV目标的…

uboot安装操作系统

FT1500A 刀片机uboot安装系统 外接sata盘的方式: 准备一个带系统的sata盘(系统必须支持这个硬件不然启不来,uboot不需要改什么默认进这个系统),把iso与脚本harddisk_copy-noarch_20160711.sh拷进去 通过mobaxterm或…

c基础学习(一)

学习网站&#xff1a; C语言的过去与未来 - C语言教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/c-intros/ C 语言简介 - C 语言教程 - 网道 (wangdoc.com)https://wangdoc.com/clang/intro 变量&#xff1a; #include<stdio.h> /*引入头文件-- 标准…

Oracle 拼接字符串

语法 使用||拼接如果内容中有单引号&#xff0c;则可在该单引号前面再加一个单引号进行转义 例子 比如有一个业务是根据需要生成多条插入语句 select insert into des_account_des_role(des_account_id, roles_id) values( || id || , || (select id from des_role where wo…

安装DataEase(Linux线上安装)修改端口

问题一&#xff1a;端口更改 警告本解决方法仅仅应急&#xff0c;如果找到了更好的方法请通知我&#xff0c;感谢你的理解&#xff01;&#xff01;&#xff01; 为了让mysql与dataease的端口不发生冲突&#xff0c;将 MySQL 外部运行端口参数 ${DE_MYSQL_PORT} 改为新端口&am…

C++ 类和对象 (上)

类的引入&#xff1a; 由于C语言是面向过程的编程语言&#xff0c;我们在完成一件事的时候通常习惯将一件事拆分成一个一个小过程来实现&#xff0c;而到了C就习惯将一件事分成不同的模块&#xff0c;交给不同的对象来处理&#xff0c;每一个对象中承载着数据类型和函数。 &am…