Pandas将一行或多行添加到 DataFrame 的末尾

Pandas将一行或多行添加到 DataFrame 的末尾

参考:pandas append dataframe

Pandas 是一个强大的 Python 数据分析库,它提供了许多用于操作数据的功能,其中之一就是将数据框(DataFrame)合并或添加。本文将详细介绍如何使用 Pandasappend() 方法来合并数据框。append() 方法可以快速地将一行或多行添加到 DataFrame 的末尾。

1. 基础用法

在 Pandas 中,append() 方法允许我们将一个 DataFrame 添加到另一个 DataFrame 的末尾。这是一个非常常用的操作,尤其是在处理来自不同数据源的数据时。

示例代码 1: 创建两个 DataFrame 并使用 append 合并

import pandas as pd

# 创建第一个 DataFrame
df1 = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'example.com'],
    '访问量': [1000, 1500]
})

# 创建第二个 DataFrame
df2 = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'test.com'],
    '访问量': [500, 800]
})

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

Output:

Pandas将一行或多行添加到 DataFrame 的末尾

2. 忽略索引

在使用 append() 方法时,可以通过设置 ignore_index=True 来重新分配新的索引给合并后的 DataFrame。这通常在索引值不重要的情况下非常有用。

示例代码 2: 使用 ignore_index 选项

import pandas as pd

df1 = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'example.com'],
    '访问量': [1000, 1500]
})

df2 = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'test.com'],
    '访问量': [500, 800]
})

result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas将一行或多行添加到 DataFrame 的末尾

3. 保留原有索引

如果你希望保留原有的索引,可以不设置 ignore_index 或将其设为 False

示例代码 3: 保留原有索引

import pandas as pd

df1 = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'example.com'],
    '访问量': [1000, 1500]
}, index=[1, 2])

df2 = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'test.com'],
    '访问量': [500, 800]
}, index=[3, 4])

result = df1._append(df2)
print(result)

Output:

Pandas将一行或多行添加到 DataFrame 的末尾

4. 合并具有不同列的 DataFrame

当两个 DataFrame 拥有不同的列时,append() 方法会自动对列进行对齐,不存在的列将被填充为 NaN。

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

import pandas as pd

df1 = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'example.com'],
    '访问量': [1000, 1500]
})

df2 = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'test.com'],
    '用户数': [200, 300]
})

result = df1._append(df2, ignore_index=True, sort=False)
print(result)

Output:

Pandas将一行或多行添加到 DataFrame 的末尾

5. 使用字典添加单行数据

可以通过将字典传递给 append() 方法来添加单行数据。

示例代码 5: 使用字典添加单行数据

import pandas as pd

df = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'example.com'],
    '访问量': [1000, 1500]
})

new_row = {'网站': 'pandasdataframe.com', '访问量': 2000}

result = df._append(new_row, ignore_index=True)
print(result)

Output:

Pandas将一行或多行添加到 DataFrame 的末尾

6. 追加多行数据

除了追加单个 DataFrame 外,append() 方法还可以一次性追加多个 DataFrame。

示例代码 6: 追加多行数据

import pandas as pd

df1 = pd.DataFrame({
    '网站': ['pandasdataframe.com', 'example.com'],
    '访问量': [1000, 1500]
})

rows = [
    {'网站': 'pandasdataframe.com', '访问量': 2000},
    {'网站': 'newsite.com', '访问量': 1700}
]

result = df1._append(rows, ignore_index=True)
print(result)

Output:

Pandas将一行或多行添加到 DataFrame 的末尾

7. 性能考虑

虽然 append() 方法非常方便,但在处理大数据集或在循环中多次使用 append() 时,它可能不是性能最优的选择。在这种情况下,建议使用 pandas.concat() 或直接使用列表来收集数据行,然后一次性创建 DataFrame。

示例代码 7: 使用列表代替多次 append 提高性能

import pandas as pd

data = []
for i in range(1000):
    data._append({'网站': 'pandasdataframe.com', '访问量': i})

df = pd.DataFrame(data)
print(df)

8. 结论

Pandas 的 append() 方法提供了一种快速而简便的方式来扩展 DataFrame。无论是添加几行数据还是合并两个 DataFrame,append() 都能够简洁地完成任务。然而,在处理大规模数据或需要高性能的场景中,使用 concat() 或其他方法可能更加合适。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程