如何在 pandas 中进行左连接(举例)


您可以使用以下基本语法在 pandas 中执行左连接:

 import pandas as pd

df1. merge (df2, on=' column_name ', how=' left ')

以下示例展示了如何在实践中使用此语法。

示例:如何在 Pandas 中执行左连接

假设我们有以下两个 panda DataFrame,其中包含有关各个篮球队的信息:

 import pandas as pd

#createDataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                    ' points ': [18, 22, 19, 14, 14, 11, 20, 28]})

df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'G', 'H'],
                    ' assists ': [4, 9, 14, 13, 10, 8]})

#view DataFrames
print (df1)

  team points
0 to 18
1 B 22
2 C 19
3 D 14
4 E 14
5 F 11
6 G 20
7:28 a.m.

print (df2)

  team assists
0 to 4
1 B 9
2 C 14
3 D 13
4G 10
5:8 a.m.

我们可以使用以下代码执行左连接,保留第一个 DataFrame 中的所有行,并根据第二个 DataFrame 中的团队列添加所有匹配的列:

 #perform left join
df1. merge (df2, on=' team ', how=' left ')

        team points assists
0 to 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6G 20 10.0
7:28 a.m. 8.0

左侧 DataFrame ( df1 ) 中的每个团队都会在合并的 DataFrame 中返回,并且仅返回右侧 DataFrame ( df2 ) 中与左侧 DataFrame 中团队名称匹配的行。

请注意, df2中的两支球队(球队 E 和 F)与df1中的球队名称不匹配,只是在合并的 DataFrame 的助攻列中返回NaN值。

请注意,您还可以使用pd.merge()和以下语法来返回完全相同的结果:

 #perform left join
p.d. merge (df1, df2, on=' team ', how=' left ')


        team points assists
0 to 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6G 20 10.0
7:28 a.m. 8.0

请注意,此合并的 DataFrame 与前面的示例相匹配。

注意:您可以在此处找到合并功能的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何在 Pandas 中执行反连接
如何在 Pandas 中执行内连接
如何在 Pandas 中执行交叉连接

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注