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()函数用于沿给定轴连接两个或多个数据框。根据您的特定需求,选择正确的方法可能会有所不同。
极客教程