zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
U
­ý°d*ã@s`ddlmZddlZddlZddlZddlmZmZmZm    Z    m
Z
m Z m Z ddl mZddlmZddlmZejfdd„ZejejdejejejejejejejejejejdejejejdejejdejdœZd    d
„Zd d „Zd d„Zdd„Zej dddg¡dd„ƒZdd„Zdd„Zdd„Z dd„Z!ej ddd d!dged"d#d$gdd%fdd&gd'd(dddd!dddg    ed"d#d$gdd%e    d)d*d+gƒgfdd,gd dddd!ddddg    ed"d#d$gdd%ed"d#d$gdd%gfg¡ej d-ddg¡d.d/„ƒƒZ"d0d1„Z#d2d3„Z$d4d5„Z%ej dddg¡ej d6ddg¡ej d7ddg¡d8d9„ƒƒƒZ&d:d;„Z'd<d=„Z(d>d?„Z)d@dA„Z*dBdC„Z+ej dDdEge e,d)ƒƒdd$gd"d#gdFœfe e,d)ƒƒ -dGdH„¡d#gdd"gdFœfe e,d'ƒƒdd$gd"d#gdFœfg¡dIdJ„ƒZ.dKdL„Z/dMdN„Z0dOdP„Z1ej dQdRdSdRgfdTdUdVgfdWdUdRgfdXdSdVgfg¡dYdZ„ƒZ2d[d\„Z3d]d^„Z4d_d`„Z5ej dddg¡dadb„ƒZ6ej dddg¡dcdd„ƒZ7dedf„Z8dgdh„Z9didj„Z:ej dkde e
j;e d"d"d#gdldmd"d#d#ggdd&gdnd"d#d$gdodpfdee d"d"d#gdldmd"d#d#gd"d#d$gdqœƒfg¡drds„ƒZ<ej dtdej=ej>g¡dudv„ƒZ?ej@dwdx„ƒZAej dydzd{g¡d|d}„ƒZBej dydzd{g¡ej d6ddg¡d~d„ƒƒZCej d€de
 ;e    dgd)d‚gd)dldƒd„e    d…d…d†d†d…d…d‡d‡gdldˆd„e    dWdXgd)ƒg¡d#d#d)d)d"d"d$d$gfde
jDedd‚gdd‰ed…d†d‡gdd‰e    dWdXgƒgdƒdˆdgdnd#d#d)d)ej=ej=d"d"ej=ej=d$d$g fde
jDedd‚gdd‰ed…d†d‡gdd‰e    dWdXgƒgdƒdˆdgdnd#d#d)d)ej=ej=d"d"ej=ej=d$d$g fg¡dŠd‹„ƒZEdŒd„ZFej dŽd"ddgdddgg¡dd„ƒZGd‘d’„ZHd“d”„ZId•d–„ZJd—d˜„ZKd™dš„ZLej d6ddg¡d›dœ„ƒZMddž„ZNej dŸe jOd"d"d#gfe jPd"d#d#gfg¡d d¡„ƒZQd¢d£„ZRej d¤dRdTg¡d¥d¦„ƒZSd§d¨„ZTd©dª„ZUd«d¬„ZVd­d®„ZWd¯d°„ZXej d¤dRdTg¡eYeZd±œd²d³„ƒZ[ej d¤dRdTg¡eYeZd±œd´dµ„ƒZ\d¶d·„Z]ej d¤dRdTg¡d¸d¹„ƒZ^dºd»„Z_d¼d½„Z`d¾d¿„Zaej dÀdÁdÂdÃg¡ej dddg¡dÄdńƒƒZbej dÀdÂdÃg¡ej dddg¡dÆdDŽƒƒZcej dÀdÁdÂdÃg¡ej dÈdÉdÊg¡ej dddg¡dËd̄ƒƒƒZdej dÀdÁdÂdÃg¡ej dÈd{dzdÍg¡ej dddg¡dÎdτƒƒƒZeej dÀdÁdÂdÃg¡dÐdфƒZfej d-ddg¡ej dÒdÓgdÓd,gg¡dÔdՄƒƒZgdS)Öé)ÚdatetimeN)Ú CategoricalÚCategoricalIndexÚ    DataFrameÚIndexÚ
MultiIndexÚSeriesÚqcut)Ú SeriesGroupBy)Úget_groupby_method_argscCs.dd„}tjt||ƒ|d}|j||d ¡S)zpReindex to a cartesian production for the groupers,
    preserving the nature (Categorical) of each grouper
    cSs4t|ttfƒr0|j}tjt t|ƒ¡||jd}|S)N©Ú
categoriesÚordered)    Ú
isinstancerrr Ú
from_codesÚnpÚarangeÚlenr)Úar ©rú\d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/groupby/test_categorical.pyÚfs ÿz)cartesian_product_for_groupers.<locals>.f©Únames©Ú
fill_value)rÚ from_productÚmapÚreindexÚ
sort_index)ÚresultÚargsrrrÚindexrrrÚcartesian_product_for_grouperssr#)ÚallÚanyÚcountÚcorrwithÚfirstÚidxmaxÚidxminÚlastÚmaxÚmeanZmedianÚminÚnthÚnuniqueÚprodZquantileZsemÚsizeZskewÚstdÚsumÚvarcCsBt|jdƒ}dd„}|j|ddj |¡}|jjddks>t‚dS)NécSs| ¡| ¡| ¡| ¡dœS)N©r.r,r&r-r7)ÚgrouprrrÚ    get_statsIs
üz2test_apply_use_categorical_name.<locals>.get_statsF©ÚobservedrÚC)r    r<ÚgroupbyÚDÚapplyr"rÚAssertionError)ÚdfÚcatsr9r rrrÚtest_apply_use_categorical_nameFs rCc
Csrtdddddddddg    ddddgdd}tddddddd    d
d g    |d œƒ}ttd ƒddd}tdddd
tjgi|d}|jddd ¡}t     ||¡tddddgdddgdd}tddddgdddgdd}t||ddd    d
gdœƒ}|jddd}tdddgddd}    tdt
d    ddg|    diƒ}|j dd}t     ||¡tddgddgddggddgd}
t|
j ƒ|
d<|
jdgdd} |   dd „¡}t     ||
dg¡|
 d¡}|
jddg}t     ||¡d!d"„} |  | ¡}|
jddg ¡}tddgdd#|_|d d$¡|d<t     ||¡tdd d%d&giƒ}tj|jdd'd(d)d*gd+} |jj| dd  t ¡}t ||d¡t |jj| dd  d,d „¡|d¡t     |j| dd  t ¡|dg¡|j| dd}|  d-d „¡}t     ||dg¡t d¡:|  d.d „¡}|  t¡}|  tjj¡}|  d/d „¡}W5QRXtj    ||dgdd0tj    ||dgdd0t     ||dg¡t     ||dg¡t |jj| dd tj¡|d¡t     |j| dd tj¡|¡tdd d%d&d1giƒ}tj|jd2dd'd(d)d*gd+} |jj| dd  t ¡}t ||d¡t |jj| dd  d3d „¡|d¡t     |j| dd  t ¡|dg¡t     |j| dd  d4d „¡|dg¡tdddddgiƒ}tj|jdddd    d
gttd ƒƒd5} |j| dd t¡}t| j j!| j j"d6}t
ddddg|d}d|j_#t ||¡d7d8d9d:g}tj$j%dd
d;d<}tj&||dd6}ttj$ 'd;d
¡ƒ}|j|dd ¡}|jt (|¡dd ¡}t||j!dd}    | )|    ¡}t     ||¡|j|dd}| *¡}|j+ ,¡}t (|¡ -|¡}| -|¡}t|dd7d8d9d:gd=}|j|ddd> *¡}t     ||¡tj&t .d
¡ /d?¡|dd6}t|ƒ}t 0| 1¡j 2d¡|¡td@dAdBdCdDdEdFdGgd
ƒ}t 0| 1¡j 2d¡|¡dS)HNrÚbÚcÚdTr ééér6é©rrDÚabcd©Únamer©r"Fr:ÚzÚy©ÚAÚBÚvaluesrSrUér©Z numeric_onlyz John P. Doez    Jane DoveZ    person_idÚ person_name©ÚcolumnscSs|S©Nr©ÚxrrrÚ<lambda>uóztest_basic.<locals>.<lambda>cSs| d¡jdS)NrXr)Údrop_duplicatesÚilocr\rrrr|sztest_basic.<locals>.f©rNÚobjectééé
ééé()ÚbinscSs
t |¡Sr[©rr4©Úxsrrrr^Žr_cSstj|ddS©Nr©Zaxis©rr,rlrrrr^“r_cSstj|ddSrnrprlrrrr^—r_cSs tj |¡Sr[)rÚmaximumÚreducerlrrrr^šr_)Z check_dtypeéûÿÿÿiöÿÿÿcSs
t |¡Sr[rkrlrrrr^¬r_cSs
t |¡Sr[rkrlrrrr^°r_)Úlabels©rÚfooÚbarÚbazÚquxéd©r2)rr ©Úsortr;ér&r-r3r.ú25%ú50%ú75%r,)3rrrÚlistrÚnanr=r-ÚtmÚassert_frame_equalrr4rXÚ    transformr`rar?Úcopyrr"ÚastypeÚpdÚcutrÚassert_series_equalZassert_produces_warningr,rqrrÚfilterr$rrUr rrNÚrandomÚrandintrÚrandnÚasarrayrÚdescribeÚcodesÚargsortÚtakerÚrepeatÚassert_index_equalÚstackÚget_level_values)rBÚdataÚ    exp_indexÚexpectedr Úcat1Úcat2rAÚgbZexp_idxr]ÚgrrEZgbcÚresult2Zresult3Zresult4Zresult5Úlevelsr’ÚgroupedÚ desc_resultÚidxÚ
ord_labelsÚord_dataZexp_catsÚexpcÚexprrrÚ
test_basicUsÐ
ý    þ
 
 ÿ" 
$ÿ"ÿ$  
 
 
 
ÿ r©cCs¸tt ddd¡ttddgƒtdƒgdgddgdtdƒgd    d
gd d }|jd    g|d }tt ddd¡ttddgƒtdƒgdgdtdƒgd    d
gd d }| d¡}t     ||¡dS)NrHérrDrfrrJrGZIndex1ZIndex2)r¡r’r©r™r"©Úlevelr;é )
rrrrrÚranger=Ú    get_groupr„r…)r;rArŸr›r rrrÚtest_level_get_groupâs& ýþ ýþ
r±cCsÚtdgddgddddgdt d¡d    œƒ}t|jdddgd
d |_| d ¡d  ¡}|jdd
d}ddddddg}t|dddgd
d }ddddddgt|ƒg}t    j
|d d gd}t dgd|dd}t   ||¡dS)NrSérTÚhighZmedÚlowr6g(@)r8ÚdoseZoutcomesTr r8rµr)r­Zsort_remainingrrHr&©r"rN)rrrrrµr=Z value_countsrrrÚ from_arraysrr„r‹©rAr r"r›rrrÚ(test_sorting_with_different_categoricalsýs ýÿr¹rTFc    Csttdƒ|d}ttdƒddg|d}t t|ƒ¡}t|||dœƒ}|jdd    gd
d }tj||gdd    gd }td ddg|dgd}|     dd„¡}t
  ||¡|  ¡}t
  ||¡|  tj ¡}t
  ||¡tj||gdd    gd }td|d}|     dd„¡}t
 ||¡dS)NÚabcruZaaarrDr )ÚmissingÚdenserUr»r¼Tr:rrrGç@rU)r"rZcSstj|ddSrn)rr-r\rrrr^#r_ztest_apply.<locals>.<lambda>rOcSsdS©NrGrr\rrrr^/r_)rr‚rrrrr=rr·r?r„r…r-Úaggrr‹)    rr¼r»rUrAr¢r¤r›r rrrÚ
test_applys"     rÀc    Csžtddddgdddgdd}tddddgdddgdd}t||d    d
d d gd œƒ}ddgd
|d<|jdddg|d}tj||ddgd
gdddgd}tdtd    d
d d g|diƒ ¡}| ¡}|sàt|||ddggt    dƒdd}t
  ||¡|jddg|d}tj||gddgd}td    d
d d gddddgdœ|d}| ¡}|s\t|||gt    dƒdd}t
  ||¡tddddgdddgddd    d    d
d
gddddgd œ}t|ƒ}|jd!|d}    |      ¡}t t    d"ƒd!t    d#ƒdd$}td%d%gd&dgd'œ|d}|st t    d#ƒd!t    d#ƒdd$}
| |
¡}t
  ||¡|jd!d(g|d} |  d)¡}td*d+d&d,gtddddgdddgddd    d
d    d
gd-œƒ d!d(g¡}|s t||jjd    d
ggd!d(gƒ}t
  ||¡d.D]<} | \} }|  | ¡}||j| k|j|k@}t
  ||¡q°dd/d d/d d    d    gddddd0d1d2gddd3ddddgd4œ}t|ƒ}t |dt ddd ¡¡}||d5<|jd5d6gd7|d8}| d)¡}|jd5d6gd|d8}| d)¡ ¡}t
  ||¡dS)9NrrDrPTr rErFrQrGrHrIr6rRrvrwr<rSrTr:rrUrOÚABCrr)rUr<ÚABrfrgrhri)ÚcatÚintsÚvalrÃÚabrº)rNr rgø?ç4@)rÄrÅrÄr-ç$@g>@gD@)rÅrÃrÄ))rrG)rDrH)rDrG)rrHr~é2é<éFÚe©rvrwrxr¯rxF©Úas_indexr;)rrr=rr·rrr4r#r‚r„r…r-rrr¿Ú    set_indexrÃrUr°rÄr‰rŠrÚlinspaceÚ reset_index)r;rœrrAržršr›r rFZgroups_single_keyr"Úgroups_double_keyÚkeyrEÚirÃÚgroupsZgroups2rrrÚ test_observed3sÆÿ  ÿ ÿÿ 
ÿ
 
ûÿÿ
 
 
 
ÿ
ûÿø    ÿ 
ý
r×cCsØddddgddddgdddd    gd
œ}t|ƒ}t |d dddd g¡}d |_|j|dg|d}tj|ddddggd dgd}tddddgddddgdœ|d}|s¾t||jddddggd dgƒ}|     d¡}t
  ||¡dS)NrIr6rJrGrHrfrzéÈé")ÚC1ÚC2ÚC3rÚr²rÃrÛr:rg@g@g@rÈgY@gi@gA@)rÚrÜrOr-) rr‰rŠrNr=rr·r#rUr¿r„r…)r;rFrArUrÓr¤r›r rrrÚtest_observed_codes_remap¡s$$ÿÿ
rÝcCsÌttjjddddtjjddddtjjddddddœƒ}|j t¡ d¡|d<|jdd    d
gd d }| ¡}|j    j
d  ¡|j  ¡ksŒt ‚|j    j
d   ¡|j   ¡ksªt ‚|j    j
d  ¡|j  ¡ksÈt ‚dS)Nréÿi0ur{é')rÃÚint_idÚother_idrvÚcategoryrÃràráTr:rGrH)rrrrŽrÃrˆÚstrr=r&r"r¡r0r@ràrá)rAr¢r rrrÚtest_observed_perfµsüÿräcCs tdddgdddgd}t|dddgdœƒ}|jd    |d
}|j}|rftd dgd d tdgd d dœ}n*td dgd d tgd d tdgd d dœ}t ||¡dS)NrrErD©r rGrHrI©rÃÚvalsrÃr:rÚint64©Údtype)rrE©rrDrE)rrr=rÖrr„Úassert_dict_equal)r;rÃrArŸr r›rrrÚtest_observed_groupsÊs"
 ýríz,keys, expected_values, expected_index_levelsrrdé    rGrHrIrbrDrVr~r6rJr²Úa2Ú test_seriesc
    Csöttdddgdddgdtdddgdddgddddgdd    d
gd œƒ d d g¡}d|krd|jdd}|j|dd}|r~|d}| ¡}t|ƒdkr˜|}n2dddddddddg    ddddgg}t|||d}td|i|d}    |ræ|    d}    t     ||    ¡dS)NrGrHrIrår6rJr²rVr~rî)rrïrDrErrïrDrYFr:rEr)r’rrO)
rrrÐÚdropr=r4rrr„Ú assert_equal)
ÚkeysÚexpected_valuesZexpected_index_levelsrðrAržr r"r’r›rrrÚtest_unobserved_in_indexßs6üÿù  $ýrõcCsttdtjdgdddgddddgdœƒ}|jd    |d
}|j}|rXdtd dgd d i}n(td dgd d tgd d tgd d dœ}t ||¡dS)NrrDrFrårGrHrIrærÃr:rrèré)rrDrF)    rrrrƒr=rÖrr„rì)r;rArŸr r›rrrÚtest_observed_groups_with_nansþÿ
 
ýröcCsptdtjtjgdddgd}tdddgƒ}t||dœƒ}|jd    d
d d  d ¡}|d jd g}t     ||¡dS)NrrDrErårGrHrI)rÃÚserrÃFr:r÷r)
rrrƒrrr=r/rar„r‹)rÃr÷rAr r›rrrÚtest_observed_nth*s røcCs´ttjdtjdgdddgd}tddddgƒ}t||d    œƒ}|jd
|d  ¡ ¡}|rxttdgdddgddgd    œƒ}n,ttdddgdddgddtjtjgd    œƒ}t     ||¡dS) NrrDrErårGrHrIr6)Ús1Ús2rùr:)
rrrƒrrr=r(rÒr„r…)r;rùrúrAr r›rrrÚ#test_dataframe_categorical_with_nan5sÿ þÿrûr;r}c    CsÀtddddddgddddg|d}tddddddgƒ}t||dœƒ}|jd||dd     d
¡}t|jjd d }t|jƒ}|sˆd|| ¡<t||kƒs¼d |›d|›d|›d|›}ds¼t    |ƒ‚dS)NrFrrDr»r )ÚlabelrÅrü)r;r}rÅr(rcrézDLabels and aggregation results not consistently sorted
for (ordered=z , observed=z, sort=z
)
Result:
F)
rrrr=Ú    aggregater"ÚarrayÚisnar$r@)    rr;r}rürÅrAr ZaggrÚmsgrrrÚ0test_dataframe_categorical_ordered_observed_sortIs     
ý
  ÿrc     Csˆtjddd}tjjdddd}tj||dd}ttj dd¡ƒ}|j    |d    d
 
¡}|j    t  |¡d    d
 
¡}|  |¡}t |j|jdd |_t ||¡|j    |d    d
}| ¡}|j ¡}| |¡}    | |¡}
|
j    |    d    d
 ¡}t ||¡t |j|j¡t |j d¡|j d¡¡tjt d¡ d ¡|dd} t | ƒ} t | ¡j d¡| ¡td dddddddgdƒ} t | ¡j d¡| ¡dS)Nz
2014-01-01r6)Úperiodsrrzr{TruFr:r r~r&r-r3r.rr€rr,rG)r‰Ú
date_rangerrrŽrrrrr=r-rrrr"r„r…r‘r’r“r”r–r˜rr•r—r) r¡r’rBr™r r›r¢r£r¤r¥r¦r§r¨rrrÚ test_datetimels<
ÿ 
 
 
 
 
ÿrcCs(tj d¡}ddddg}|jdddd    }tj||d
d }tt t d¡d¡     d d¡t
d ƒd}||d<|  d¡j ddd  ¡}|t
d ƒj |jdd  ¡}ttjddddg|d
d dd|_t ||¡|j ddd  ¡}|t
d ƒj |jdd  ¡}ttjddddg|d
d dd|_t ||¡dS)Ni90rvrwrxryrr6rgr{TruéÿÿÿÿrLrYrBFr¬r:rGrHrIrb)rrZ RandomStaterŽrrrr•rZreshaper‚rÐr=r4r’rr"r„r…)Úsr¡r’rBrAr r›rrrÚtest_categorical_index“s(  &ÿ ÿrcCsztddddgddddgdd}ttj dd¡|d    }| d
d d dgd ¡ ¡}t |     ¡j
|¡t  |     ¡j
j |j ¡dS)NryrvrxrwTr rgr6rYrGrHrIrJ) rrrrrr=r‘r„r–r—rZÚassert_categorical_equalrU)rBrAr rrrÚ!test_describe_categorical_columns¬s
 
ýr    cCsÊttdƒddgdtdƒddœƒ}|d d    ¡|d<|jd
dgd d d  ¡ ¡}| ¡}tddgd dd}t     
|j |¡t      |j j |j ¡|d|d}tddgtddgd
dd}t     ||¡dS)NrfrSrTrJZXYXXYrH)rÚmediumÚartistr
râr Fr:r©rrNr²r6ÚXÚYrbrO)rr¯r‚rˆr=r&Úunstackr‘rr„r–rZrrUrrr‹)rAZgcatr Z exp_columnsr›rrrÚtest_unstack_categoricalºsÿrc Cs^ttjtjddddddddg
ƒ}t | ¡jd¡}tjt    dd| 
|¡  ¡W5QRXdS)NrGrHrIr6z$Grouper and axis must be same length©Úmatch) rrrƒr‰rŠÚdropnarUÚpytestÚraisesÚ
ValueErrorr=r-)ÚseriesrjrrrÚtest_bins_unequal_lenÍs rrr™©rSrTcCs|dSr¾r)r¤rrrr^Þr_r^cCsD| ttdƒdd¡}| t¡}t|t| ¡ƒd}t ||¡dS)NZABBArârérO)r=rr‚rýrrór„r‹)rr™r=r r›rrrÚtest_categorical_series×s
rcsžttdddgdddgƒdddgdddgd    œƒ‰ˆjd
d gd d d ¡}ttddgˆjjjdddgddgd    œd
d dgd}t ||¡‡fdd„}ˆjd
|gd d d ¡}ttddgˆjjjdddgddgd    œd
d dgd}t ||¡tdddgd
d}ˆjd
|gd d d ¡}t ||¡d
d g}ttddgˆjjjdddgddgd    œd
d dgd}dD]8}t    t
dƒ|dˆ_ ˆj|d d d ¡}t ||¡q`dS)NrGrHrIrfé éeéfég)rÃrSrTrÃrSFTrÎråéÍrTrYcsˆj|dfS)NrS)Úloc)Úr©rArrr^r_ztest_as_index.<locals>.<lambda>rªrrDrb)Nr rTrº) rrr=r4rÃr r„r…rrr‚r")r r›rrZ group_columnsrNrr"rÚ test_as_indexísPýÿýú  ýú  ýú    r#cCstdƒ}tdttdƒ|ddiƒ}t||ddd}ttdƒ|ddd}t |jdddd     ¡j|¡t |jdddd     ¡j|¡tdttdƒ|ddiƒ}t||ddd}ttdƒtdƒddd}t |jdddd     ¡j|¡t |jdddd     ¡j|¡dS)
NrºrSÚbaTr r ÚbacFr|)    r‚rrrr„r–r=r(r")r rArZ nosort_indexrrrÚtest_preserve_categories%s.ÿÿÿÿr&c    Csøtdddddgdddddgttdƒtd    ƒd
d ttdƒtd    ƒd d d œƒ}tddtjgddtjgttd    ƒtd    ƒd
d ttd    ƒtd    ƒd d d œƒ}dD]^}|j|d
d
djd d}|j|d d
djd d ¡}|j|j    d}t
  ||¡t
  ||¡q”dS)NrGrHrférªérÙZabaabr%Fr T)rSrTrÚrÛr½gð?g9@rÇ)rÚrÛ©ÚbyrÏr;rWrY) rrr‚rrƒr=r-rÒrrZr„r…)rAZexp_fullÚcolZresult1r r›rrrÚtest_preserve_categorical_dtypeCs2  üÿ    
 
üÿÿÿÿ r,z func, valuesr(Úsecondr+ÚfourthÚthirdr.r,cCs tddddgdd}tddddg|d    œƒ}| d
¡}t||ƒƒ}tddgt||jd d    œƒ d
¡}t ||¡| d
¡d }t||ƒƒ}|d }t     ||¡dS) Nr(r-r/r.Truréþÿÿÿ)Úpayloadr+r1rér+)
rrr=ÚgetattrrrêrÐr„r…r‹)ÚfuncrUrErArŸr r›ZsgbrrrÚtest_preserve_on_ordered_opsds 
 ÿþ  r4c Cs’ttj d¡ƒ}t dddddddddg    ¡}tj|dddgdd}|j|dd ¡}|j|dd ¡}t    |j
|j |j d    |_
t  ||¡t ddddddd
d
d
g    ¡}tj|dddd
gdd}|j|dd ¡}|j|dd ¡ |j ¡}t    |j
|j |j d    |_
t  ||¡td d d d d d d d d g    d d d dgdd    }tddddddd
ddg    |dœƒ}|jd dd ¡}|d j}t dddtjg¡}t  ||¡dS)NrîrrGrHTruFr:r rIrrDrErFr6rJrK)rrrrrþrrr=r-rr"r rr„r‹rrrUrƒÚassert_numpy_array_equal)r™r’rBr r¨rrrÚtest_categorical_no_compress€s>ÿ ÿ 
ý 
r6cCsdtdgdtdddgƒdœƒ}| d¡ ¡d}ttgddgdtgddd    dd
}t ||¡dS) NrIZtrainÚtestrrSrTrårc©rêrNr¶)rrr=r(rr„r‹©rAr r›rrrÚ test_groupby_empty_with_category¥s ýr:cCsºtdtj ddd¡iƒ}dd„tdddƒDƒ}t||ƒ}|jdgdd    }tj|j    tdd
dƒd |d |d <|j
d gd dd   ¡}|t |j dd„d}t|j |j jd|_ t ||¡dS)NÚvaluerrßrzcSsg|]}|›d|d›‘qS)z - iór)Ú.0rÕrrrÚ
<listcomp>»sztest_sort.<locals>.<listcomp>iôT)r*Z    ascendingi)F)ÚrightrtZ value_groupr:cSst| ¡dƒS)Nr)ÚfloatÚsplitr\rrrr^Är_ztest_sort.<locals>.<lambda>)rÔrb)rrrrŽr¯rZ sort_valuesr‰rŠr;r=r&Úsortedr"rrNr„r‹)rArtZ
cat_labelsÚresr¨rrrÚ    test_sort³s
 
ÿ
rCc
Csôtdddgdddgdddgdd    d
gdd d gd ddgdddggdddgd}t|d|d|d<|jd|dd ¡}|r ddgddgd    d
gddgg}d dddg}n(ddgddgd    d
gddgg}dddd g}t|ddgt|d|dd}t ||¡dS)Nz    (7.5, 10]rfr~rgz(2.5, 5]rJrhz(5, 7.5]r²rir6rÉz(0, 2.5]rGrÊrVrËr¯rvrwrYruFr|rM©rZr")rrr=r(rr„r…)r}rrAr Ú data_valuesÚ index_valuesr›rrrÚ
test_sort2És0ù    ö   ýrGc Csfttdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒgddddd    ddgdd
d d d ddgdœdddgd}t|d|d|d<|rÞddgdd gdd gddgg}tdddƒtdddƒtdddƒtdddƒg}nHddgdd gdd gddgg}tdddƒtdddƒtdddƒtdddƒg}t|ddgt|d|dd}|jd|dd ¡}t ||¡dS)NiÛrVrGrHrJrfr~r²r6rgrhrirÉrÊrË)ÚdtrvrwrHrvrwrYrurMrDFr|)rrrrr=r(r„r…)r}rrArErFr›r rrrÚtest_sort_datetimelikeìsF
 
 
 
 
 
 
ù    õ ò
 
 
 
ü
 
 
 
ü ýrIcCs ttdddgdddgddddgdœƒ}tdddgdd    }|jdd
d j ¡}td dd g|dd    }t ||¡|jdd
d jjd d}td dd g|dd    }t ||¡|jdd
d jjdd}td dt    j
g|dd    }t ||¡|jdd
d jjdd}td t    j
t    j
g|dd    }t ||¡dS)NrrDrErårGrHrrSrbFr:rIrrT©Z    min_count) rrrr=rTr4rr„r‹rrƒ©rAZ expected_idxr r›rrrÚtest_empty_sums "ÿ   rLcCsättdddgdddgddddgdœƒ}tdddgdd    }|jdd
d j ¡}tdddg|d d    }t ||¡|jdd
d jjd d}tdddg|d d    }t ||¡|jdd
d jjdd}tddt    j
g|d d    }t ||¡dS)NrrDrErårGrHrrSrbFr:rTrrJ) rrrr=rTr1rr„r‹rrƒrKrrrÚtest_empty_prod;s"ÿ  rMc Cs¬tttdƒƒtttjddddƒdƒt d¡dœƒ}| dd    g¡ ¡}t    j
td
d d gƒttjddddƒgdd    gd }tddddddddtj dg    i|d}t   ||¡dS)NZ    abcbabcbaz 2018-06-01 00Z1TrI)Úfreqrrî)Úkey1Úkey2rUrOrPrrDrErrUrr6r~rJr²rHrO)rrr‚r‰rrrr=r-rrrƒr„r…)rAr r¤r›rrrÚ,test_groupby_multiindex_categorical_datetimeSs"
ÿûÿ     þû$rQzas_index, expectedrârérr])r"r™rN©rrDr]cCsVttdddgdddddgdddgdœƒ}|jddg|d    d
d  ¡}t ||¡dS) NrGrHrârérIrRrrDTrÎr])rrr=r4r„rò)rÏr›rAr rrrÚ,test_groupby_agg_observed_true_single_columnls
$ÿrSrcCsZtddddgddddgdd}tddddgddddgdd}|jd|d}t ||¡dS)    NrrDrErFFr rGr)rÚshiftr„rò)rÚctr›rBrrrÚ
test_shifts
 
ÿ
 
ÿrVcCs\| ¡dd…}|d d¡|d<|d d¡|d<tddddgƒ|d    <|jd
gdd }|S) a¥
    DataFrame with multiple categorical columns and a column of integers.
    Shortened so as not to contain all possible combinations of categories.
    Useful for testing `observed` kwarg functionality on GroupBy objects.
 
    Parameters
    ----------
    df: DataFrame
        Non-categorical, longer DataFrame from another fixture, used to derive
        this one
 
    Returns
    -------
    df_cat: DataFrame
    Nr6rSrârTrGrHrIr<r>ro)r‡rˆrrñ)rAÚdf_catrrrrWœs rWÚ    operationr¿r?cCs”tddddg|djdd}tddddg|djdd}t ||g¡}td    d
d d g|d d ¡}|jddgddd }t||ƒtƒ}t     
||¡dS)NrwrvrSr8ÚoneÚthreeÚtworTrHr6rGrIr<©r™r"rNTr:) rrêrr·rrr=r2r4r„r‹)rWrXZlev_aZlev_br"r›r¢r rrrÚ test_seriesgroupby_observed_trueµsr]cCs tjtddgddtdddgddgdd    gd
 ¡\}}td d tjd tjdg|dd}|dkrl|jddd}|jdd    g|dd}t    ||ƒt
ƒ}t   ||¡dS)NrwrvFrurYrZr[rSrTrrHr6rGrIr<r\r¿rZinfer)Zdowncastr:) rrrZ    sortlevelrrrƒZfillnar=r2r4r„r‹)rWr;rXr"Ú_r›r¢r rrrÚ)test_seriesgroupby_observed_false_or_noneÃsþûr_zobserved, index, datarwrvrSr8rYrZr[rTrucCs>t||dd}|jddg|dd dd„¡}t ||¡dS)Nr<r\rSrTr:cSs| ¡| ¡dœS)N©r.r,r`r\rrrr^r_z8test_seriesgroupby_observed_apply_dict.<locals>.<lambda>)rr=r?r„r‹)rWr;r"r™r›r rrrÚ&test_seriesgroupby_observed_apply_dictØs
.ÿracCs<| ddg¡d ¡}| ddg¡ ¡d}t ||¡dS)NrSrTr<)r=r-r„r‹)rWr›r rrrÚ4test_groupby_categorical_series_dataframe_consistent srbÚcodecCsrtddddgddddgd    d
d d gd œƒ}tj|tdƒd}|j|dd ¡}|jj|dd ¡j}t ||¡dS)NrGrHrIr6rr0éýÿÿÿéüÿÿÿrJr²rVr~rërºråror)    rrrr‚r=r-ÚTr„r…)rcrArÃr r›rrrÚtest_groupby_categorical_axis_1s
(rgcCs\ttddg|dddgdœddgd    }| ¡}|jd|d
jtjd d  ¡}t ||¡dS) NZBobZGregrurGrH)ÚNameÚItemrhrirYr:T)Zskipna)    rrr‡r=r¿r4rÒr„r…)r;rrAr›r rrrÚ$test_groupby_cat_preserves_structuresþÿÿrjc    CsLtddddgtdƒdœƒ}tjtdd| d¡ dd    „¡W5QRXdS)
NrrDr6©r5rÅz'vau'rr5cSs&t|jddg|jddgdœƒS)Nrr5Zvaurk)rra)Úrowsrrrr^4s ÿz/test_get_nonexistent_category.<locals>.<lambda>)rr¯rrÚKeyErrorr=r?r"rrrÚtest_get_nonexistent_category/s
 
ÿrnc
CsÀ|dkrt d¡|dkr4tjjdd}|j |¡tttdƒtdƒdttd    ƒd
tdƒdd gd d œƒ}t    ||ƒ}|r€d nd}|j
ddg|dd}t ||ƒ}||Ž}    t |    ƒ|ks¼t ‚dS)NÚngroupúngroup is not truly a reductionr'ú6TODO: implemented SeriesGroupBy.corrwith. See GH 32293©ÚreasonÚAABBÚABCDrårÂrH皙™™™™¹?r6©Úcat_1Úcat_2r;r'rxryr:r;)rÚskipÚmarkÚxfailÚnodeÚ
add_markerrrr‚r r=r2rr@)
Úreduction_funcr;Úrequestr{rAr!Zexpected_lengthÚseries_groupbyr¿r rrrÚ0test_series_groupby_on_2_categoricals_unobserved:s&
ÿ ýÿ
 
r‚c Cs,|dkrt d¡|dkr4tjjdd}|j |¡tttdƒtdƒdttd    ƒd
tdƒdd gd d œƒ}t    dƒt    dƒt    dƒt    dƒt    dƒg}t
||ƒ}|j ddgddd}t ||ƒ}||Ž}t |}    |D].}
|j|
} t |    ¡rðt | ¡sÎ| |    ksÎt‚qÎ|    dkr(|dkr(t |jtj¡s(t‚dS)Nrorpr'rqrrrtrÁrårÂrHrvr6rwZACZBCÚCAZCBÚCCrxryFr:r;rr4)rrzr{r|r}r~rrr‚Útupler r=r2Ú-_results_for_groupbys_with_missing_categoriesr r‰rÿr@rZ
issubdtyperêÚinteger) rr€r{rAZ
unobservedr!rr¿r Z zero_or_nanr¤rÅrrrÚ?test_series_groupby_on_2_categoricals_unobserved_zeroes_or_nansWs0
ÿ ýÿ"
 
 
"rˆcCsœ|dkrt d¡tttdƒtdƒdttdƒtdƒdddddgd    œƒ}d
d d d g}|jddgdd}t||ƒ}t||ƒ|Ž}|D]}||jks„t    ‚q„dS)Nroú2ngroup does not return the Categories on the indexrtrÁråÚ1111Ú12rvrw©rSÚ2©rTr©r<Ú1©r<rrxryTr:)
rrzrrr‚r=r r2r"r@)rrAÚunobserved_catsÚdf_grpr!rBrÃrrrÚ>test_dataframe_groupby_on_2_categoricals_when_observed_is_true‚s
 
ýÿ 
r”cCsÌ|dkrt d¡tttdƒtdƒdttdƒtdƒdddddgd    œƒ}d
d d d g}|jddg|d}t||ƒ}t||ƒ|Ž}t|}|t    j
kr®|j |  ¡  ¡  ¡sÈt‚n|j ||k  ¡  ¡sÈt‚dS)Nror‰rtrÁrårŠr‹rvrwrŒrŽrr‘rxryr:)rrzrrr‚r=r r2r†rrƒr Zisnullr$r@)rr;rAr’r“r!rBr›rrrÚ?test_dataframe_groupby_on_2_categoricals_when_observed_is_falseœs     
 
ýÿ 
 
r•cCsŽddddgddddgdd    dd    gd
œ}t|ƒ}t |d t d dd ¡¡}||d<|jddgddd}|d  d¡}| d¡d }t ||¡dS)Nrfr~r6rGrgrhrirFrErÍrvrrJr¯rxT)rÏr}r-)    rr‰rŠrrÑr=r¿r„r‹)rFrArÃrÖr r›rrrÚ3test_series_groupby_categorical_aggregation_getitem¾s$r–zfunc, expected_valuesc    Csvtdddddgdddddgtdddddgƒdœƒ d¡}| d¡ |¡}td    |itdddgdd
d }t ||¡dS) NrrGrHrIr6)ÚidrÖr;r—rÖr;rbrO)rrrÐr=r¿rr„r…)r3rôrAr r›rrrÚ$test_groupby_agg_categorical_columnsÊs  ýÿúÿr˜cCs†tdtdddgdddgdiƒ}tdddgit ddg¡d}| dddg¡ tj¡}t     ||¡| dddg¡ ¡}t     ||¡dS)    NrSrrDrErårHrGrO)
rrrrþr=r¿rr0r„r…©rAr›r rrrÚtest_groupby_agg_non_numericßs   ršr3cCsltdgtdgddj ¡dœƒ}| d¡d}t||ƒƒ}tdgtdgddd|djd    }t     ||¡dS)
NiÍrDrârérrSrTrb©r"rNrê)
rrrÃZ
as_orderedr=r2rrêr„r‹)r3rAZ
df_groupedr r›rrrÚ<test_groupby_first_returned_categorical_instead_of_dataframeês   ÿrœcCs~t ddg¡}d|j_tddddgtddddgt|ƒddœƒ}td    d
d git|d d d}|jd dd     ¡}t
  ||¡dS)NrGrHFrIrJrVrårKrr½g@rDrbr«©r}) rrþÚflagsZ    writeablerrrrr=r-r„r…)rBrAr›r rrrÚtest_read_only_category_no_sortùs$ÿrŸc
CsÖtddddddddgddddddddgdœƒ}|d d¡jjd    dddgd
d |d<td d d œd dd œddd œddd œdœƒ}|jddd}td    dddgd    dddgd
ddd|_| ddg¡ ¡     ¡}t
  ||¡dS)NÚsmallÚlarger
r<rS)rvrwrvrâÚtinyTrur)rSr<rGrIrH)r¢r r
r¡rwr"ro)r rrNrê) rrˆrÃZset_categoriesZ rename_axisrrZr=r2rr„r…r™rrrÚ#test_sorted_missing_category_valuessJø
õÿÿ
þÿüÿ
 
ûr£cCs˜tdddddgiƒ}|d d¡|d<| d¡j ¡}tdddgtdddgddd|djd}t     ||¡| d¡ 
dd    i¡}|  ¡}t  ||¡dS)
NZcol_numrGrHrIrâÚcol_catrbr›r() rrˆr=r¤r(rrrêr„r‹r¿Úto_framer…r9rrrÚ1test_agg_cython_category_not_implemented_fallback2sü r¦c    Cs®tddddgddddgddtjdgddddgddddgd    œƒ}| d
d i¡}| d d g¡ dd„¡}tjddgddggdd}tddgddgddgdœ|d}t     ||¡dS)NrGrHrvgš™™™™™É?g333333Ó?rvrwZfee)rSrTÚ numerical_colÚ
object_colÚcategorical_colr©rârSrTcSs | ¡ ¡Sr[)rÿr4r"rrrr^Vr_z7test_aggregate_categorical_with_isnan.<locals>.<lambda>rrr)r§r¨r©r«)
rrrƒrˆr=r¿rr·r„r…r¸rrrÚ%test_aggregate_categorical_with_isnanHs&
 
 
 
ûÿ
ýúrªc    CsÔtddddddgddddddgdœƒ}tjdddgdd    }|d
 |¡|d
<| d ¡d
 t¡|d <| ¡}tddddddgddddddgddddddgd œƒ}|d
 |¡|d
<|d  |¡|d <t     ||¡dS)NrGrHrIZWaitingZOnTheWayZ    Delivered)Ú
package_idÚstatusTr r¬r«Ú last_status)r«r¬r­)
rr‰ÚCategoricalDtyperˆr=r†r,r‡r„r…)rAZdelivery_status_typer r›rrrÚtest_categorical_transformcsNúþÿÿú    úöÿr¯)r3r;c CsÒtddddgƒ}ddddg}t|||dœƒ}tddgƒ}tj||gddgd}tdtjtjdg|ddtdtjtjdg|ddd    œ}||}|r | ¡ tj    ¡}|j
ddg|d
d}    t |    |ƒƒ}
t   |
|¡dS© NrrGrërrDrrErb)r(r+r:)rrrrrrÚNaNrrˆrèr=r2r„r‹) r3r;rÃrÅrArr¤Ú expected_dictr›Zsrs_grpr rrrÚFtest_series_groupby_first_on_categorical_col_grouped_on_2_categoricals˜s  þ r³c CsÒtddddgƒ}ddddg}t|||dœƒ}tddgƒ}tj||gddgd}tdtjtjdg|ddtdtjtjdg|ddd    œ}|| ¡}|r¤| ¡     tj
¡}|j ddg|d
}    t |    |ƒƒ}
t  |
|¡dSr°)rrrrrrr±r¥rrˆrèr=r2r„r…) r3r;rÃrÅrArr¤r²r›r“r rrrÚBtest_df_groupby_first_on_categorical_col_grouped_on_2_categoricals±s  þ  r´cCs¤ttdddgdddgdtdƒdœƒ}|jddd    }|j}tjd
d gd d tjdgd d tjgd d dœ}| ¡| ¡ks~t‚| ¡D]}t     
||||¡q†dS)NrDrrErårI)rÔr+rÔFrrrGZintprérH)rDrrE) rrr¯r=Úindicesrrþrór@r„r5)rAr¢r r›rÔrrrÚ2test_groupby_categorical_indices_unused_categoriesÊsþÿ ý r¶cCsptddddgiƒ}|d d¡|d<t| d¡d|ƒƒ}ttdddgƒdtdddgddd}t ||¡dS)    NrrGrHrIrârDrb)rNr")    rrˆr2r=rrrr„r‹)r3rAr r›rrrÚ1test_groupby_last_first_preserve_categoricaldtypeÞs ÿr·c    CsŒtddgddgddgdœƒ}|jdddœd}|jd    d
gd d  ¡d }tddgt tddgd    dtddgd
dg¡d d}t     ||¡dS)NrGrHrfrrërârKrérrDTr:rErbr¶)
rrˆr=r0rrr·rr„r‹r9rrrÚ)test_groupby_categorical_observed_nuniqueêsÿûr¸cCsŽtjddgdd}tddgddgddggddgd     d|i¡}| d¡d ¡}tddgtddgdd
dtjddgddd }t     ||¡dS) Nr ÚbigTr rGrHÚgrpÚ descriptionrYrbr›)
r‰r®rrˆr=r,rrr„r‹)rêrAr r›rrrÚ,test_groupby_categorical_aggregate_functionsùsÿþür¼cCs°tddgdddgd}ttddgdddgdddgdœƒ}|jd||d}| ¡}|rltd    ddgi|d
}n,tdddgdddgƒ}td    ddd gi|d
}d|j_t ||¡dS) NrGrHrIrår6)r]rQr])r;rrQrOr)    rrr=r4rr"rNr„r…)r;rrÃrAržr r›r"rrrÚtest_groupby_categorical_dropna s$r½Ú
index_kindr¯ÚsingleÚmulticCs||dkr0|s0|dkr0d}|j tjj|d¡n@|dkrX|sXd}|j tjj|d¡n|dkrp|sptjddttd    d
d    d gd
d d d    g|d td ƒdœƒ}|dkr¬dg}    n@|dkrÆdg}    |     |    ¡}n&|dkrìddg}    |d|d<|     |    ¡}t
||ƒ}
|j |    |||d} t | |ƒ|
Ž} |r,| j  d¡j} n | djj} td
d d d    gƒ}t | |¡|dkrx| j  d¡j} t | |¡dS)N)r)r*rÀz1GH#10694 - idxmax/min fail with unused categoriesrrr'zDGH#49950 - corrwith with as_index=False may not have grouping columnr¯ú/Result doesn't have categories, nothing to testrHrGrIr6r rKrr¿rï©rÏr}r;)r}r~rr{r|rzrrr¯rÐr r=r2r"r˜r rÃrr„r–)r€rÏr}r;rr¾rrrArór!ržÚ    op_resultr r›rrrÚtest_category_order_reducersLÿþý   þÿ  
 
 
rÄc Csættddddgddddg|dtdƒdœƒ}|dkrFdg}| |¡}n&|d    krldd
g}|d|d
<| |¡}t||ƒ}|j||||d }    t|    |ƒ|Ž}
|
j d¡j    } t
ddddgƒ} t   | | ¡|d    krâ|
j d
¡j    } t   | | ¡dS) NrHrGrIr6r rKr¿rrÀrïrÂ) rrr¯rÐr r=r2r"r˜r rr„r–) rÏr}r;Ztransformation_funcr¾rrArór!ržrÃr r›rrrÚtest_category_order_transformerLs*þÿ  
 
 rÅÚmethodÚheadÚtailc Csttddddgddddg|dtdƒdœƒ}|dkr<dg}n@|d    krVdg}| |¡}n&|d
kr|dd g}|d|d <| |¡}|j||||d }t||ƒƒ}    |dkr°|    djj}
n|    j     d¡j}
t
ddddgƒ} t   |
| ¡|d
krü|    j     d ¡j}
t   |
| ¡dS) NrHrGrIr6r rKr¯rr¿rÀrïrÂ) rrr¯rÐr=r2rÃr r"r˜rr„r–© rÏr}r;rÆr¾rrAróržrÃr r›rrrÚtest_category_order_head_tailks0þÿ  
  rÊr†c Cs:|dkr|dks|s&|dkr&t d¡ttddddgddddg|dtdƒd    œƒ}|dkrbd
g}n@|d kr|d
g}| |¡}n&|d kr¢d
d g}|d
|d <| |¡}|j||||d}t||ƒdd„ƒ}    |dksÒ|sè|dkrè|    d
jj    }
n|    j
  d
¡j    }
t ddddgƒ} t  |
| ¡|d kr6|    j
  d ¡j    }
t  |
| ¡dS)Nr†r¯z(No categories in result, nothing to testrHrGrIr6r rKrr¿rÀrïrÂcSs |jddS)NTrW)r4r\rrrr^¨r_z+test_category_order_apply.<locals>.<lambda>)rrzrrr¯rÐr=r2rÃr r"r˜rr„r–rÉrrrÚtest_category_order_applys<ÿÿ
þÿ  
 
rËc Csd|dkr|stjddt ddd¡}tddddg||d    }t|td
ƒd œƒ}|dkr^d g}n@|d krxd g}| |¡}n&|dkržd dg}|d |d<| |¡}|j|||dd}|     ¡}    |rÆdddgndddg}
t
|
|j |d d} |rtd|
iƒ} |dkrt   t| | dœƒ¡| _n| | _n6|dkrBtt| ƒt| ƒ|
dœƒ} ntt| ƒ|
d œƒ} t |    | ¡dS)Nr¯rÁrri'rrHrGrIr r6rKrr¿rÀrïTrÂ)r rrNrD)rrï)rrïrD)rrzrrrrr¯rÐr=r4rr rZ
from_framer"rr„r…) rÏr}r¾rr ZgrouperrAróržr r™r"r›rrrÚtest_many_categoriesµs@    
ÿ 
 
rÌróÚa1c Csˆ|r&|dkr&ttdƒrt‚t d¡n^|dkrJd}|j tjj|d¡n:|dkr„|s„t    |ƒdkr„|s„|s„d}|j tjj|d¡t
dddgd    d
d
gd d d gdœƒ}|  dddœ¡}d|krÊ|j dd}|j |||d}|ræ|d}t||ƒ}    |j|gf|    žŽ}
t||ƒ|    Ž} |r0|s&|dkr0|  |¡} |sf|sF|  |¡} tdg|ggdgdggd| _n|sx||g| _t |
| ¡dS)Nr'z*corrwith not implemented for SeriesGroupByz1GH#32293: attempts to call SeriesGroupBy.corrwithrrr0rGzGH#52848 - raises a ValueErrorrrHrIr6rJr²)rÍrïrDrâ)rÍrïrïrYr)rDr2)r¡r’)Úhasattrr
r@rrzr}r~r{r|rrrˆrñr=r r¿r2r¥rÐrrZr„rò) r€rÏr;rrðrórrAržr!r r›rrrÚ test_agg_listÝsP  ÿþ
ýüû" 
 
 
 
 
ÿ
 rÏ)hrÚnumpyrrZpandasr‰rrrrrrr    Zpandas._testingZ_testingr„Zpandas.core.groupby.genericr
Zpandas.tests.groupbyr r±r#r†rCr©r±r¹r{Z parametrizerÀr×rÝrärírõrörørûrrrr    rrr¯Úrenamerr#r&r,r4r6r:rCrGrIrLrMrQr·rSrƒZNaTrVZfixturerWr]r_rrarbrgrjrnr‚rˆr”r•r–r0r&r˜ršrœrŸr£r¦rªr¯rãÚboolr³r´r¶r·r¸r¼r½rÄrÅrÊrËrÌrÏrrrrÚ<module>sÈ $       ä 
nýþýùþ "  '
$ùþ
 
8!
 
 
 
üþ    
%
"
2ÿûþ ýÿþõþ
 
 
 
 ýùÿ ó
ýú"ö 
ýú"öäþ,
    
     +
! þ
 
 -5ÿÿ
 . !#
'