Pandas中如何将一个DataFrame追加到另一个DataFrame

Pandas中如何将一个DataFrame追加到另一个DataFrame

参考:pandas append dataframe to another

在数据处理和分析中,经常需要将多个数据集合并为一个大的数据集。Pandas库提供了多种方式来合并和连接数据,其中append()函数是一个非常方便的工具,用于将一个DataFrame追加到另一个DataFrame的末尾。本文将详细介绍如何使用Pandas的append()函数,包括多个实用的示例代码。

1. 基本用法

append()函数可以将一个DataFrame添加到另一个DataFrame的末尾。这个过程不会在原地修改数据,而是返回一个新的DataFrame。

示例代码1:基本追加操作

import pandas as pd

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

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

# 追加df2到df1
result = df1._append(df2)
print(result)

Output:

Pandas中如何将一个DataFrame追加到另一个DataFrame

2. 忽略索引

在追加操作中,可以选择忽略原有的索引,让Pandas自动创建一个新的整数索引。

示例代码2:忽略索引追加

import pandas as pd

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

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

# 追加df2到df1,忽略索引
result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas中如何将一个DataFrame追加到另一个DataFrame

3. 追加多个DataFrame

可以一次性追加多个DataFrame。

示例代码3:同时追加多个DataFrame

import pandas as pd

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

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

df3 = pd.DataFrame({
    'A': ['A6', 'A7', 'A8'],
    'B': ['B6', 'B7', 'B8']
}, index=[6, 7, 8])

# 追加df2和df3到df1
result = df1._append([df2, df3])
print(result)

Output:

Pandas中如何将一个DataFrame追加到另一个DataFrame

4. 处理不匹配的列

当追加的DataFrame具有不完全匹配的列时,Pandas会自动处理,不存在的列将被填充为NaN。

示例代码4:处理不匹配的列

import pandas as pd

# 创建两个DataFrame,列不匹配
df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2'],
    'B': ['B0', 'B1', 'B2']
}, index=[0, 1, 2])

df2 = pd.DataFrame({
    'C': ['C3', 'C4', 'C5'],
    'D': ['D3', 'D4', 'D5']
}, index=[3, 4, 5])

# 追加df2到df1
result = df1._append(df2)
print(result)

Output:

Pandas中如何将一个DataFrame追加到另一个DataFrame

5. 使用concat()函数

虽然append()是一个便捷的方法,但在处理大量数据或需要更高效的操作时,推荐使用concat()函数。

示例代码5:使用concat()代替append()

import pandas as pd

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

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

# 使用concat代替append
result = pd.concat([df1, df2])
print(result)

Output:

Pandas中如何将一个DataFrame追加到另一个DataFrame

6. 性能考虑

当处理大型数据集时,频繁使用append()可能导致性能问题,因为每次调用append()都会创建一个新的DataFrame。在这种情况下,建议先创建一个DataFrame列表,然后一次性使用concat()来合并它们。

示例代码6:性能优化

import pandas as pd

# 创建一个DataFrame列表
data_frames = [pd.DataFrame({
    'A': [f'A{i}', f'A{i+1}', f'A{i+2}'],
    'B': [f'B{i}', f'B{i+1}', f'B{i+2}']
}, index=[i, i+1, i+2]) for i in range(0, 1000, 3)]

# 使用concat一次性合并所有DataFrame
result = pd.concat(data_frames)
print(result)

Output:

Pandas中如何将一个DataFrame追加到另一个DataFrame

结论

在本文中,我们详细介绍了如何使用Pandas的append()函数来追加一个DataFrame到另一个DataFrame。我们探讨了基本用法、忽略索引的情况、同时追加多个DataFrame、处理列不匹配的情况以及性能优化的策略。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程