熊猫在两个熊猫数据框之间自动联接

时间:2020-07-14 06:43:27

标签: python pandas

有人知道如何找到两个熊猫数据框之间的潜在连接吗?

例如我想搜索这些数据集的列之间的潜在匹配项

enter image description here

我已经开发出类似的东西

_check_dtype

_check_na检查数据类型之间的可能匹配

_fast_intersect排除具有很多NaN的列

d = {'col11': [1, 2], 'col21': ['3', '4']} df1 = pd.DataFrame(data=d) d = {'col12': [1, 3], 'col22': [3, 4]} df2 = pd.DataFrame(data=d) possible_join(df1, df2, threshold=0.6, verbose=2) 尝试仅包含少量数据的快速联接,如果通过则查找完全联接。

但是太慢了!

测试

Type          Qty_Available   Cost  For_Protein    For_Carb
Protein_Can         50         10      TRUE          FALSE
Soup                15          8      FALSE         TRUE
EnergyDrink         10         15      TRUE          TRUE
            

结果是

col21和col22具有100%的完全匹配

col11和col12的匹配率低50%

1 个答案:

答案 0 :(得分:4)

_fast_intersect中使用以下代码的安全性:

first_df = df1.sample(n= int(n * perc), random_state=0)
second_df = df2
return pd.merge(first_df, second_df, how="inner", on="c2").shape[0]