def test2(self): R = { 'A': [ -8.0, -7.0, -3.0, -2.0, -1.0, 1.0, 2.0, 3.0, 4.0, 9.0, -10.0, -9.0, -6.0, -5.0, -4.0, 0.0, 5.0, 6.0, 7.0, 8.0 ], 'B': [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ] } a = [ 4, 8, 1, 5, -7, -5, 9, 7, -8, -10, -1, -4, 3, 0., -2, 6, 2, -9, -3, -6 ] b = [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2] df = DataFrame() for A, B in zip(a, b): df.insert({'A': A, 'B': B}) df.sort(['B', 'A']) for d, r in zip(df['A'], R['A']): self.assertAlmostEqual(d, r) for d, r in zip(df['B'], R['B']): self.assertAlmostEqual(d, r)
def test4(self): df=DataFrame() df.insert([('GROUP','AA'),('VAL',1)]) with self.assertRaises(Exception) as cm: df.validate(lambda x: x in ['AA', 'AB', 'LAB']) self.assertEqual(str(cm.exception), 'criteria must be mappable type')
def test3(self): tupa = ('a1', 'a2', 'a3') tupb = ('a1', 'b2', 'b3') df = DataFrame() df.insert([(('a1', 'a2', 'a3'), 34), (('a1', 'b2', 'b3'), 1)]) df.insert([(('a1', 'a2', 'a3'), 34), (('a1', 'b2', 'b3'), 2)]) df.insert([(('a1', 'a2', 'a3'), 42), (('a1', 'b2', 'b3'), 3)]) namea, nameb = df.keys() self.assertEqual(namea, tupa) self.assertEqual(nameb, tupb)
def test2(self): """method='valid', aggregate=count, invalid col""" R = """\ count(id) member Name=name1, Name=name1, Name=name2, Total Year=2010 Year=2011 Year=2011 ======================================================== N 0 1 0 1 Y 1 0 1 2 ======================================================== Total 1 1 1 3 """ df = DataFrame() df.insert({'id':0,'Name':'name1','Year':2010,'member':'Y'}) df.insert({'id':1,'Name':'name1','Year':2011,'member':'N'}) df.insert({'id':2,'Name':'name2','Year':2011,'member':'Y'}) my_pivot = df.pivot('id',rows = ['member'], cols = ['Name','Year'], aggregate='count') self.assertEqual(R,str(my_pivot))
def test1(self): """method='valid', aggregate=count, invalid row""" R = """\ count(id) Name Year member=N member=Y Total ========================================== name1 2010 0 1 1 name1 2011 1 0 1 name2 2011 0 1 1 ========================================== Total 1 2 3 """ df = DataFrame() df.insert({'id':0,'Name':'name1','Year':2010,'member':'Y'}) df.insert({'id':1,'Name':'name1','Year':2011,'member':'N'}) df.insert({'id':2,'Name':'name2','Year':2011,'member':'Y'}) my_pivot = df.pivot('id',rows = ['Name','Year'], cols = ['member'], aggregate='count') self.assertEqual(R,str(my_pivot))
def test4(self): """method='full', aggregate=tolist, invalid col""" R = """\ tolist(id) member Name=name1, Name=name1, Name=name2, Name=name2, Year=2010 Year=2011 Year=2010 Year=2011 ================================================================== N [None, None] [1.0, 1.0] [None, None] [None, None] Y [0.0, 0.0] [None, None] [None, None] [2.0, 2.0] """ df = DataFrame() df.insert({'id':0,'Name':'name1','Year':2010,'member':'Y','rep':1}) df.insert({'id':1,'Name':'name1','Year':2011,'member':'N','rep':1}) df.insert({'id':2,'Name':'name2','Year':2011,'member':'Y','rep':1}) df.insert({'id':0,'Name':'name1','Year':2010,'member':'Y','rep':2}) df.insert({'id':1,'Name':'name1','Year':2011,'member':'N','rep':2}) df.insert({'id':2,'Name':'name2','Year':2011,'member':'Y','rep':2}) my_pivot = df.pivot('id',rows = ['member'], cols = ['Name','Year'], aggregate='tolist', method='full') ## print(my_pivot) self.assertEqual(R,str(my_pivot))
def test3(self): """method='full', aggregate=tolist, invalid row""" R = """\ tolist(id) Name Year member=N member=Y ========================================== name1 2010 [None, None] [0.0, 0.0] name1 2011 [1.0, 1.0] [None, None] name2 2010 [None, None] [None, None] name2 2011 [None, None] [2.0, 2.0] """ df = DataFrame() df.insert({'id':0,'Name':'name1','Year':2010,'member':'Y','rep':1}) df.insert({'id':1,'Name':'name1','Year':2011,'member':'N','rep':1}) df.insert({'id':2,'Name':'name2','Year':2011,'member':'Y','rep':1}) df.insert({'id':0,'Name':'name1','Year':2010,'member':'Y','rep':2}) df.insert({'id':1,'Name':'name1','Year':2011,'member':'N','rep':2}) df.insert({'id':2,'Name':'name2','Year':2011,'member':'Y','rep':2}) my_pivot = df.pivot('id',rows = ['Name','Year'], cols = ['member'], aggregate='tolist', method='full') ## print(my_pivot) self.assertEqual(R,str(my_pivot))
def test3(self): R = """c b{L@^hsa aj} a(1%32@) =========================== 1 a 34 2 b 34 3 c 42 4 d 34 5 e 45 6 f 34 """ df = DataFrame() df.PRINTQUERIES = True df.insert({'a(1%32@)': 34, 'b{L@^hsa aj}': 'a', 'c': 1}) df.insert({'a(1%32@)': 34, 'b{L@^hsa aj}': 'b', 'c': 2}) df.insert({'a(1%32@)': 42, 'b{L@^hsa aj}': 'c', 'c': 3}) df.insert({'a(1%32@)': 34, 'b{L@^hsa aj}': 'd', 'c': 4}) df.insert({'a(1%32@)': 45, 'b{L@^hsa aj}': 'e', 'c': 5}) df.insert({'a(1%32@)': 34, 'b{L@^hsa aj}': 'f', 'c': 6}) self.assertEqual(R, str(df))