Pandas 按列名连接数据框

Pandas 按列名连接数据框

在本文中,我们将介绍如何使用Pandas按列名连接数据框。我们将探讨Pandas中的几种方法,包括merge(), join()和concatenate()。

阅读更多:Pandas 教程

Pandas merge()函数

Pandas merge()函数是将两个数据框连接到一起的主要工具。使用此函数可以根据列名连接两个数据框。例如,以下代码使用merge()函数连接两个数据框:

import pandas as pd

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['C', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})

merged_df = pd.merge(df1, df2, on='key')
print(merged_df)

首先,我们定义了两个数据框df1和df2,并指定了它们各自的key和value列。然后,我们使用merge()函数连接这两个数据框,并根据key列进行连接。输出结果如下:

  key  value_x  value_y
0   C        3        5
1   D        4        6

在合并后的数据框中,我们仅看到了’C’和’D’两行,这是因为这两行是两个数据框中都存在的。注意merge()函数默认使用inner join,因此仅连接共同存在的行。

Pandas join()函数

join()函数是merge()函数的一个变体,它允许您根据列名连接两个数据框,并使用与SQL中的左连接和右连接类似的方式。以下代码显示了如何使用join()函数连接两个数据框:

import pandas as pd

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'value2': [5, 6, 7, 8]}, index=['C', 'D', 'E', 'F'])

joined_df = df1.join(df2, how='left', on='key')
print(joined_df)

在这个例子中,我们首先定义了两个数据框df1和df2,并为df2定义了一个索引列。接下来,我们使用join()函数连接这两个数据框,并使用how=’left’指定左连接。左连接使用df1的所有行和df2中与key列对应的行。

输出结果如下:

  key  value  value2
0   A      1    NaN
1   B      2    NaN
2   C      3    5.0
3   D      4    6.0

注意到在连接后的数据框中,A和B两行存在于df1中但不存在于df2中,并用NaN填充了value2列。C和D两行是共同存在于两个数据框中的。

Pandas concatenate()函数

Pandas concatenate()函数用于沿着给定轴连接两个或多个数据框。它类似于SQL中的union操作。以下代码显示了如何使用concatenate()函数连接两个数据框:

import pandas as pd

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['E', 'F', 'G', 'H'], 'value': [5, 6, 7, 8]})

concatenated_df = pd.concat([df1, df2])
print(concatenated_df)

在这个例子中,我们首先定义了两个数据框df1和df2,并使用concatenate()函数将它们连接在一起。输出结果如下:

  key  value
0   A      1
1   B      2
2   C      3
3   D      4
0   E      5
1   F      6
2   G     7
3   H      8

连接后的数据框包含df1和df2的所有行。注意到各行的索引已被重新排序。

总结

本文介绍了如何使用Pandas按列名连接数据框的几种方法。merge()函数可以根据列名将两个数据框连接在一起。join()函数类似于merge()函数,但允许您使用左连接或右连接。concatenate()函数用于沿给定轴连接两个或多个数据框。根据您的特定需求,选择正确的方法可能会有所不同。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程