1from __future__ import absolute_import, print_function, division 2 3 4# complement() 5############## 6 7import petl as etl 8a = [['foo', 'bar', 'baz'], 9 ['A', 1, True], 10 ['C', 7, False], 11 ['B', 2, False], 12 ['C', 9, True]] 13b = [['x', 'y', 'z'], 14 ['B', 2, False], 15 ['A', 9, False], 16 ['B', 3, True], 17 ['C', 9, True]] 18aminusb = etl.complement(a, b) 19aminusb 20bminusa = etl.complement(b, a) 21bminusa 22 23 24# recordcomplement() 25#################### 26 27import petl as etl 28a = [['foo', 'bar', 'baz'], 29 ['A', 1, True], 30 ['C', 7, False], 31 ['B', 2, False], 32 ['C', 9, True]] 33b = [['bar', 'foo', 'baz'], 34 [2, 'B', False], 35 [9, 'A', False], 36 [3, 'B', True], 37 [9, 'C', True]] 38aminusb = etl.recordcomplement(a, b) 39aminusb 40bminusa = etl.recordcomplement(b, a) 41bminusa 42 43 44# diff() 45######## 46 47import petl as etl 48a = [['foo', 'bar', 'baz'], 49 ['A', 1, True], 50 ['C', 7, False], 51 ['B', 2, False], 52 ['C', 9, True]] 53b = [['x', 'y', 'z'], 54 ['B', 2, False], 55 ['A', 9, False], 56 ['B', 3, True], 57 ['C', 9, True]] 58added, subtracted = etl.diff(a, b) 59# rows in b not in a 60added 61# rows in a not in b 62subtracted 63 64 65# recorddiff() 66############## 67 68import petl as etl 69a = [['foo', 'bar', 'baz'], 70 ['A', 1, True], 71 ['C', 7, False], 72 ['B', 2, False], 73 ['C', 9, True]] 74b = [['bar', 'foo', 'baz'], 75 [2, 'B', False], 76 [9, 'A', False], 77 [3, 'B', True], 78 [9, 'C', True]] 79added, subtracted = etl.recorddiff(a, b) 80added 81subtracted 82 83 84# intersection() 85################ 86 87import petl as etl 88table1 = [['foo', 'bar', 'baz'], 89 ['A', 1, True], 90 ['C', 7, False], 91 ['B', 2, False], 92 ['C', 9, True]] 93table2 = [['x', 'y', 'z'], 94 ['B', 2, False], 95 ['A', 9, False], 96 ['B', 3, True], 97 ['C', 9, True]] 98table3 = etl.intersection(table1, table2) 99table3 100 101 102