基于Pandas实现竖向拼接多个DataFrame对象的几种常用方法

 更新时间:2025年09月16日 09:04:53   作者:袁袁袁袁满  
在pandas模块中,通常我们都需要对类型为DataFrame的数据进行操作,其中最为常见的操作便是拼接了,在Python中,可以使用pandas库的concat()函数或append()方法来竖向(按行)拼接多个DataFrame对象,本文介绍了几种常用的方法,需要的朋友可以参考下

在Python中,可以使用pandas库的concat()函数或append()方法来竖向(按行)拼接多个DataFrame对象。以下是几种常用的方法:

方法1:使用pd.concat()

import pandas as pd

# 创建示例DataFrame
df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
df3 = pd.DataFrame({'A': ['A4', 'A5'], 'B': ['B4', 'B5']})

# 竖向拼接
result = pd.concat([df1, df2, df3], axis=0)  # axis=0是默认值,可以省略
print(result)

输出:

    A   B
0  A0  B0
1  A1  B1
0  A2  B2
1  A3  B3
0  A4  B4
1  A5  B5

方法2:使用append()方法(已弃用,推荐使用concat)

# 注意:append()在pandas 2.0版本中已被弃用
result = df1.append([df2, df3], ignore_index=True)
print(result)

方法3:使用concat()并重置索引

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

输出:

    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

高级用法

处理不同列的DataFrame

df4 = pd.DataFrame({'A': ['A6', 'A7'], 'C': ['C6', 'C7']})
result = pd.concat([df1, df4], sort=False)
print(result)

添加区分键

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

使用join参数处理不同列

# 内连接,只保留共有的列
result = pd.concat([df1, df4], join='inner')

注意事项

  1. 默认情况下,concat()会保留原始索引,可以使用ignore_index=True重新生成连续索引
  2. 如果DataFrame的列不完全相同,可以使用sort=False避免列自动排序
  3. 对于大量DataFrame拼接,考虑使用生成器表达式而不是列表推导式以节省内存

性能考虑

对于大量DataFrame的拼接,可以先将它们放入列表中,然后一次性拼接:

dfs = [df1, df2, df3]  # 可以是任意数量的DataFrame
result = pd.concat(dfs, ignore_index=True)

这种方法比逐个追加更高效。

到此这篇关于基于Pandas实现竖向拼接多个DataFrame对象的几种常用方法的文章就介绍到这了,更多相关Pandas竖向拼接DataFrame对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中8种运算符介绍以及示例

    Python中8种运算符介绍以及示例

    在Python编程中运算符是用于执行各种操作的特殊符号或关键字,下面这篇文章主要给大家介绍了关于Python中8种运算符介绍以及示例的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • VSCode搭建Django开发环境的图文步骤

    VSCode搭建Django开发环境的图文步骤

    本篇介绍在vscode环境下搭建Django开发环境的详细步骤,包括Python、Django、VSCode等,以及它们的安装和配置方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • python类参数定义及数据扩展方式unsqueeze/expand

    python类参数定义及数据扩展方式unsqueeze/expand

    本文主要介绍了python类参数定义及数据扩展方式unsqueeze/expand,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Python爬虫使用bs4方法实现数据解析

    Python爬虫使用bs4方法实现数据解析

    这篇文章主要介绍了Python爬虫使用bs4方法实现数据解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Python图像处理之图像算术与逻辑运算详解

    Python图像处理之图像算术与逻辑运算详解

    这篇文章将详细讲解图像算法运算与逻辑运算,包括图像加法、图像减法、图像与运算、图像或运算、图像非运算与图像异或运算。感兴趣的可以了解一下
    2022-01-01
  • Python实现一个带权无回置随机抽选函数的方法

    Python实现一个带权无回置随机抽选函数的方法

    这篇文章主要介绍了Python实现一个带权无回置随机抽选函数的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 在Python中使用poplib模块收取邮件的教程

    在Python中使用poplib模块收取邮件的教程

    这篇文章主要介绍了在Python中使用poplib模块收取邮件的教程,代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • matplotlib 向任意位置添加一个子图(axes)

    matplotlib 向任意位置添加一个子图(axes)

    这篇文章主要介绍了matplotlib 向任意位置添加一个子图(axes),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 用python自动生成日历

    用python自动生成日历

    这篇文章主要介绍了如何用python自动生成日历,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • python Requsets下载开源网站的代码(带索引 数据)

    python Requsets下载开源网站的代码(带索引 数据)

    这篇文章主要介绍了python Requsets下载开源网站的代码(带索引 数据),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论