Pandas 的 merge 方法可以将两个或多个 DataFrame 进行连接,达到合并的目的。Pandas 的合并操作主要有三种方式,它们分别是:
-
inner(内连接)
-
outer(外连接)
-
left/right(左连接、右连接)
1. inner 连接
内连接是取两个 DataFrame 的“交集”部分。使用 merge 方法来进行内连接操作,其基本语法如下:
pd.merge(df1, df2, on='key')
其中,df1
和 df2
是需要连接的两个 DataFrame,key
是连接依据的列。例如:
import pandas as pd
df1 = pd.DataFrame({
'key': ['a', 'b', 'c', 'd'],
'value': [1, 2, 3, 4]
})
df2 = pd.DataFrame({
'key': ['b', 'd', 'e', 'f'],
'value': [3, 4, 5, 6]
})
merged_df = pd.merge(df1, df2, on='key')
print(merged_df)
运行结果:
key value_x value_y
0 b 2 3
1 d 4 4
2. outer 连接
外连接是取两个 DataFrame 的“并集”部分。使用 merge 方法来进行外连接操作,其基本语法如下:
pd.merge(df1, df2, on='key', how='outer')
其中,how
参数表示外连接方式,可以设置为 'outer'
。例如:
import pandas as pd
df1 = pd.DataFrame({
'key': ['a', 'b', 'c', 'd'],
'value': [1, 2, 3, 4]
})
df2 = pd.DataFrame({
'key': ['b', 'd', 'e', 'f'],
'value': [3, 4, 5, 6]
})
merged_df = pd.merge(df1, df2, on='key', how='outer')
print(merged_df)
运行结果:
key value_x value_y
0 a 1.0 NaN
1 b 2.0 3.0
2 c 3.0 NaN
3 d 4.0 4.0
4 e NaN 5.0
5 f NaN 6.0
3. left/right 连接
左连接是以第一个 DataFrame 为主,将两个 DataFrame 加以连接。右连接是以第二个 DataFrame 为主,将两个 DataFrame 加以连接。
使用 merge 方法来进行左连接或右连接操作,其基本语法如下:
pd.merge(df1, df2, on='key', how='left')
pd.merge(df1, df2, on='key', how='right')
例如:
import pandas as pd
df1 = pd.DataFrame({
'key': ['a', 'b', 'c', 'd'],
'value': [1, 2, 3, 4]
})
df2 = pd.DataFrame({
'key': ['b', 'd', 'e', 'f'],
'value': [3, 4, 5, 6]
})
left_merged_df = pd.merge(df1, df2, on='key', how='left')
right_merged_df = pd.merge(df1, df2, on='key', how='right')
print("left merge:")
print(left_merged_df)
print("right merge:")
print(right_merged_df)
运行结果:
left merge:
key value_x value_y
0 a 1 NaN
1 b 2 3.0
2 c 3 NaN
3 d 4 4.0
right merge:
key value_x value_y
0 b 2.0 3
1 d 4.0 4
2 e NaN 5
3 f NaN 6
除了基本语法外,Pandas 还提供了更复杂的连接方法,例如连接多个 DataFrame、按照多列进行连接等等。要完整掌握 Pandas 合并方法,需要深入阅读官方文档并多加练习。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas 合并(merge) - Python技术站