可以使用pandas库中的merge函数来比较两个数据框,并用value_counts函数计算每列中每个值出现的次数。如果在两个数据框中同时出现的值数量小于等于最小重叠数量,则可以使用isin函数将它们提取出来。
代码示例:
import pandas as pd
df1 = pd.DataFrame({"A": [1, 2, 3, 4], "B": [5, 6, 7, 8]}) df2 = pd.DataFrame({"A": [3, 4, 5, 6], "B": [7, 8, 9, 10]})
merged = pd.merge(df1, df2, on="A", how="inner")
counts = merged.apply(pd.value_counts)
min_overlap = 2
result = merged[merged.apply(lambda x: (x.isin(counts.loc[:, x.name]) & (counts.loc[:, x.name] <= min_overlap)).any(), axis=0)]
print(result)