📅  最后修改于: 2023-12-03 14:45:03.656000             🧑  作者: Mango
在 Pandas 中,可以使用 merge()
函数来将两个数据集合并在一起。其中 _merge
参数可以控制如何处理没有匹配到的行。本文将介绍 _merge='left_only'
参数的用法。
将两个数据集合并在一起时,可能存在一个数据集中的行没有在另一个数据集中匹配到的情况。此时可以使用 _merge
参数来控制如何处理这些未匹配到的行。
_merge
参数有四个取值:
left_only
: 对于左侧数据集中存在但右侧数据集中不存在的行,保留左侧数据集中的行,并在右侧数据集中相应的行填充 NaN 值。right_only
: 对于右侧数据集中存在但左侧数据集中不存在的行,保留右侧数据集中的行,并在左侧数据集中相应的行填充 NaN 值。both
: 对于左侧和右侧数据集中都存在的行,保留这些行,并合并左右两侧的数据。none
: 对于左侧和右侧数据集中都不存在的行,忽略这些行。默认情况下,_merge
的取值为 both
。
当 _merge='left_only'
时,merge()
函数将只保留左侧数据集中存在但右侧数据集中不存在的行。在右侧数据集中相应的行填充 NaN 值。
下面的示例代码演示了如何使用 _merge='left_only'
参数:
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': [5, 6, 7, 8]})
# 将两个数据集按 key 列合并,并使用 _merge='left_only' 参数
result = pd.merge(df1, df2, on='key', how='left', indicator=True)
result = result[result['_merge'] == 'left_only']
# 输出结果
print(result)
输出结果为:
key value_x value_y _merge
0 A 1 NaN left_only
2 C 3 NaN left_only
结果表明,在右侧数据集中只有 key 为 B 和 D 的行与左侧数据集中的行匹配,其余行均为左侧数据集独有。