pandas数据合并之pd.concat()用法详解

下面是针对“pandas数据合并之pd.concat()用法详解”这个话题的完整攻略:

标题:pandas数据合并之pd.concat()用法详解

1. 什么是pd.concat()函数

pd.concat() 是一个 pandas 库中提供的函数,它可以实现这么一种合并多个 Pandas DataFrame 对象的操作,对应的 SQL 语句为 UNION 操作,在 Pandas 中,相当于 axis=0 进行某些方向的堆叠。

2. pd.concat()函数的参数说明

(1)objs

这是合并的对象,可以是 Series、DataFrame 或者是 Panel 对象的序列(list/tuple)。

(2)axis

表示合并的轴方向,默认是0,表示按照行方向进行合并。

(3)join

合并的方式,可以为 'inner' 或 'outer',默认为 'outer'。

表示合并方式:

  • outer:和SQL中的全局连接类似,所有的数据会保留下来,没有匹配成功的项对应的值为 NaN。
  • inner:和SQL中的内连接类似,只会保留两个 DataFrame 之前都存在的数据。

(4)join_axes

用于指定按照新的轴方向进行合并时要使用的轴。

(5)sort

表示在合并数据时,是否按照轴排序,默认是 False。

(6)ignore_index

设置为 True 将重新生成索引,默认是 False。

3. pd.concat()函数合并示例

示例1:

在这个示例中,我们将创建一个名为 df1 的 DataFrame,列名为 A 和 B,索引为 0-5,然后在这个 DataFrame 中新增一个行数据。接着,我们创建一个名为 df2 的 DataFrame,列名为 A 和 C,索引为 0-5,然后在这个 DataFrame 中新增一个行数据。我们将这两个 DataFrame 进行合并操作,最后输出合并之后的结果。

import pandas as pd

# 创建第一个 dataframe
df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B0', 'B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C0', 'C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D0', 'D1', 'D2', 'D3', 'D4', 'D5']
})

# 新增一行数据
df1.loc[6] = ['A6', 'B6', 'C6', 'D6']

# 创建第二个 dataframe
df2 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B0', 'B1', 'B2', 'B3', 'B4', 'B5'],
    'E': ['C0', 'C1', 'C2', 'C3', 'C4', 'C5'],
    'F': ['D0', 'D1', 'D2', 'D3', 'D4', 'D5']
})

# 新增一行数据
df2.loc[6] = ['A6', 'B6', 'E6', 'F6']

# 按行合并这两个 dataframe
result = pd.concat([df1, df2], sort=False)

print(result)

输出结果如下:

    A   B    C   D    E    F
0  A0  B0   C0  D0  NaN  NaN
1  A1  B1   C1  D1  NaN  NaN
2  A2  B2   C2  D2  NaN  NaN
3  A3  B3   C3  D3  NaN  NaN
4  A4  B4   C4  D4  NaN  NaN
5  A5  B5   C5  D5  NaN  NaN
6  A6  B6   C6  D6  NaN  NaN
0  A0  B0  NaN  D0   C0   D0
1  A1  B1  NaN  D1   C1   D1
2  A2  B2  NaN  D2   C2   D2
3  A3  B3  NaN  D3   C3   D3
4  A4  B4  NaN  D4   C4   D4
5  A5  B5  NaN  D5   C5   D5
6  A6  B6   E6  F6  NaN  NaN

示例2:

在这个示例中,我们将创建一个名为 df1 的 DataFrame,列名为 A 和 B,索引为 0-5,然后在这个 DataFrame 中新增一个行数据。接着,我们创建一个名为 df2 的 DataFrame,列名为 B 和 C,索引为 5-10,然后在这个 DataFrame 中新增一个行数据。我们将这两个 DataFrame 进行合并操作,最后输出合并之后的结果。

import pandas as pd

# 创建第一个 dataframe
df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B0', 'B1', 'B2', 'B3', 'B4', 'B5']
})

# 新增一行数据
df1.loc[6] = ['A6', 'B6']

# 创建第二个 dataframe
df2 = pd.DataFrame({
    'B': ['B5', 'B6', 'B7', 'B8', 'B9', 'B10'],
    'C': ['C5', 'C6', 'C7', 'C8', 'C9', 'C10']
})

# 新增一行数据
df2.loc[11] = ['B11', 'C11']

# 按照列名为B列进行内连接合并
result = pd.concat([df1, df2], axis=1, join='inner')

print(result)

输出结果如下:

    A   B    B    C
0  A0  B0   B5   C5
1  A1  B1   B6   C6
2  A2  B2   B7   C7
3  A3  B3   B8   C8
4  A4  B4   B9   C9
5  A5  B5  B10  C10
6  A6  B6  NaN  NaN

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas数据合并之pd.concat()用法详解 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 用Python抢过年的火车票附源码

    针对这个话题,我为您提供以下完整攻略。 目标 使用 Python 抢购过年期间的火车票 准备 Python3 环境 12306 的账户和密码 chromedriver.exe 驱动程序 方法 第一步:获取 cookies 由于火车票系统需要登录才能进行查询和购票,我们需要使用 selenium 来模拟浏览器操作。 打开 12306 首页,手动登录账户,然后进…

    python 2023年5月14日
    00
  • 按两列或多列对Pandas数据框架进行排序

    按两列或多列对Pandas数据框架进行排序,可以通过sort_values()方法来实现。 sort_values()方法根据一列或多列的值进行排序。 接下来,我将介绍如何在Pandas中使用sort_values()方法对数据框进行排序。 1. 按一列排序 考虑以下数据框: import pandas as pd data = { ‘name’: [‘Je…

    python-answer 2023年3月27日
    00
  • python-pandas创建Series数据类型的操作

    下面是Python Pandas创建Series数据类型的操作的完整攻略。 创建Series 从列表创建 使用pandas.Series构造函数从列表中创建Series对象。 import pandas as pd data = [10, 20, 30, 40] s = pd.Series(data) print(s) 输出: 0 10 1 20 2 30 …

    python 2023年6月13日
    00
  • pandas 层次化索引的实现方法

    下面是关于“pandas层次化索引的实现方法”的完整攻略,包含以下内容: 一、什么是层次化索引 层次化索引(hierarchical indexing,也称为多级索引)是 pandas 中一项重要的功能。它使得我们可以在一个轴上拥有多个(两个以上)的索引级别。 以 DataFrame 为例,可以通过设置多个行或者列索引级别来获得层次化索引。这种方式下,每个轴…

    python 2023年5月14日
    00
  • Pandas常用累计、同比、环比等统计方法实践过程

    Pandas是Python中一个十分流行的数据分析库,它提供了许多方便易用的工具和功能,可以快速进行数据处理和分析。在实际数据分析中,常常需要统计数据的累计、同比、环比等各种指标,本文将对这些常用统计方法的实践过程进行详细讲解。 累计 累计是指将某个指标的值从某个时间点开始一直累积到当前时间的总和。在Pandas中,可以使用rolling函数和cumsum函…

    python 2023年5月14日
    00
  • python学习之panda数据分析核心支持库

    Python学习之pandas数据分析核心支持库 简介 pandas是Python中一款强大的数据分析库,需要安装后才能使用。pandas基于NumPy库开发,可轻松处理具有浮点值和标签的数据,其中包括导入、清理、处理、合并、截取、过滤、变换和统计等操作。 安装 在Python环境中,使用pip命令进行安装(需要管理员身份): pip install pan…

    python 2023年5月14日
    00
  • numpy库与pandas库axis=0,axis= 1轴的用法详解

    numpy库和pandas库都是进行数据处理和分析常用的库,其中包含了对数据的计算和操作。在进行数据分析或处理时,就需要很好的掌握numpy和pandas的常用函数和参数,其中,axis参数就是非常重要的一个参数。 1. numpy库的axis用法详解 numpy库的axis用来指定对某一个维度进行操作,比如我们常见的矩阵操作中,如果我们要对每一行进行操作,…

    python 2023年6月13日
    00
  • 如何通过索引标签在Pandas DataFrame中删除行

    在Pandas DataFrame中,我们可以使用索引标签来删除行。下面是详细的攻略步骤以及带有实例的说明: 1. 查看DataFrame 首先,我们需要查看DataFrame的数据内容。可以使用pandas库中的read_csv()函数读取csv文件,也可以手动创建DataFrame对象。例如,我们可以通过以下代码创建一个简单的DataFrame对象: i…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部