有人知道如何找到两个熊猫数据框之间的潜在连接吗?
例如我想搜索这些数据集的列之间的潜在匹配项
我已经开发出类似的东西
_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%
答案 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]