**join()和merge()**函数都可以用来合并两个pandas DataFrames。
下面是这两个函数的主要区别。
- **join()**函数通过索引合并两个DataFrames。
- **merge()**函数通过你指定的任何列来组合两个DataFrames。
这些函数使用以下基本语法。
#use join() to combine two DataFrames by index
df1.join(df2)
#use merge() to combine two DataFrames by specific column name
df1.merge(df2, on='column_name')
在你知道你想按索引连接两个DataFrames的情况下,可以使用**join()**函数来节省一些输入。
下面的例子展示了如何在实践中使用每个函数。
例1:如何使用join()函数
下面的代码显示了如何使用**join()**函数来组合两个DataFrames。
import pandas as pd
#create two DataFrames
df1 = pd.DataFrame({'name': ['A', 'B', 'C'], 'points': [8, 12, 19]}).set_index('name')
df2 = pd.DataFrame({'name': ['A', 'B', 'C'], 'steals': [4, 5, 2]}).set_index('name')
#view two DataFrames
print(df1); print(df2)
points steals
name name
A 8 A 4
B 12 B 5
C 19 C 2
#use join() function to join together two DataFrames
df1.join(df2)
points steals
name
A 8 4
B 12 5
C 19 2
默认情况下,**join()**函数使用索引列将两个DataFrames连接在一起。
例2:如何使用merge()函数
下面的代码显示了如何使用**merge()**函数来合并两个DataFrames。
import pandas as pd
#create two DataFrames
df1 = pd.DataFrame({'name': ['A', 'B', 'C'], 'points': [8, 12, 19]}).set_index('name')
df2 = pd.DataFrame({'name': ['A', 'B', 'C'], 'steals': [4, 5, 2]}).set_index('name')
#view two DataFrames
print(df1); print(df2)
points steals
name name
A 8 A 4
B 12 B 5
C 19 C 2
#use join() function to join together two DataFrames
df1.merge(df2, on='name')
points steals
name
A 8 4
B 12 5
C 19 2
请注意,**merge()**函数返回了完全相同的结果,但我们必须明确告诉pandas使用'name'列连接DataFrames。
其他资源
你可以在这里找到**join()和merge()**函数的完整在线文档。
下面的教程解释了如何在pandas中执行其他常用函数。
如何向潘达斯数据框架添加行
如何向潘达斯数据框架添加标题行
如何获取潘达斯数据框架的第一行
如何获取潘达斯数据框架的第一列
The postPandas Join vs. Merge:首先出现在Statology上。