Pandas Append DataFrame

Pandas Append DataFrame

参考:pandas append dataframe

在数据分析和数据处理中,经常需要将多个数据集合并为一个大的数据集。Pandas 是 Python 中一个强大的数据处理库,它提供了多种方式来合并数据,其中 append() 函数是一个非常实用的工具,用于将一行或多行追加到 DataFrame 中。本文将详细介绍如何使用 Pandas 的 append() 方法,包括其语法、参数以及多个实用的示例代码。

1. append() 方法概述

Pandas 中的 append() 方法可以将一行或多个行附加到 DataFrame 的末尾。这个方法不会直接修改原始 DataFrame,而是返回一个新的 DataFrame,其中包含了原始数据和追加的数据。使用 append() 方法时,可以选择是否忽略索引。如果不忽略索引,追加的数据将保留其原始索引;如果选择忽略,Pandas 将重新为合并后的 DataFrame 创建一个新的整数索引。

2. append() 方法的语法

append() 方法的基本语法如下:

DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)
  • other: 要追加的数据,可以是 DataFrame、Series 或者是字典列表。
  • ignore_index: 布尔值,默认为 False。如果为 True,则不使用索引标签。
  • verify_integrity: 布尔值,默认为 False。如果为 True,则会检查新生成的 DataFrame 是否包含重复的索引。
  • sort: 布尔值,默认为 False。如果为 True,则在合并轴上对数据进行排序。

3. 示例代码

示例 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 Append DataFrame

示例 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 Append 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 Append DataFrame

示例 4:追加 Series 作为新行

import pandas as pd

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

# 创建 Series
s1 = pd.Series(['A3', 'B3'], index=['A', 'B'])

# 追加 Series 到 DataFrame
result = df1._append(s1, ignore_index=True)
print(result)

Output:

Pandas Append DataFrame

示例 5:使用字典追加新行

import pandas as pd

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

# 使用字典追加新行
result = df1._append({'A': 'A3', 'B': 'B3'}, ignore_index=True)
print(result)

Output:

Pandas Append DataFrame

示例 6:验证数据完整性

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=[2, 3, 4])  # 注意这里的索引2重复

# 尝试追加 df2 到 df1,开启验证
try:
    result = df1._append(df2, verify_integrity=True)
    print(result)
except ValueError as e:
    print(e)

Output:

Pandas Append DataFrame

示例 7:排序追加的数据

import pandas as pd

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

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

# 追加 df2 到 df1,并排序
result = df1._append(df2, sort=True)
print(result)

Output:

Pandas Append DataFrame

示例 8:追加空 DataFrame

import pandas as pd

# 创建一个空的 DataFrame
df1 = pd.DataFrame()

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

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

Output:

Pandas Append DataFrame

示例 9:追加具有不同列的 DataFrame

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 Append DataFrame

示例 10:追加时包含额外的列

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'],
    'C': ['C3', 'C4', 'C5']
}, index=[3, 4, 5])

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

Output:

Pandas Append DataFrame

示例 11:追加 DataFrame 时处理 NaN 值

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'],
    'C': ['C3', 'C4', 'C5']
}, index=[3, 4, 5])

# 追加 df2 到 df1,处理 NaN 值
result = df1._append(df2)
print(result)

Output:

Pandas Append DataFrame

示例 12:使用多级索引追加 DataFrame

import pandas as pd

# 创建具有多级索引的 DataFrame
df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2'],
    'B': ['B0', 'B1', 'B2']
}, index=pd.MultiIndex.from_tuples([('x', 0), ('x', 1), ('x', 2)], names=['X', 'Y']))

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

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

Output:

Pandas Append DataFrame

示例 13:追加 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])

# 追加 df2 到 df1 并重置索引
result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas Append DataFrame

示例 14:追加 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])

# 追加 df2 到 df1,保留原有索引
result = df1._append(df2)
print(result)

Output:

Pandas Append DataFrame

示例 15:追加 DataFrame 并使用自定义排序

import pandas as pd

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

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

# 追加 df2 到 df1,并使用自定义排序
result = df1._append(df2).sort_values(by=['A'])
print(result)

Output:

Pandas Append DataFrame

示例 16:追加 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'],
    'C': ['C3', 'C4', 'C5']
}, index=[3, 4, 5])

# 追加 df2 到 df1,并合并列
result = df1._append(df2)
print(result)

Output:

Pandas Append DataFrame

示例 17:追加 DataFrame 并处理数据类型不一致

import pandas as pd

# 创建两个 DataFrame,数据类型不一致
df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2'],
    'B': [0, 1, 2]
}, index=[0, 1, 2])

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

# 追加 df2 到 df1,并处理数据类型不一致
result = df1._append(df2)
print(result)

Output:

Pandas Append DataFrame

示例 18:追加 DataFrame 并填充缺失值

import pandas as pd

# 创建两个 DataFrame,第二个 DataFrame 缺少一些列
df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2'],
    'B': ['B0', 'B1', 'B2'],
    'C': [1, 2, 3]
}, 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).fillna(0)
print(result)

Output:

Pandas Append DataFrame

示例 19:追加 DataFrame 并调整列顺序

import pandas as pd

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

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

# 追加 df2 到 df1,并调整列顺序
result = df1._append(df2)[['A', 'B']]
print(result)

Output:

Pandas Append DataFrame

示例 20:追加 DataFrame 并合并多个 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 Append DataFrame

示例 21:使用 concat 进行 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])

# 使用 concat 进行追加
result = pd.concat([df1, df2])

# 输出结果
print(result)

Output:

Pandas Append DataFrame

示例 22:使用 concat 进行 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])

# 使用 concat 进行追加,保留原始索引
result = pd.concat([df1, df2], ignore_index=False)

# 输出结果
print(result)

Output:

Pandas Append DataFrame

示例 23:使用 concat 进行 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])

# 使用 concat 进行追加,忽略原始索引
result = pd.concat([df1, df2], ignore_index=True)

# 输出结果
print(result)

Output:

Pandas Append DataFrame

示例 24:使用 concat 合并多个 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])

# 使用 concat 合并多个 DataFrame,并添加多级索引
result = pd.concat([df1, df2, df3], keys=['Group1', 'Group2', 'Group3'])

# 输出结果
print(result)

Output:

Pandas Append DataFrame

这些示例展示了如何使用 appendconcat 方法来追加和合并多个 DataFrame。这些方法可以灵活地处理索引、排序和数据类型不一致的情况,使得数据合并变得更加容易和高效。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程