Pandas 合并 DataFrame:如何查找不匹配的行
在使用 Pandas 处理数据时,经常需要合并两个 DataFrame。merge 函数提供了强大的功能来完成这项任务。但是,有时我们需要查找两个 DataFrame 中不匹配的行。
通过将 merge 函数的 indicator 参数设置为 True,可以在合并后的 DataFrame 中新增一列 _merge,该列指示每行的合并结果:
both:两个 DataFrame 都包含该行数据。left_only:只有左 DataFrame 包含该行数据。right_only:只有右 DataFrame 包含该行数据。
以下是一个示例代码:
import pandas as pd
# 创建两个示例 DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})
df2 = pd.DataFrame({'A': [1, 4, 5], 'C': ['x', 'y', 'z']})
# 使用 merge 合并 DataFrame 并设置 indicator=True
merged = pd.merge(df1, df2, on='A', how='outer', indicator=True)
# 筛选不匹配的行
not_matched = merged[merged['_merge'] != 'both']
print(not_matched)
输出结果:
A B C _merge
1 2 b NaN left_only
2 3 c NaN left_only
3 4 NaN y right_only
4 5 NaN z right_only
通过筛选 _merge 列的值为 left_only 或 right_only,可以轻松找到两个 DataFrame 中不匹配的行。
原文地址: https://www.cveoy.top/t/topic/x 著作权归作者所有。请勿转载和采集!