使用 pd.concat合并 Pandas 数据框

使用 pd.concat合并 Pandas 数据框

使用 pd.concat合并 Pandas 数据框

在数据处理过程中,我们经常会遇到需要合并两个或多个数据框的情况。Pandas 提供了一个非常方便的函数 pd.concat,可以帮助我们实现数据的合并。本文将详细介绍 pd.concat 的用法,包括合并方式、参数设置以及示例代码。

一、pd.concat 的基本用法

1. 合并两个数据框

首先让我们看一个简单的示例,如何合并两个数据框:

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})

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

运行以上代码,将得到合并后的结果:

   A  B
0  1  3
1  2  4
0  5  7
1  6  8

可以看到,两个数据框按照纵向叠加的方式进行了合并,行索引自动调整。

2. 指定合并轴

除了默认的纵向叠加方式,我们还可以通过指定 axis 参数来改变合并的轴,将两个数据框按照横向拼接的方式合并:

result = pd.concat([df1, df2], axis=1)
print(result)

运行以上代码,将得到横向拼接后的结果:

   A  B  A  B
0  1  3  5  7
1  2  4  6  8

3. 忽略索引

有时候我们并不希望保留原来的行索引,可以通过 ignore_index 参数将合并后的数据框重新生成一个新的索引:

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

运行以上代码,将得到不保留原索引的合并结果:

   A  B
0  1  3
1  2  4
2  5  7
3  6  8

二、pd.concat 的高级用法

1. 沿着列合并

除了将数据框按行或列合并外,我们还可以根据列名来合并数据:

df3 = pd.DataFrame({'C': [9, 10], 'D': [11, 12]})
result = pd.concat([df1, df3], axis=1)
print(result)

运行以上代码,将得到按列名合并后的结果:

   A  B   C   D
0  1  3   9  11
1  2  4  10  12

2. 合并时填充缺失值

当两个数据框的列名不完全相同时,合并会产生缺失值,我们可以通过设置 join 参数来指定合并时的方式:

  • join='inner':只保留两个数据框列名的交集;
  • join='outer':保留两个数据框列名的并集,并将缺失值填充为 NaN。
df4 = pd.DataFrame({'B': [13, 14], 'C': [15, 16]})
result = pd.concat([df1, df4], join='inner', ignore_index=True)
print(result)

运行以上代码,将得到保留列名交集且填充缺失值的合并结果:

    B
0   3
1   4
2  13
3  14

3. 设置 keys 参数

在合并多个数据框时,我们可以通过设置 keys 参数在合并后的数据框中创建一个多级索引:

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

运行以上代码,将得到带有多级索引的合并结果:

       A  B
df1 0  1  3
    1  2  4
df2 0  5  7
    1  6  8

三、总结

通过本文的介绍,我们了解了 pd.concat 函数的基本用法和高级用法,包括合并方式、参数设置以及示例代码。在实际数据处理中,pd.concat 是一个非常方便的工具,可以帮助我们快速合并多个数据框,完成数据的整合和分析工作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程