1
1
import builtins
2
2
import datetime as dt
3
3
from io import StringIO
4
- from itertools import product
5
4
from string import ascii_lowercase
6
5
7
6
import numpy as np
@@ -1296,36 +1295,32 @@ def __eq__(self, other):
1296
1295
# --------------------------------
1297
1296
1298
1297
1299
- def test_size (df ):
1300
- grouped = df .groupby (["A" , "B" ])
1298
+ @pytest .mark .parametrize ("by" , ["A" , "B" , ["A" , "B" ]])
1299
+ def test_size (df , by ):
1300
+ grouped = df .groupby (by = by )
1301
1301
result = grouped .size ()
1302
1302
for key , group in grouped :
1303
1303
assert result [key ] == len (group )
1304
1304
1305
- grouped = df .groupby ("A" )
1306
- result = grouped .size ()
1307
- for key , group in grouped :
1308
- assert result [key ] == len (group )
1309
1305
1310
- grouped = df .groupby ("B" )
1311
- result = grouped .size ()
1312
- for key , group in grouped :
1313
- assert result [key ] == len (group )
1306
+ @pytest .mark .parametrize ("by" , ["A" , "B" , ["A" , "B" ]])
1307
+ @pytest .mark .parametrize ("sort" , [True , False ])
1308
+ def test_size_sort (df , sort , by ):
1309
+ df = DataFrame (np .random .choice (20 , (1000 , 3 )), columns = list ("ABC" ))
1310
+ left = df .groupby (by = by , sort = sort ).size ()
1311
+ right = df .groupby (by = by , sort = sort )["C" ].apply (lambda a : a .shape [0 ])
1312
+ tm .assert_series_equal (left , right , check_names = False )
1314
1313
1315
- df = DataFrame (np .random .choice (20 , (1000 , 3 )), columns = list ("abc" ))
1316
- for sort , key in product ((False , True ), ("a" , "b" , ["a" , "b" ])):
1317
- left = df .groupby (key , sort = sort ).size ()
1318
- right = df .groupby (key , sort = sort )["c" ].apply (lambda a : a .shape [0 ])
1319
- tm .assert_series_equal (left , right , check_names = False )
1320
1314
1321
- # GH11699
1315
+ def test_size_series_dataframe ():
1316
+ # https://github.com/pandas-dev/pandas/issues/11699
1322
1317
df = DataFrame (columns = ["A" , "B" ])
1323
1318
out = Series (dtype = "int64" , index = Index ([], name = "A" ))
1324
1319
tm .assert_series_equal (df .groupby ("A" ).size (), out )
1325
1320
1326
1321
1327
1322
def test_size_groupby_all_null ():
1328
- # GH23050
1323
+ # https://github.com/pandas-dev/pandas/issues/23050
1329
1324
# Assert no 'Value Error : Length of passed values is 2, index implies 0'
1330
1325
df = DataFrame ({"A" : [None , None ]}) # all-null groups
1331
1326
result = df .groupby ("A" ).size ()
@@ -1335,6 +1330,8 @@ def test_size_groupby_all_null():
1335
1330
1336
1331
# quantile
1337
1332
# --------------------------------
1333
+
1334
+
1338
1335
@pytest .mark .parametrize (
1339
1336
"interpolation" , ["linear" , "lower" , "higher" , "nearest" , "midpoint" ]
1340
1337
)
0 commit comments