Pandas中合并两个DataFrame的方法

Pandas中合并两个DataFrame的方法

参考:pandas append two dataframes

在数据处理和分析中,经常需要将多个数据集合并为一个,以便进行统一的处理和分析。Pandas是Python的一个强大的数据处理库,它提供了多种方式来合并数据。本文将详细介绍如何使用Pandas中的append()函数来合并两个DataFrame。我们将通过多个示例来展示不同情况下的数据合并方法。

1. 基本概念

在Pandas中,DataFrame是一种二维数据结构,类似于Excel中的表格。它是由多行多列组成,每列可以是不同的数据类型(数值、字符串等)。合并两个DataFrame是数据处理中的常见需求,尤其是当数据分散在多个文件或数据库中时。

append()函数是Pandas中用于合并两个DataFrame的函数之一。它主要用于将一行或多行追加到一个DataFrame上。这个函数不会直接修改原有的DataFrame,而是返回一个新的DataFrame。

2. 使用append()合并两个DataFrame

示例代码1:基本的DataFrame合并

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2'],
    'B': ['B0', 'B1', 'B2']
})

df2 = pd.DataFrame({
    'A': ['A3', 'A4', 'A5'],
    'B': ['B3', 'B4', 'B5']
})

# 使用append()合并DataFrame
result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas中合并两个DataFrame的方法

示例代码2:合并具有相同列名但不同行数的DataFrame

import pandas as pd

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

df2 = pd.DataFrame({
    'A': ['A2', 'A3', 'A4'],
    'B': ['B2', 'B3', 'B4']
})

# 使用append()合并DataFrame
result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas中合并两个DataFrame的方法

示例代码3:合并具有不同列的DataFrame

import pandas as pd

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

df2 = pd.DataFrame({
    'C': ['C2', 'C3'],
    'D': ['D2', 'D3']
})

# 使用append()合并DataFrame
result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas中合并两个DataFrame的方法

示例代码4:使用sort=False参数避免列排序

import pandas as pd

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

df2 = pd.DataFrame({
    'B': ['B2', 'B3'],
    'C': ['C2', 'C3']
})

# 使用append()合并DataFrame,禁止列排序
result = df1._append(df2, ignore_index=True, sort=False)
print(result)

Output:

Pandas中合并两个DataFrame的方法

示例代码5:合并时保留原有的索引

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])

# 使用append()合并DataFrame,保留原有索引
result = df1._append(df2)
print(result)

Output:

Pandas中合并两个DataFrame的方法

3. 处理特殊情况

示例代码6:合并时处理重复的列名

import pandas as pd

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

df2 = pd.DataFrame({
    'A': ['A2', 'A3'],
    'B': ['B2', 'B3']
})

# 使用append()合并DataFrame,并处理重复列名
result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas中合并两个DataFrame的方法

示例代码7:合并具有不同数据类型的列

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'A': [1, 2],
    'B': [3.5, 4.5]
})

df2 = pd.DataFrame({
    'A': ['5', '6'],
    'B': ['7.8', '8.9']
})

# 使用append()合并DataFrame
result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas中合并两个DataFrame的方法

示例代码8:合并时包含NaN值的处理

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'A': ['A0', 'A1'],
    'B': [None, 'B1']
})

df2 = pd.DataFrame({
    'A': ['A2', 'A3'],
    'B': ['B2', None]
})

# 使用append()合并DataFrame
result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas中合并两个DataFrame的方法

示例代码9:合并大量DataFrame

import pandas as pd

# 创建多个DataFrame
dataframes = [pd.DataFrame({
    'A': [f'A{i}', f'A{i+1}'],
    'B': [f'B{i}', f'B{i+1}']
}) for i in range(0, 10, 2)]

# 使用append()合并多个DataFrame
result = pd.DataFrame()
for df in dataframes:
    result = result._append(df, ignore_index=True)
print(result)

Output:

Pandas中合并两个DataFrame的方法

示例代码10:使用concat()函数替代append()进行优化合并

import pandas as pd

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

df2 = pd.DataFrame({
    'A': ['A2', 'A3'],
    'B': ['B2', 'B3']
})

# 使用concat()合并DataFrame
result = pd.concat([df1, df2], ignore_index=True)
print(result)

Output:

Pandas中合并两个DataFrame的方法

4. 总结

在本文中,我们详细介绍了如何使用Pandas的append()函数来合并两个DataFrame。我们通过多个示例展示了不同情况下的合并方法,包括处理不同列名、不同数据类型、NaN值等情况。虽然append()是一个非常方便的工具,但在处理大量数据或需要更高效的合并时,可以考虑使用concat()或其他更高效的方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程