Pandas中如何合并两个DataFrame

Pandas中如何合并两个DataFrame

参考:pandas append two dataframes

在数据处理和分析中,经常需要将多个数据集合并为一个,以便进行统一的处理和分析。Pandas库提供了多种方式来合并数据,其中append()函数是一个非常实用的工具,用于将两个DataFrame垂直地合并。本文将详细介绍如何使用Pandas的append()函数来合并两个DataFrame,并提供多个示例代码以帮助理解和掌握其用法。

1. append()函数基础

在Pandas中,append()函数可以将一个DataFrame添加到另一个DataFrame的末尾。这个过程不会直接修改原有的DataFrame对象,而是返回一个新的DataFrame对象,其中包含合并后的数据。

示例代码1:基本的append操作

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page1', 'http://pandasdataframe.com/page2'],
    'Data': [101, 102]
})
df2 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page3', 'http://pandasdataframe.com/page4'],
    'Data': [103, 104]
})

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

Output:

Pandas中如何合并两个DataFrame

2. 使用ignore_index参数

当合并两个DataFrame时,如果不希望保留原来的索引,可以使用ignore_index=True参数。这将重新为合并后的DataFrame生成一个新的整数索引。

示例代码2:使用ignore_index参数

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page1', 'http://pandasdataframe.com/page2'],
    'Data': [101, 102]
})
df2 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page3', 'http://pandasdataframe.com/page4'],
    'Data': [103, 104]
})

# 使用append合并两个DataFrame,并忽略原有索引
result = df1._append(df2, ignore_index=True)
print(result)

Output:

Pandas中如何合并两个DataFrame

3. 处理不匹配的列

当两个DataFrame的列不完全匹配时,append()函数会自动处理,不存在的列将被填充为NaN。

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

import pandas as pd

# 创建两个DataFrame,列不匹配
df1 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page1', 'http://pandasdataframe.com/page2'],
    'Data': [101, 102]
})
df2 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page3', 'http://pandasdataframe.com/page4'],
    'Extra': ['A', 'B']
})

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

Output:

Pandas中如何合并两个DataFrame

4. 合并多个DataFrame

可以连续使用append()函数来合并多个DataFrame。

示例代码4:连续合并多个DataFrame

import pandas as pd

# 创建三个DataFrame
df1 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page1', 'http://pandasdataframe.com/page2'],
    'Data': [101, 102]
})
df2 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page3', 'http://pandasdataframe.com/page4'],
    'Data': [103, 104]
})
df3 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page5', 'http://pandasdataframe.com/page6'],
    'Data': [105, 106]
})

# 使用append连续合并DataFrame
result = df1._append(df2).append(df3)
print(result)

5. 使用sort参数

在Pandas的新版本中,append()函数提供了sort参数,可以用来控制合并后列的排序行为。

示例代码5:使用sort参数

import pandas as pd

# 创建两个DataFrame,列不匹配
df1 = pd.DataFrame({
    'A': ['http://pandasdataframe.com/page1', 'http://pandasdataframe.com/page2'],
    'B': [101, 102]
})
df2 = pd.DataFrame({
    'B': [103, 104],
    'C': ['http://pandasdataframe.com/page3', 'http://pandasdataframe.com/page4']
})

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

Output:

Pandas中如何合并两个DataFrame

6. 性能考虑

虽然使用append()函数可以方便地合并DataFrame,但在处理大规模数据或需要频繁合并操作的情况下,使用concat()函数通常会更高效。concat()函数在合并大量DataFrame时可以显著提高性能。

示例代码6:使用concat代替append

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page1', 'http://pandasdataframe.com/page2'],
    'Data': [101, 102]
})
df2 = pd.DataFrame({
    'URL': ['http://pandasdataframe.com/page3', 'http://pandasdataframe.com/page4'],
    'Data': [103, 104]
})

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

以上是使用Pandas中的append()函数合并两个DataFrame的基本方法和一些高级技巧。通过这些示例代码,可以看到append()函数在数据处理中的灵活性和实用性。在实际应用中,根据数据的具体情况选择合适的参数和方法,可以有效地处理和分析数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程