ku135515parson:csc523_fall2020 parson$ ipython Python 3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52) Type 'copyright', 'credits' or 'license' for more information IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: import arffio_3_0 as arffio In [2]: a, d = arffio.readARFF('JoinedHawkMtn20172018.arff') In [3]: help(arffio.projectARFF) In [5]: au, du = arffio.projectARFF(a, d, [('useless',)], False) In [6]: help(arffio.writeARFF) In [7]: arffio.writeARFF('junk.arff', au, du, True) In [8]: l = ['Counter'] + ['Observer' + str(i) for i in range(1,5)] In [9]: l Out[9]: ['Counter', 'Observer1', 'Observer2', 'Observer3', 'Observer4'] In [10]: au, du = arffio.projectARFF(au, du, l, False) In [11]: arffio.writeARFF('junk2.arff', au, du, False) In [12]: !diff junk.arff junk2.arff |less In [13]: au, du = arffio.projectARFF(au, du, [('date',)], False) In [14]: arffio.writeARFF('junk3.arff', au, du, False) In [15]: !diff junk2.arff junk3.arff|less In [16]: au, du = arffio.projectARFF(au, du, ['Duration', 'Observer'], False) In [17]: arffio.writeARFF('junk4.arff', au, du, False) In [18]: !diff junk3.arff junk4.arff|less In [19]: BVix = au['BV'][0] In [20]: TOTALix = au['TOTAL'][0] In [21]: BVix Out[21]: 0 In [22]: TOTALix Out[22]: 21 In [24]: l = list(range(BVix, TOTALix+1)) In [25]: l Out[25]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21] In [26]: BWix = au['BW'][0] In [27]: BWix Out[27]: 10 In [31]: l.remove(BWix) In [32]: l Out[32]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21] In [33]: au, du = arffio.projectARFF(au, du, l, False) In [34]: arffio.writeARFF('junk5.arff', au, du, False) In [35]: len(l) Out[35]: 21 In [36]: !diff junk4.arff junk5.arff|less tempcIX = au['tempc'][0] tempPrev24IX = au['tempPrev24'][0] barompresIX = au['barompres'][0] baromPrev24IX = au['baromPrev24'][0] newcolumns=[] for inst in du: baromdelta = inst[barompresIX] - inst[baromPrev24IX] if not (inst[barompresIX] == None or inst[baromPrev24IX] == None) else None tempdelta = inst[tempcIX] - inst[tempPrev24IX] if not (inst[tempcIX] == None or inst[tempPrev24IX] == None) else None newcolumns.append([baromdelta, tempdelta]) au, du = arffio.joinARFF(au, du, [('baromdelta', 'numeric'), ('tempdelta', 'numeric')], newcolumns) arffio.writeARFF('junk6.arff', au, du, False) !diff junk5.arff junk6.arff |less