如何使用 Pandas 的concat函数来合并行

如何使用 Pandas 的concat函数来合并行

参考:pandas concat rows

在数据分析和数据处理中,经常需要将多个数据集合并为一个。Pandas 提供了多种方式来合并数据,其中 concat() 函数是一个非常强大的工具,它可以帮助我们在不同的轴向上合并数据。本文将详细介绍如何使用 Pandas 的 concat() 函数来合并行,包括多个示例代码,帮助读者更好地理解和掌握其用法。

Pandas Concat 基础

Pandas 的 concat() 函数主要用于沿着一定的轴将多个对象堆叠到一起。语法如下:

pandas.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
  • objs: 一个序列或映射,这里是要合并的 DataFrame 或 Series。
  • axis: {0/'index', 1/'columns'},默认为 0,表示沿着哪个轴进行连接。
  • join: {'inner', 'outer'},默认为 ‘outer’,表示如何处理不同对象的索引轴上的不匹配。
  • ignore_index: 布尔值,默认为 False,如果为 True,则不使用索引值,而是创建一个新的索引。
  • keys: 序列,默认为 None。如果传递了序列,则创建一个多级索引(层次化索引)。

示例 1:基本的行连接

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({
    "A": ["A0", "A1"],
    "B": ["B0", "B1"]
}, index=[0, 1])

df2 = pd.DataFrame({
    "A": ["A2", "A3"],
    "B": ["B2", "B3"]
}, index=[2, 3])

# 使用 concat 连接行
result = pd.concat([df1, df2])
print(result)

Output:

如何使用 Pandas 的concat函数来合并行

示例 2:忽略原有索引

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({
    "A": ["A0", "A1"],
    "B": ["B0", "B1"]
}, index=[0, 1])

df2 = pd.DataFrame({
    "A": ["A2", "A3"],
    "B": ["B2", "B3"]
}, index=[2, 3])

# 使用 concat 连接行,忽略原有索引
result = pd.concat([df1, df2], ignore_index=True)
print(result)

Output:

如何使用 Pandas 的concat函数来合并行

示例 3:添加多级索引

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({
    "A": ["A0", "A1"],
    "B": ["B0", "B1"]
}, index=[0, 1])

df2 = pd.DataFrame({
    "A": ["A2", "A3"],
    "B": ["B2", "B3"]
}, index=[2, 3])

# 使用 concat 连接行,添加多级索引
result = pd.concat([df1, df2], keys=['x', 'y'])
print(result)

Output:

如何使用 Pandas 的concat函数来合并行

示例 4:内连接

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({
    "A": ["A0", "A1"],
    "B": ["B0", "B1"]
}, index=[0, 1])

df2 = pd.DataFrame({
    "A": ["A2", "A3"],
    "B": ["B2", "B3"]
}, index=[2, 3])

# 使用 concat 进行内连接
result = pd.concat([df1, df2], join='inner')
print(result)

Output:

如何使用 Pandas 的concat函数来合并行

示例 5:沿列轴连接

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({
    "A": ["A0", "A1"],
    "B": ["B0", "B1"]
}, index=[0, 1])

df2 = pd.DataFrame({
    "C": ["C2", "C3"],
    "D": ["D2", "D3"]
}, index=[0, 1])

# 使用 concat 连接列
result = pd.concat([df1, df2], axis=1)
print(result)

Output:

如何使用 Pandas 的concat函数来合并行

高级用法

在实际应用中,我们可能需要处理更复杂的数据合并场景。例如,处理具有不同列的 DataFrame,或者在合并时保留源 DataFrame 的特定信息。

示例 6:处理不同列的 DataFrame

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({
    "A": ["A0", "A1"],
    "B": ["B0", "B1"]
}, index=[0, 1])

df2 = pd.DataFrame({
    "C": ["C2", "C3"],
    "D": ["D2", "D3"]
}, index=[0, 1])

# 使用 concat 连接行,处理不同列
result = pd.concat([df1, df2])
print(result)

Output:

如何使用 Pandas 的concat函数来合并行

示例 7:保留源 DataFrame 的信息

import pandas as pd

# 创建两个 DataFrame
df1 = pd.DataFrame({
    "A": ["A0", "A1"],
    "B": ["B0", "B1"]
}, index=[0, 1])

df2 = pd.DataFrame({
    "A": ["A2", "A3"],
    "B": ["B2", "B3"]
}, index=[2, 3])

# 使用 concat 连接行,保留源 DataFrame 的信息
result = pd.concat([df1, df2], keys=['df1', 'df2'])
print(result)

Output:

如何使用 Pandas 的concat函数来合并行

总结

通过上述示例,我们可以看到 Pandas 的 concat() 函数在数据合并方面的强大功能。无论是简单的行连接,还是处理复杂的数据结构,concat() 都能提供灵活的解决方案。在实际工作中,合理利用这些功能可以大大提高数据处理的效率和质量。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程