import petl.interactive as etl etl.__version__ table1 = (('name', 'kids'), ('John', '1'), ('Jenny', '2'), ('James', '2'), ('Joan', '4')) table2 = (('name', 'age'), ('John', '33'), ('Jenni', ''), ('Jomes', '20'), ('Joan', '')) from fuzzywuzzy import fuzz table3 = (etl .wrap(table1) .prefixheader('l_') .crossjoin(etl.wrap(table2).prefixheader('r_')) .addfield('fuzz', lambda row: fuzz.partial_ratio(row.l_name, row.r_name)) .selectge('fuzz', 80) ) table3