import petl.interactive as etl t1 = etl.wrap([['foo', 'bar'], [1, 'a'], [2, 'b']]) t1 t2 = etl.wrap([['foo', 'bar'], [1, 'a'], [2, 'c']]) t2 t3 = etl.merge(t1, t2, key='foo') t3 t4 = (etl .cat( t1.addfield('source', 1), t2.addfield('source', 2) ) .conflicts(key='foo', exclude='source') ) t4