1
- # DO NOT MERGE _test_get_groups.py WITH THE MAIN PANDAS REPO!!!
2
- # DO NOT MERGE _test_get_groups.py WITH THE MAIN PANDAS REPO!!!
3
- # DO NOT MERGE _test_get_groups.py WITH THE MAIN PANDAS REPO!!!
4
-
5
- # run with python3 _test_get_groups.py
6
-
7
1
import unittest
8
2
9
3
from pandas import DataFrame
10
4
from pandas .testing import assert_frame_equal
5
+ import numpy as np
11
6
7
+ #
8
+ # # df = DataFrame({'Animal': ['Falcon', 'Falcon',
9
+ # # 'Parrot', 'Parrot'],
10
+ # # 'Max Speed': [380., 370., 24., 26.],
11
+ # # 'bullshit': ['a', 'b', 'c', 'd']})
12
+ # #
13
+ # # print(df)
14
+ # # grps = df.groupby(['Animal'])
15
+ # # print(_GroupBy.get_group(grps, ('Falcon')))
16
+ # # print("=====")
17
+ # # i = 0
18
+ # # for key, item in grps:
19
+ # # print(i)
20
+ # # i +=1
21
+ # # print(key)
22
+ # # print(_GroupBy.get_group(grps, key))
23
+ # # print(grps)
24
+ # # print(grps.mean())
25
+ # # print("=====")
26
+ #
27
+ # d = {
28
+ # "cat": pd.Categorical(
29
+ # ["a", "b", "a", "b"], categories=["a", "b", "c"], ordered=True
30
+ # ),
31
+ # "ints": [1, 1, 2, 2],
32
+ # "val": [10, 20, 30, 40],
33
+ # }
34
+ # df = pd.DataFrame(d)
12
35
13
36
class _test_get_groups (unittest .TestCase ):
14
- def test_single_row_valid (self ):
37
+ def test_cero_discovered_invalid (self ):
38
+ df = DataFrame (data = {
39
+ 'A' : ['a1' , 'a2' , None ],
40
+ 'B' : ['b1' , 'b2' , 'b1' ],
41
+ 'val' : [1 , 2 , 3 ],
42
+ })
43
+ grps = df .groupby (by = ['A' , 'B' ])
44
+ self .assertRaises (KeyError , grps .get_group , ('a1' , 'b2' ))
45
+
46
+ def test_uno_single_row_valid (self ):
15
47
df = DataFrame (data = {
16
48
'A' : ['a1' , 'a2' , None ],
17
49
'B' : ['b1' , 'b2' , 'b1' ],
@@ -25,11 +57,29 @@ def test_single_row_valid(self):
25
57
grps = df .groupby (by = ['A' , 'B' ])
26
58
assert_frame_equal (grps .get_group (('a1' , 'b1' )), expected )
27
59
28
- def test_discovered_invalid (self ):
60
+ def test_dos_alternate_invalid (self ):
29
61
df = DataFrame (data = {
30
62
'A' : ['a1' , 'a2' , None ],
31
63
'B' : ['b1' , 'b2' , 'b1' ],
32
64
'val' : [1 , 2 , 3 ],
33
65
})
34
66
grps = df .groupby (by = ['A' , 'B' ])
35
- self .assertRaises (KeyError , grps .get_group , ('a1' , 'b2' ))
67
+ self .assertRaises (KeyError , grps .get_group , ('a2' , 'b1' ))
68
+
69
+ def test_tres_double_row_valid (self ):
70
+ df = DataFrame (data = {
71
+ 'A' : ['a1' , 'a2' , None ],
72
+ 'B' : ['b1' , 'b2' , 'b1' ],
73
+ 'val' : [1 , 2 , 3 ],
74
+ })
75
+ expected = DataFrame (data = {
76
+ 'A' : ['a1' , None ],
77
+ 'B' : ['b1' , 'b1' ],
78
+ 'val' : [1 , 3 ],
79
+ })
80
+ grps = df .groupby (by = ['B' ])
81
+ self .assertEqual (True , np .array_equal (grps .get_group (('b1' )).values , expected .values ))
82
+
83
+
84
+ if __name__ == '__main__' :
85
+ unittest .main ()
0 commit comments