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
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
Ë
nñúhpãób—ddlmZddlZddlmZddlZddlmZddlZddlm    Z    m
Z
m Z m Z m Z ddlZddlZddlmZddlmZddlmZdd    lmZmZmZmZmZmZmZmZdd
l m!Z!dd l"m#Z#dd l$m%Z%dd l&m'Z'ddl(m)Z)ddl*m+Z+m,Z,m-Z-m.Z.m/Z/ddl0m1Z1m2Z2ddl3m4Z4m5Z5m6Z6ddl7m8Z8ddl9m:cm;Z<ddl=m>Z>e    r*ddl?m@Z@mAZAmBZBmCZCmDZDddlEmFZFmGZGmHZHddlImJZJddlKmLZLddlMmNZNeOePe
fZQ                                d6                                                                    d7d„ZRGd„dej¦¬«ZTGd„deT«ZUGd „deU«ZVGd!„d"eV«ZWGd#„d$eV«ZXGd%„d&eU«ZYGd'„d(eT«ZZGd)„d*eZ«Z[                d8d+„Z\d9d,„Z]                d:d-„Z^                d;d.„Z_                                        d<d/„Z`d=d0„Zad>d1„Zbd?d2„Zc                d@d3„ZddAd4„Ze                                dBd5„Zfy)Cé)Ú annotationsN)Ú defaultdict)Úpartial)Ú TYPE_CHECKINGÚAnyÚCallableÚLiteralÚcast)Úoption_context)Úlib)ÚBlockValuesRefs)Ú AggFuncTypeÚAggFuncTypeBaseÚAggFuncTypeDictÚ
AggObjTypeÚAxisÚAxisIntÚNDFrameTÚnpt)Úimport_optional_dependency)ÚSpecificationError)Úcache_readonly)Úfind_stack_level)Úis_nested_object)Ú is_dict_likeÚis_extension_array_dtypeÚ is_list_likeÚis_numeric_dtypeÚ is_sequence)ÚCategoricalDtypeÚExtensionDtype)Ú ABCDataFrameÚ
ABCNDFrameÚ    ABCSeries)Úgenerate_apply_looper)Úensure_wrapped_if_datetimelike)Ú    GeneratorÚHashableÚIterableÚMutableMappingÚSequence)Ú    DataFrameÚIndexÚSeries)ÚGroupBy)Ú    Resampler)Ú
BaseWindowÚ
FrameApplyc
óž—|j|«}|dk(rt}
n |dk(rt}
t|fi|    ¤Ž\} }} } |€J‚
|||||||||    ¬«    S)z=construct and return a row or column based frame apply objectré)ÚrawÚ result_typeÚby_rowÚengineÚ engine_kwargsÚargsÚkwargs)Ú_get_axis_numberÚ FrameRowApplyÚFrameColumnApplyÚreconstruct_func) ÚobjÚfuncÚaxisr5r6r7r8r9r:r;ÚklassÚ_s             úDH:\Change_password\venv_build\Lib\site-packages\pandas/core/apply.pyÚ frame_applyrFRsw€ð × Ñ  Ó %€Dà ˆq‚y܉ؠ    ŠÜ ˆä$ TÑ4¨VÑ4M€A€tˆQØ Ð ÐÐ á Ø Ø Ø ØØØØ#Ø Øô
ócó‚—eZdZUded<ddddœ                                                            dd„Zej dd„«Zej                 dd    „«Zej                 dd
„«Z    dd „Z
dd „Z dd „Z dd„Z dd„Z                                dd„Z                dd„Zdd„Z                                        d d„Z                        d!d„Zdd„Zdd„Z                                d"d„Zd#d„Zy)$ÚApplyrrBÚcompatÚpythonN©r7r8r9có̗||_||_|dus|dvsJ‚||_|xsd|_|    xsi|_||_|€in||_|dvr td«‚||_||_    y)NF)rJÚ_compat©)NÚreduceÚ    broadcastÚexpandzUinvalid value for result_type, must be one of {None, 'reduce', 'broadcast', 'expand'})
r@r5r7r:r;r8r9Ú
ValueErrorr6rA)
Úselfr@rAr5r6r7r8r9r:r;s
          rEÚ__init__zApply.__init__ys†€ðˆŒØˆŒà˜‰ &Ð,AÑ"AÐAÐA؈Œ à’J˜BˆŒ    Ø’l ˆŒ àˆŒ Ø#0Ð#8™R¸mˆÔà ÐEÑ EÜð=óð ð
'ˆÔàˆ    rGcó—y©NrO©rTs rEÚapplyz Apply.applyœó€à rGcó—yrWrO©rTÚop_names  rEÚagg_or_apply_list_likezApply.agg_or_apply_list_like ó€ð     rGcó—yrWrOr\s  rEÚagg_or_apply_dict_likezApply.agg_or_apply_dict_like¦r_rGcó˜—|j}|j}|j}|j}t    |t
«r|j «St|«r|j«St|«r|j«St|«r9tj|«}|r"|s |st|||«t||««Sy)z»
        Provide an implementation for the aggregators.
 
        Returns
        -------
        Result of aggregation, or None if agg cannot be performed by
        this method.
        N)r@rAr:r;Ú
isinstanceÚstrÚ    apply_strrÚ agg_dict_likerÚ agg_list_likeÚcallableÚcomÚget_cython_funcÚwarn_alias_replacementÚgetattr)rTr@rAr:r;Úfs      rEÚaggz    Apply.agg¬s­€ðh‰hˆØy‰yˆØy‰yˆØ—‘ˆä dœCÔ  Ø—>‘>Ó#Ð #ä ˜Ô Ø×%Ñ%Ó'Ð 'Ü ˜$Ô à×%Ñ%Ó'Ð 'ä DŒ>Ü×#Ñ# DÓ)ˆAÙ™¡fÜ& s¨D°!Ô4Ø&”w˜s A“Ó(Ð(ðrGcóê—|j}|j}|j}|j}|j}|j
dk(}|j |«dk(r/|rJ‚|jj|dg|¢­i|¤ŽjSt|«r\t|«sQttt|«}|r(|Dcic]}tj|«xs||“Œ}}n|Dcic]}||“Œ}}t|«r!tt |«}|j#|«Stt|«}    |j%|«}    t-|    t.t0f«r#|    j2r|j2s t+d«‚t-|    t.t0f«r%|    j4j7|j4«s t+d«‚|    Scc}wcc}w#t&$r‚t($r}
t+d«|
‚d}
~
wwxYw)aI
        Transform a DataFrame or Series.
 
        Returns
        -------
        DataFrame or Series
            Result of applying ``func`` along the given axis of the
            Series or DataFrame.
 
        Raises
        ------
        ValueError
            If the transform function fails or does not transform.
        r4rzTransform function failedNzFunction did not transform)r@rArBr:r;Úndimr<ÚTÚ    transformrrr
ÚlistrriÚget_callable_namerÚtransform_dict_likeÚtransform_str_or_callableÚ    TypeErrorÚ    ExceptionrSrcr$r"ÚemptyÚindexÚequals) rTr@rArBr:r;Ú    is_seriesÚvÚcolÚresultÚerrs            rErrzApply.transformÌsÊ€ðh‰hˆØy‰yˆØy‰yˆØy‰yˆØ—‘ˆà—H‘H ‘Mˆ    à × Ñ  Ó %¨Ò *Ù Ð  =Ø"3—5‘5—?‘? 4¨Ð<¨TÒ<°VÑ<×>Ñ>Ð >ä ˜Ô ¤l°4Ô&8Üœœ_Ñ-¨tÓ4ˆDáØBFÖG¸Qœ×-Ñ-¨aÓ0Ò5°A°qÑ8ÐGÑGà-0Ö1 c˜˜T™    Ð1Ð1ä ˜Ô Üœ¨Ó.ˆDØ×+Ñ+¨DÓ1Ð 1ô”O TÓ*ˆð    CØ×3Ñ3°DÓ9ˆFô v¤    ¬<Ð8Ô 9Ø— ’ Ø—I’IäÐ8Ó9Ð 9ô
˜&¤9¬lÐ";Ô<ÀFÇLÁL×DWÑDWØ I‰IôE
ôÐ9Ó:Ð :àˆ ùòEHùâ1øôò    Ø Üò    CÜÐ8Ó9¸sÐ Bûð    Cús$Ã!GÃ*
G
Ä3GÇG2Ç! G-Ç-G2cót—ddlm}|j}|j}|j}t |t «sJ‚t|«dk(r td«‚|jd||«}i}|j«D]2\}}|j|d¬«}    |    j|dg|¢­i|¤Ž||<Œ4||d¬«S)zC
        Compute transform in the case of a dict-like func
        r©Úconcatz$No transform functions were providedrrr4©rp©rB) Úpandas.core.reshape.concatrƒr@r:r;rcr#ÚlenrSÚnormalize_dictlike_argÚitemsÚ_gotitemrr)
rTrArƒr@r:r;ÚresultsÚnameÚhowÚcolgs
          rEruzApply.transform_dict_likesÀ€õ    6àh‰hˆØy‰yˆØ—‘ˆô˜#œzÔ*Ð*Ð*ä ˆt‹9˜Š>ÜÐCÓDÐ Dà×*Ñ*¨;¸¸TÓBˆà68ˆØŸ™›ò    D‰IˆD#Ø—<‘< ¨1<Ó-ˆDØ*˜DŸN™N¨3°ÐC°DÒC¸FÑCˆGDŠMð    Dñg AÔ&Ð&rGcól—|j}|j}|j}t|t«r|j
||g|¢­i|¤ŽS|s7|s5t j|«}|rt|||«t||««S    |j|fd|i|¤ŽS#t$r||g|¢­i|¤ŽcYSwxYw)zL
        Compute transform in the case of a string or callable func
        r:) r@r:r;rcrdÚ
_apply_strrirjrkrlrYrx)rTrAr@r:r;rms      rErvzApply.transform_str_or_callable's¿€ðh‰hˆØy‰yˆØ—‘ˆä dœCÔ  Ø"4—?‘? 3¨Ð>¨tÒ>°vÑ>Ð >á™FÜ×#Ñ# DÓ)ˆAÙÜ& s¨D°!Ô4Ø&”w˜s A“Ó(Ð(ð    .ؐ3—9‘9˜TÑ7¨Ð7°Ñ7Ð 7øÜò    .Ù˜Ð-˜dÒ- fÑ-Ò -ð    .úsÂBÂB3Â2B3có&—|jd¬«S)zŠ
        Compute aggregation in the case of a list-like argument.
 
        Returns
        -------
        Result of aggregation.
        rn©r])r^rXs rErgzApply.agg_list_like>ó€ð×*Ñ*°5Ð*Ó9Ð9rGcó\—ttt|j«}|j}g}g}|j
dk(r«|D]¢}|j |jd|¬«}    t||    «r|jg|j¢n |j}
t|    |«|g|
¢­i|¤Ž} |j| «tj|«xs|} |j| «Œ¤||fSg} t|«D]“\}}|j |d|j dd…|f¬«}    t||    «r|jg|j¢n |j}
t|    |«|g|
¢­i|¤Ž} |j| «| j|«Œ•|j"j%| «}||fS)aF
        Compute agg/apply results for like-like input.
 
        Parameters
        ----------
        op_name : {"agg", "apply"}
            Operation being performed.
        selected_obj : Series or DataFrame
            Data to perform operation on.
        kwargs : dict
            Keyword arguments to pass to the functions.
 
        Returns
        -------
        keys : list[Hashable] or Index
            Index labels for result.
        results : list
            Data for result. When aggregating with a Series, this can contain any
            Python objects.
        r4)rpÚsubsetN)r
rsrrAr@rprŠrŒÚ include_axisrBr:rlÚappendrirtÚ    enumerateÚilocÚcolumnsÚtake)rTr]Ú selected_objr;rAr@r‹ÚkeysÚarŽr:Únew_resrŒÚindicesrzr~s                rEÚcompute_list_likezApply.compute_list_likeHs´€ô4”DœÑ)¨4¯9©9Ó5ˆØh‰hˆàˆØˆð × Ñ  Ò !Øò "Ø—|‘| L×$5Ñ$5¸AÀl|ÓSô$ G¨TÔ2ð—Y‘YÐ+ §¡Ñ+àŸ™ðð
1œ' $¨Ó0°ÐD°TÒD¸VÑDØ—‘˜wÔ'ô×,Ñ,¨QÓ/Ò4°1Ø— ‘ ˜DÕ!ð "ð<Wˆ}ÐðˆGÜ'¨ Ó5ò     &‘
sØ—|‘| C¨a¸ ×8IÑ8IÊ!ÈUÈ(Ñ8S|ÓTô$ G¨TÔ2ð—Y‘YÐ+ §¡Ñ+àŸ™ðð
1œ' $¨Ó0°ÐG¸ÒGÀÑGØ—‘˜wÔ'Ø—‘˜uÕ%ð     &ð ×'Ñ'×,Ñ,¨WÓ5ˆDàWˆ}ÐrGcóԗddlm}|j}    |||dd¬«S#t$r>}ddlm}||||j ¬«}t|«r td«|‚|cYd}~Sd}~wwxYw)    Nrr‚r4F)rrBÚsort©r.©rzrŒz3cannot combine transform and aggregation operations)    r†rƒr@rwÚpandasr.rŒrrS)rTrr‹rƒr@r€r.rs        rEÚwrap_results_list_likezApply.wrap_results_list_likeŠso€õ    6àh‰hˆð     Ù˜'¨°1¸5ÔAÐ AøÜò
    õ &á˜G¨4°c·h±hÔ?ˆFÜ Ô'Ü ØIóàððMûð
    ús”       A'©3A"ÁA'Á"A'có&—|jd¬«S)zŠ
        Compute aggregation in the case of a dict-like argument.
 
        Returns
        -------
        Result of aggregation.
        rnr’)rarXs rErfzApply.agg_dict_likeŸr“rGcóÚ—ddlm}m}|j}t    |||f«}t t |j«}    |j|||    «}    |jdk(xr0|jj«t|j«k}
|jdk(rc|j|d¬«} |    j«D  cgc]\} } t| |«| fi|¤Ž‘Œ}} } t!|    j#««}||fS|sô|
ròg}g}|    j«D]×\}} |jj%|g«}|jj'|«}t)t «}t+||«D]\}}||j-|«Œ|j«Dcgc]0\}}|D]&}t|j/|d¬«|«| fi|¤Ž‘Œ(Œ2}}}}||gt|«zz }||z }ŒÙ||fS|    j«D cgc])\}} t|j|d¬«|«| fi|¤Ž‘Œ+}}} t!|    j#««}||fScc} } wcc}}}wcc} }w)aË
        Compute agg/apply results for dict-like input.
 
        Parameters
        ----------
        op_name : {"agg", "apply"}
            Operation being performed.
        selected_obj : Series or DataFrame
            Data to perform operation on.
        selection : hashable or sequence of hashables
            Used by GroupBy, Window, and Resample if selection is applied to the object.
        kwargs : dict
            Keyword arguments to pass to the functions.
 
        Returns
        -------
        keys : list[hashable]
            Index labels for result.
        results : list
            Data for result. When aggregating with a Series, this can contain any
            Python object.
        r©ÚDataFrameGroupByÚ SeriesGroupByér4r„r…)Úpandas.core.groupby.genericr«r¬r@rcr
rrArˆrpršÚnuniquer‡rŠr‰rlrsrÚget_indexer_forr›rÚzipr—Ú_ixs)rTr]rœÚ    selectionr;r«r¬r@Ú
is_groupbyrAÚis_non_unique_colrŽrDrr‹rÚkeyr ÚlabelsÚlabel_to_indicesrzÚlabelÚindiceÚkey_datas                        rEÚcompute_dict_likezApply.compute_dict_like©s“€÷:    
ð
h‰hˆÜ Ð&6¸ Ð%FÓGˆ
Ü”O T§Y¡YÓ/ˆØ×*Ñ*¨7°LÀ$ÓGˆð × Ñ  Ñ "ò KØ×$Ñ$×,Ñ,Ó.´°\×5IÑ5IÓ1JÑJð    ð
× Ñ  Ò !à—<‘<     °<Ó2ˆDØKOÏ:É:Ë<×XÁÀÀCÐ-”w˜t WÓ-¨cÑ<°VÓ<ÐXˆGÑXܘŸ    ™    › Ó$ˆDð:Wˆ}Ðñ9Ñ 1ðˆG؈DØ ŸJ™J›Lò $‘SØ&×.Ñ.×>Ñ>À¸uÓEØ%×-Ñ-×2Ñ2°7Ó;Ü#.¬tÓ#4РÜ$'¨°Ó$8ò:‘LE˜5Ø$ UÑ+×2Ñ2°5Õ9ð:ð
+;×*@Ñ*@Ó*B÷ðá&˜˜wØ")òððH”G˜L×-Ñ-¨f¸1Ð-Ó=¸wÓGÈÑVÈvÓVðØVðò𠘘¤ H£ Ñ-Ñ-Ø˜8Ñ#‘ð $ð.Wˆ}Ðð    !%§
¡
£ ÷áC˜ð<”˜Ÿ ™  S¨q˜ Ó1°7Ó;¸CÑJÀ6ÓJðˆGñô˜Ÿ    ™    › Ó$ˆDàWˆ}Ðùó=YùôùósÃIÆ#5I 
È .I'có¢—ddlm}ddlm}|j}|Dcgc]}t |t «‘Œ}}t|«r®tt||««}    |D
cgc]}
|    |
jrŒ|
‘Œ} }
| gk7r| n|} |jdk(r/|| «} | j|jj«| } t |t«rdnd} || D
cic]}
|
|    |
“Œ
c}
| | ¬«}|St!|«r t#d«‚ddlm}|jdk(rt'd    |«}|j(}nd}||||¬
«}|Scc}wcc}
wcc}
w) Nr©r-r‚r­r4)rBrzLcannot perform both aggregation and transformation operations simultaneouslyr¤r.r¥)r¦r-r†rƒr@rcr#ÚallÚdictr±ryrpÚ
_set_namesršÚnamesr$ÚanyrSr.r
rŒ)rTrœÚ result_indexÚ result_datar-rƒr@ÚrÚ
is_ndframer‹ÚkÚ keys_to_useÚkturBrr.rŒs                 rEÚwrap_results_dict_likezApply.wrap_results_dict_likeøsS€õ     !Ý5àh‰hˆð:EÖE°A”j ¤JÕ/ÐEˆ
ÐEä ˆzŒ?Üœ3˜|¨[Ó9Ó:ˆGà&2ÖK ¸'À!¹*×:JÓ:Jš1ÐKˆKÐKà)4¸Ò):™+À ˆKØ× Ñ  AÒ%á˜KÓ(Ø—‘˜|×3Ñ3×9Ñ9Ô:Ø! ä!+¨C´Ô!;™AÀˆDÙØ(3Ö4 1G˜A‘J‘Ò4ØØ ôˆFð2ˆ ô)Œ_äð!óð õ &ðx‰x˜1Š}ܘ8 SÓ)Ø—x‘x‘àá˜K¨|À$ÔGˆFàˆ ùòQFùò
Lùò5sEÁEÁ/Eà E cóp—tt|j«}|j}ddlm}m}t||d«}t|«rÆtj|«}g|j¢|j¢­}|jdk7rd|vs|dvrtd|›d«‚d|vrlt|||f«rEd}|dvr|jj}||jk7r3|j|j d<n|j|j d<|j"||g|j¢­i|j ¤ŽS)    zy
        Compute apply in case of a string.
 
        Returns
        -------
        result: Series or DataFrame
        rrªNrB)ÚcorrwithÚskewz
Operation z does not support axis=1)ÚidxmaxÚidxmin)r
rdrAr@r®r«r¬rlrhÚinspectÚgetfullargspecr:Ú
kwonlyargsrBrSrcr;r)    rTrAr@r«r¬ÚmethodÚsigÚ    arg_namesÚ default_axiss             rErezApply.apply_str.s€ô”C˜Ÿ™Ó#ˆàh‰hˆ÷    
ô˜˜d DÓ)ˆÜ FÔ Ü×(Ñ(¨Ó0ˆCØ4˜#Ÿ(™(Ð4 S§^¡^Ñ4ˆI؏y‰y˜AŠ~ؘiÑ'¨4Ð3GÑ+Gä  :¨d¨VÐ3KÐ!LÓMÐMؘÑ"ܘc MÐ3CÐ#DÔEð
$%LØÐ3Ñ3ð(,§x¡x§}¡}˜ à# t§y¡yÒ0Ø.2¯i©i˜Ÿ ™  FÒ+à*.¯)©)D—K‘K Ñ'؈t‰˜s DÐD¨4¯9©9ÒD¸¿ ¹ ÑDÐDrGcóÚ—|jdk(r td«‚|jdk(rlt|jt
«rR|jj j|jdfd|ji|j¤Žj S|j}|j}t|«r|jd¬«}n|jd¬«}t||fi|¤Ž}|S)zß
        Compute apply in case of a list-like or dict-like.
 
        Returns
        -------
        result: Series, DataFrame, or None
            Result when self.func is a list-like or dict-like, None otherwise.
        ÚnumbazIThe 'numba' engine doesn't support list-like/dict likes of callables yet.r4rr:rYr’)r8ÚNotImplementedErrorrBrcr@r"rqrYrAr:r;rrar^Úreconstruct_and_relabel_result)rTrAr;rs    rEÚapply_list_or_dict_likezApply.apply_list_or_dict_like]sˀð ;‰;˜'Ò !Ü%ð/óð ð
9‰9˜Š>œj¨¯©´<Ô@Ø#4—8‘8—:‘:×#Ñ# D§I¡I¨qÑP°t·y±yÐPÀDÇKÁKÑP×RÑRÐ Rày‰yˆØ—‘ˆä ˜Ô Ø×0Ñ0¸Ð0ÓA‰Fà×0Ñ0¸Ð0ÓAˆFä/°¸ÑGÀÑGˆàˆ rGc󌇠   —|dvsJ‚|dk(r0t|t«r td„|j«D««s td„|j«D««r t    d«‚|j
dk7rfddlm}|t|j«««j|jd    ¬
«}t|«dkDrtd t|«›d «‚tttfŠ    tˆ    fd „|j«D««r4i}|j«D]\}}t|‰    «s|g||<Œ|||<Œ|}|S)a
        Handler for dict-like argument.
 
        Ensures that necessary columns exist if obj is a DataFrame, and
        that a nested renamer is not passed. Also normalizes to all lists
        when values consists of a mix of list and non-lists.
        )rYrnrrrnc3ó8K—|]\}}t|«–—Œy­wrW)r©Ú.0rDr}s   rEú    <genexpr>z/Apply.normalize_dictlike_arg.<locals>.<genexpr>Œsèø€Ò=©¨¨1”L —OÑ=ùó‚c3ó8K—|]\}}t|«–—Œy­wrW)rrßs   rEráz/Apply.normalize_dictlike_arg.<locals>.<genexpr>sèø€Ò;¡d a¨”,˜q—/Ñ;ùrâznested renamer is not supportedr4rr¾T)r£z
Column(s) z  do not existc3ó<•K—|]\}}t|‰«–—Œy­wrW)rc)ràrDÚxÚaggregator_typess   €rEráz/Apply.normalize_dictlike_arg.<locals>.<genexpr>Ÿsøèø€ÒH±4°1°aŒz˜!Ð-×.ÑHùsƒ)rcr$rÃr‰rrpr¦r-rsrÚ
differenceršr‡ÚKeyErrorÚtuplerÀ)
rTrr@rAr-ÚcolsÚnew_funcrÈr}ræs
         @rErˆzApply.normalize_dictlike_arg|s!ø€ðÐ3Ñ3Ð3Ð3ð 5ŠLܘ3¤    Ô*ÜÑ=°·
±
³ Ô=Ô=ÜÑ;¨d¯j©j«lÔ;Ô;ä$Ð%FÓGÐ Gà 8‰8qŠ=å $᜘dŸi™i›kÓ*Ó+×6Ñ6°s·{±{ÈÐ6ÓNˆDܐ4‹y˜1Š}Ü ¬D°«J¨<°}ÐEÓFÐFä ¤%¬Ð.Ðô ÓH¸4¿:¹:»<ÔHÔ HØ(*ˆHØŸ
™
› ò $‘1Ü! !Ð%5Ô6Ø#$ #H˜Q’Kà"#H˜Q’Kð     $ð
ˆD؈ rGcó®—t|t«sJ‚t||«rTt||«}t    |«r||i|¤ŽSt |«dk(sJ‚t |Dcgc]    }|dvsŒ|‘Œ c}«dk(sJ‚|Stt |«r(t|d«rtt |«}||g|¢­i|¤ŽSd|›dt|«j›d}t|«‚cc}w)z®
        if arg is a string, then try to operate on it:
        - try to find a function (or attribute) on obj
        - try to find a numpy function
        - raise
        rr…Ú    __array__ú'z' is not a valid function for 'z' object)
rcrdÚhasattrrlrhr‡ÚnpÚtypeÚ__name__ÚAttributeError)rTr@rAr:r;rmÚkwargÚmsgs        rErzApply._apply_str©sã€ô˜$¤Ô$Ð$Ð$ä 3˜Ô ܘ˜TÓ"ˆAܘŒ{Ù˜$Ð) &Ñ)Ð)ôt“9 ’>Ð !>ܨ6ÖK %°UÀ(Ò5JšÒKÓLÐPQÒQÐ QÐQ؈HÜ ”R˜Ô ¤7¨3° Ô#<䜘DÓ!ˆAِSÐ*˜4Ò* 6Ñ*Ð *àdVÐ:¼4À»9×;MÑ;MÐ:NÈhÐWˆCÜ  Ó%Ð %ùòLs Á    CÁ!C)r@rrArr5Úboolr6ú
str | Noner7ú#Literal[False, 'compat', '_compat']r8rdr9údict[str, bool] | NoneÚreturnÚNone©rúúDataFrame | Series©r]úLiteral['agg', 'apply']rúrý)rúzDataFrame | Series | None)rúr,)r]rÿrœúSeries | DataFramer;údict[str, Any]rúz(tuple[list[Hashable] | Index, list[Any]])rúIterable[Hashable]r‹zlist[Series | DataFrame])
r]rÿrœrr³zHashable | Sequence[Hashable]r;rrúz tuple[list[Hashable], list[Any]])rœrrÄzlist[Hashable]rÅrs)rrdr@rýrArrúr)rArd)ròÚ
__module__Ú __qualname__Ú__annotations__rUÚabcÚabstractmethodrYr^rarnrrrurvrgr¡r§rfr¼rËrerÜrˆrrOrGrErIrIvsÐ…Ø
ƒMð7?ØØ04ñ!à ð!ðð!ðð    !ð
 ð !ð4ð!ðð!ð.ð!ð
ó!ðF    ×Ñò óð ð    ×Ñð Ø.ð à    ò óð ð
    ×Ñð Ø.ð à    ò óð ó
ó@AóF'ó0.ó.:ð@à(ð@ð)ð@ðð    @ð
 
2ó @ðDØ&ðØ1Ióó*:ðMà(ðMð)ðMð1ð    Mð
ð Mð
*ó Mð^4à(ð4ð%ð4ðó    4ól-Eó^ð>+Øð+Ø/ð+Ø7Fð+à    ó+ôZ&rGrI)Ú    metaclasscó`—eZdZUdZded<ed    d„«Zed    d„«Z                d
d„Z                d
d„Z    y) Ú NDFrameApplyzg
    Methods shared by FrameApply and SeriesApply but
    not GroupByApply or ResamplerWindowApply
    rýr@có.—|jjSrW)r@rzrXs rErzzNDFrameApply.indexÍs€àx‰x~‰~ÐrGcóL—|jj|j«SrW)r@Ú _get_agg_axisrBrXs rEÚagg_axiszNDFrameApply.agg_axisÑs€àx‰x×%Ñ% d§i¡iÓ0Ð0rGcóV—|j}|j}|dk(rHt|t«r |j}n#t|t
«r|jrdnd}nd}i|¥d|i¥}t |dd«dk(r td«‚|j|||«\}}|j||«}|S)    NrYrNFr7rBrr4ú"axis other than 0 is not supported)
r@r;rcr2r7Ú SeriesApplyrlrÚr¡r§)rTr]r@r;r7rr‹rs        rEr^z#NDFrameApply.agg_or_apply_list_likeÕsª€ðh‰hˆØ—‘ˆà gÒ Ü˜$¤
Ô+ØŸ™‘ä˜D¤+Ô.Ø&*§k¢k™°u‘àØ1˜Ð1 ¨&Ñ1ˆFä 3˜ Ó " aÒ 'Ü%Ð&JÓKÐ Kà×.Ñ.¨w¸¸VÓD‰ ˆˆgØ×,Ñ,¨T°7Ó;ˆØˆ rGcó —|dvsJ‚|j}i}|dk(r#|jrdnd}|jd|i«t|dd«dk(r t    d    «‚d}|j ||||«\}}|j |||«}|S)
N©rnrYrYrNFr7rBrr4r)r@r7ÚupdaterlrÚr¼rË)    rTr]r@r;r7r³rÄrÅrs             rEraz#NDFrameApply.agg_or_apply_dict_likeìs¢€ðÐ*Ñ*Ð*Ð*؏h‰hˆàˆØ gÒ Ø"&§+¢+‘Y°5ˆFØ M‰M˜8 VÐ,Ô -ä 3˜ Ó " aÒ 'Ü%Ð&JÓKÐ Kàˆ    Ø$(×$:Ñ$:Ø S˜) Vó%
Ñ!ˆ kð×,Ñ,¨S°,À ÓLˆØˆ rGN©rúr-rþ)
ròrrÚ__doc__rÚpropertyrzrr^rarOrGrEr
r
Ås_…ñð
 
Óà òóððò1óð1ðØ.ðà    óð.Ø.ðà    ôrGr
có‡—eZdZUded<ddddœ                                                            dˆfd„Zeejdd„««Zeejdd    „««Z    eejdd
„««Z
e e jej    d    d d „«««Zejd „«Zd „Zej                        d!d„«Zedd„«Zedd„«Zed„«Zd"d„Zˆfd„Zd„Zd#d„Zd$d„Zd„Zd%d„Zd„Zd!d„Zd"ˆfd„ ZˆxZ S)&r2r,r@FrKNrLc óf•—|dur|dk7rtd|›d«‚t‰
|    |||||||||    ¬«    y)NFrJzby_row=z  not allowed)r7r8r9r:r;)rSÚsuperrU) rTr@rAr5r6r7r8r9r:r;Ú    __class__s           €rErUzFrameApply.__init__sUø€ð ˜Ñ  6¨XÒ#5ܘw v h¨lÐ;Ó<Ð <Ü ‰ÑØ Ø Ø Ø ØØØ'ØØð    õ
    
rGcó—yrWrOrXs rErÄzFrameApply.result_index#ó€ð     rGcó—yrWrOrXs rEÚresult_columnszFrameApply.result_columns(rrGcó—yrWrOrXs rEÚseries_generatorzFrameApply.series_generator-rrGcó—yrWrO)rAÚnogilÚnopythonÚparallels    rEÚgenerate_numba_apply_funcz$FrameApply.generate_numba_apply_func2s€ð      rGcó—yrWrOrXs rEÚapply_with_numbazFrameApply.apply_with_numba:rZrGcóʗ|jjj«D]<\}}t|«st    d|›d|›d«‚t |«sŒ/t    d|›d«‚y)NzColumn z# must have a numeric dtype. Found 'z    ' insteadzM is backed by an extension array, which is not supported by the numba engine.)r@Údtypesr‰rrSr)rTÚcolnameÚdtypes   rEÚvalidate_values_for_numbaz$FrameApply.validate_values_for_numba>s}€à"Ÿh™hŸo™o×3Ñ3Ó5ò
    ‰NˆGUÜ# EÔ*ܠؘg˜Yð'Ø#˜W Ið/óðô(¨Õ.ܠؘg˜Yð'BðCóðñ
    rGcó—yrWrO©rTr‹Ú    res_indexs   rEÚwrap_results_for_axisz FrameApply.wrap_results_for_axisLr_rGcó—|jSrW)rrXs rEÚ res_columnszFrameApply.res_columnsTs€à×"Ñ"Ð"rGcó.—|jjSrW)r@ršrXs rEršzFrameApply.columnsXs€àx‰x×ÑÐrGcó.—|jjSrW)r@ÚvaluesrXs rEr6zFrameApply.values\s€àx‰x‰ÐrGcóv—t|j«r*|jdk(r td«‚|j    «St |j «dk(r(t |j«dk(r|j«St|jt«r*|jdk(r td«‚|j«St|jtj«r‘|jdk(r td«‚tjd¬«5|jj j#d|j¬    «}d
d
d
«|jj%|j&¬ «S|j(d k(r5|jdk(r td «‚|j+|j«St-|jj.«s|j«S|j0r'|j3|j|j4¬«S|j7«S#1swYŒæxYw)zcompute the resultsrÙz9the 'numba' engine doesn't support lists of callables yetrzJthe 'numba' engine doesn't support using a string as the callable functionzOthe 'numba' engine doesn't support using a numpy ufunc as the callable functionÚignore©r¿rY)rAN)ÚaxesrQz:the 'numba' engine doesn't support result_type='broadcast'©r8r9)rrAr8rÚrÜr‡ršrzÚapply_empty_resultrcrdrerðÚufuncÚerrstater@Ú_mgrrYÚ_constructor_from_mgrr:r6Úapply_broadcastr¿Úshaper5Ú    apply_rawr9Úapply_standard©rTr‹s  rErYzFrameApply.apply`s߀ô ˜Ÿ    ™    Ô "؏{‰{˜gÒ%Ü)ØOóðð×/Ñ/Ó1Ð 1ô ˆt|‰|Ó  Ò !¤c¨$¯*©*£o¸Ò&:Ø×*Ñ*Ó,Ð ,ô d—i‘i¤Ô %؏{‰{˜gÒ%Ü)ð8óðð—>‘>Ó#Ð #ô˜Ÿ    ™    ¤2§8¡8Ô ,؏{‰{˜gÒ%Ü)ðCóðô—‘ Ô*ñ GØŸ(™(Ÿ-™-×-Ñ-¨g¸D¿I¹IÐ-ÓF÷ Gð—8‘8×1Ñ1°'ÀÇ Á Ð1ÓMÐ Mð × Ñ ˜{Ò *؏{‰{˜gÒ%Ü)ØPóðð×'Ñ'¨¯©Ó1Ð 1ôT—X‘X—^‘^Ô$Ø×*Ñ*Ó,Ð ,ðXŠXØ—>‘>¨¯©ÀD×DVÑDV>ÓWÐ Wà×"Ñ"Ó$Ð$÷+ Gð Gús Ä2H/È/H8cóÀ•—|j}|j}|jdk(r |jn|jj|_d|_d}    t‰|«}||_||_|dk(r| |jn|}|€>|jj
|j |fd|ji|j¤Ž}|S#||_||_wxYw)Nrr4r:)    r@rBrqrrnrYrAr:r;)rTr@rBrrs    €rErnzFrameApply.agg–s¿ø€Øh‰hˆØy‰yˆð $Ÿy™y¨Aš~4—8’8°4·8±8·:±:ˆŒØˆŒ    àˆð    Ü‘W‘[“]ˆFàˆDŒH؈DŒIà 1Š9Ø!'Ð!3V—X’X¸ˆFà ˆ>Ø#T—X‘X—^‘^ D§I¡I¨tÑS¸$¿)¹)ÐSÀtÇ{Á{ÑSˆFàˆ øðˆDŒH؈DIús ÁC à Ccón—t|j«sJ‚|jdvr|jj    «S|jdk(}ddlm}|s¨    |jdk(rA|j|gtj¬«g|j¢­i|j¤Ž}nJ|j||jtj¬«g|j¢­i|j¤Ž}t||« }|rt|j «rA|j|gtj¬«g|j¢­i|j¤Ž}ntj"}|jj%||j ¬«S|jj    «S#t$rYŒ´wxYw)zµ
        we have an empty result; at least 1 axis is 0
 
        we will try to apply the function to an empty
        series in order to see if this is a reduction function
        )rPNrPrr¤©r,)rzr,©rz)rhrAr6r@Úcopyr¦r.rBrðÚfloat64r:r;ršrcrxr‡rÚnanÚ_constructor_sliced)rTÚ should_reducer.rÆs    rEr<zFrameApply.apply_empty_result­sk€ô˜Ÿ    ™    Ô"Ð"Ð"ð × Ñ Ð#3Ñ 3Ø—8‘8—=‘=“?Ð "ð×(Ñ(¨HÑ4ˆ å!áð :Ø—9‘9 ’>Ø!˜Ÿ    ™    Ù˜r¬¯©Ô4ðØ7;·y±yòØDHÇKÁKñ‘Að"˜Ÿ    ™    Ù T§\¡\¼¿¹ÔDðàŸ™òðŸ+™+ñAô%/¨q°&Ó$9Р9 á ܐ4—=‘=Ô!ؐD—I‘I™f R¬r¯z©zÔ:ÐV¸T¿Y¹YÒVÈ$Ï+É+ÑV‘ä—F‘Fà—8‘8×/Ñ/°¸¿¹Ð/ÓGÐ Gà—8‘8—=‘=“?Ð "øôò Ùð úsÁBF(Æ(    F4Æ3F4có&—d„}|dk(rO|€in|}t|jfi|¤Ž}||j|j«}t    j
|«}nSt    j ||j«|j|jg|j¢­i|j¤Ž}|jdk(r2|jj||j|j¬«S|jj||j¬«S)z$apply to the values as a numpy arraycó‡—ˆfd„}|S)z
            Wrap user supplied function to work around numpy issue.
 
            see https://github.com/numpy/numpy/issues/8352
            cón•—‰|i|¤Ž}t|t«rtj|t¬«}|S)NrH)rcrdrðÚarrayÚobject)r:r;rrAs   €rEÚwrapperz<FrameApply.apply_raw.<locals>.wrap_function.<locals>.wrapperås1ø€Ù˜tÐ. vÑ.Ü˜f¤cÔ*ÜŸX™X f´FÔ;Fؐ rGrO)rArTs` rEÚ wrap_functionz+FrameApply.apply_raw.<locals>.wrap_functionÞsø€ô ð ˆNrGrÙr­©rzršrI)r%rAr6rBrðÚsqueezeÚapply_along_axisr:r;rpr@Ú _constructorrzršrMr)rTr8r9rUÚ    nb_looperrs      rErCzFrameApply.apply_rawÛsò€ò     ð WÒ Ø"/Ð"7™B¸]ˆMô .Ø—    ‘    ñØ*ñˆIñ˜tŸ{™{¨D¯I©IÓ6ˆFä—Z‘Z Ó'‰Fä×(Ñ(Ù˜dŸi™iÓ(Ø—    ‘    Ø— ‘ ðð—‘ò    ð
—+‘+ñ ˆFð ;‰;˜!Ò Ø—8‘8×(Ñ(¨°t·z±zÈ4Ï<É<Ð(ÓXÐ Xà—8‘8×/Ñ/°¸d¿m¹mÐ/ÓLÐ LrGcó4—t|j«sJ‚tj|j«}|j
d}t |j«D]ˆ\}}|j||g|j¢­i|j¤Ž}tj|«j}|dkDr td«‚|dk(r|t|«k7r td«‚||dd…|f<ŒŠ|jj||j |j¬«}|S)Nrr4ztoo many dims to broadcastzcannot broadcast resultrV)rhrArðÚ
empty_liker6rBr˜ršr:r;ÚasarrayrprSr‡r@rYrz)    rTÚtargetÚ result_valuesÚresult_compareÚir~ÚresÚaresrs             rErAzFrameApply.apply_broadcast    sý€Ü˜Ÿ    ™    Ô"Ð"Ð"äŸ ™  f§m¡mÓ4ˆ ð Ÿ™ a™ˆä §¡Ó/ò     &‰FˆAˆsؐ$—)‘)˜F 3™KÐC¨$¯)©)ÒC°t·{±{ÑCˆCÜ—:‘:˜c“?×'Ñ'ˆDðaŠxÜ Ð!=Ó>Ð>ؐqŠyà!¤S¨£XÒ-Ü$Ð%>Ó?Ð?à"%ˆMš!˜Q˜$Ò ð     &ð—‘×&Ñ&Ø  §¡°v·~±~ð'ó
ˆðˆ rGcó’—|jdk(r|j«\}}n|j«\}}|j||«S)NrK)r8Úapply_series_generatorÚapply_series_numbaÚ wrap_resultsr/s   rErDzFrameApply.apply_standard%sI€Ø ;‰;˜(Ò "Ø!%×!<Ñ!<Ó!>Ñ ˆG‘Yà!%×!8Ñ!8Ó!:Ñ ˆGYð× Ñ  ¨)Ó4Ð4rGcóŽ—t|j«sJ‚|j}|j}i}t    dd«5t |«D]^\}}|j|g|j ¢­i|j¤Ž||<t||t«sŒG||jd¬«||<Œ`    ddd«||fS#1swY||fSxYw)Nzmode.chained_assignmentF)Údeep) rhrAr!rÄr r˜r:r;rcr$rJ)rTÚ
series_genr0r‹rar}s      rErez!FrameApply.apply_series_generator.sʀܘŸ    ™    Ô"Ð"Ð"à×*Ñ*ˆ
Ø×%Ñ%ˆ    àˆä Ð5°tÓ <ñ    =Ü! *Ó-ò =‘1à&˜TŸY™Y qÐD¨4¯9©9ÒD¸¿ ¹ ÑD˜‘
ܘg a™j¬)Õ4ð")¨¡§¡°e Ó!<G˜A’Jñ  =÷    =𘠠  Ð!Ð!÷    =𘠠  Ð!Ð!ús¾AB8ÂB8Â8Ccó.—|jjdd«r td«‚|jjj
r|j j
s td«‚|j«|j«}||jfS)Nr%FzAParallel apply is not supported when raw=False and engine='numba'zBThe index/columns must be unique when raw=False and engine='numba')
r9ÚgetrÚr@rzÚ    is_uniqueršr-r(rÄrEs  rErfzFrameApply.apply_series_numbaAs„€Ø × Ñ × !Ñ ! *¨eÔ 4Ü%ØSóð ðx‰x~‰~×'Ò'¨t¯|©|×/EÒ/EÜ%ØTóð ð     ×&Ñ&Ô(Ø×'Ñ'Ó)ˆØ˜×)Ñ)Ð)Ð)rGcó—ddlm}t|«dkDr$d|vr t|d«r|j    ||«S|j
j }t|«dk(r||ur||tj¬«}n||«}||_    |S)Nrr¤rH)
r¦r.r‡rr1r@rMrðrKrz)rTr‹r0r.Úconstructor_slicedrs      rErgzFrameApply.wrap_resultsNsƒ€Ý!ô ˆw‹<˜!Ò   W¡ ´¸WÀQ¹ZÔ1HØ×-Ñ-¨g°yÓAÐ Að"ŸX™X×9Ñ9ÐÜ ˆw‹<˜1Ò Ð!3°vÑ!=Ù'¨´r·z±zÔB‰Fá'¨Ó0ˆFØ ˆŒ àˆ rGcó•—|jdk(rB|j}|j|j}|j    ||j
¬«St ‰|«S)NÚsizerI)rAr@rBrBrMrrre)rTr@Úvaluers   €rErezFrameApply.apply_strcsTø€ð 9‰9˜Ò à—(‘(ˆCØ—I‘I˜dŸi™iÑ(ˆEØ×*Ñ*¨5¸¿ ¹ Ð*ÓFÐ F܉wÑ Ó"Ð"rG)r@rrArr5rör6r÷r7úLiteral[False, 'compat']r8rdr9rùrúrûr©rúzGenerator[Series, None, None]©TTF©rúz5Callable[[npt.NDArray, Index, Index], dict[int, Any]]©r‹ÚResTyper0r-rúrýrü)rKN©r^r,rúr,)rúztuple[ResType, Index])!ròrrrrUrrrrÄrr!Ú staticmethodÚ    functoolsÚcacher&r(r-r1r3ršrr6rYrnr<rCrArDrerfrgreÚ __classcell__©rs@rEr2r2sÍø…Ø    ƒNð,1ØØ04ñ
à ð
ðð
ðð    
ð
 ð 
ð)ð
ðð
ð.ð
ð
õ
ð<Ø×Ñò óóð ðØ×Ñò óóð ðØ×Ñò óóð ð؇__Ø×Ñà27ð à    >ò óóóð ð
    ×Ññ óð ò ð    ×Ñð Øð Ø+0ð à    ò óð ðò#óð#ðò óð ðñóðó4%ôlò.,#ó\,Mó\ò85ó"ò& *ó÷*#ñ#rGcó¤—eZdZUdZded<ed d„«Zeej    d     d d„««Z
dd„Z edd„«Z edd„«Z                         dd    „Zy
)r=rrrBcóR‡—ˆfd„tt‰j««D«S)Nc3óX•K—|]!}‰jj|d¬«–—Œ#y­w)r4r…N)r@r²)ràrarTs  €rEráz1FrameRowApply.series_generator.<locals>.<genexpr>ss"øèø€ÒK¨Q—‘— ‘ ˜a a ×(ÑKùsƒ'*)Úranger‡ršrXs`rEr!zFrameRowApply.series_generatorqsø€ãK´%¼¸D¿L¹LÓ8IÓ2JÔKÐKrGc󬇇‡—td«}ddlmŠddlmŠ|j
j |«Š|j|||¬«ˆˆˆfd„«}|S)NrÙrr¤©Úmaybe_cast_str©r#r$r%c    ó’•—i}t|jd«D](}‰|dd…|f|‰||«¬«}‰|«||<Œ*|S)Nr4r¥)r‚rB)    r6Ú    col_namesÚdf_indexr‹ÚjÚserr.Ú
jitted_udfr…s          €€€rEÚ
numba_funcz;FrameRowApply.generate_numba_apply_func.<locals>.numba_func…s]ø€àˆGܘ6Ÿ<™<¨™?Ó+ò -áØš1˜a˜4‘L¨±~ÀiÐPQÁlÓ7Sôñ(¨›_˜’
ð  -ð ˆNrG©rr¦r.Úpandas.core._numba.extensionsr…Ú    extendingÚregister_jitableÚjit©    rAr#r$r%rÙrr.rŒr…s          @@@rEr&z'FrameRowApply.generate_numba_apply_funcusXú€ô
+¨7Ó3ˆÝ!õ    Aà—_‘_×5Ñ5°dÓ;ˆ
ð
‰˜¨¸HˆÓ    Eõ    ó
Fð    ðÐrGc    ó„—|jtt|j«fi|j¤Ž}ddlm}|jj}|jj}||«5}||«5}t||j||««}ddd«ddd«S#1swYŒxYw#1swYSxYw©Nr)Úset_numba_data© r&r
rrAr9rr–r@rzršrÀr6©rTÚnb_funcr–rzršrbs      rEr(zFrameRowApply.apply_with_numba’s­€Ø0$×0Ñ0Ü ”˜4Ÿ9™9Ó %ñ
Ø)-×);Ñ);ñ
ˆõ    Aà—‘—‘ˆØ—(‘(×"Ñ"ˆñ˜EÓ "ð    = e©^¸GÓ-Dð    =ÈÜ‘w˜tŸ{™{¨G°UÓ;Ó<ˆC÷    =÷    =àˆ
÷    =ð    =ú÷    =àˆ
ús$Á0    B5Á9B)ÂB5Â)B2    Â.B5Â5B?có—|jSrW©ršrXs rErÄzFrameRowApply.result_index¡ó €à|‰|ÐrGcó—|jSrWrIrXs rErzFrameRowApply.result_columns¥ó €àz‰zÐrGcóÄ—|jdk(r$|jj|«}||_|S|j€Dt    d„|j «D««r$|jj|«}||_|S    |jj |¬«}t|dt«s<t|j«t|j«k(r|j|_t|j«t|«k(r||_ |S#t$r<}dt|«vr)|jj|«}||_|cYd}~S‚d}~wwxYw)zreturn the results for the rowsrPNc3ó<K—|]}t|t«–—Œy­wrW)rcrÀ)ràrås  rEráz6FrameRowApply.wrap_results_for_axis.<locals>.<genexpr>´sèø€ò.
Ø$%ŒJqœ$× ñ.
ùs‚©Údataz%All arrays must be of the same lengthr)r6r@rMrzr¿r6rYrSrdrcr$r‡r3rš)rTr‹r0rbrr€s      rEr1z#FrameRowApply.wrap_results_for_axis©s4€ð
× Ñ ˜xÒ 'à—(‘(×.Ñ.¨wÓ7ˆCØ!ˆCŒI؈Jà × Ñ Ð %¬#ñ.
Ø)0¯©Ó)9ô.
ô+
ð
—(‘(×.Ñ.¨wÓ7ˆCØ!ˆCŒI؈Jð
    Ø—X‘X×*Ñ*°Ð*Ó8ˆFô˜' !™*¤iÔ0ܐ6—<‘<Ó ¤C¨×(8Ñ(8Ó$9Ò9Ø#×/Ñ/” ä ˆv~‰~Ó ¤# i£.Ò 0Ø&ˆFŒNàˆ øô#ò    Ø6¼#¸c»(ÑBð—h‘h×2Ñ2°7Ó;Ø%”    Ø•
àûð    ús$ÂDÄ    EÄ#0EÅEÅEÅENrtrurv©rúzdict[int, Any]rrw)ròrrrBrrr!rzr{r|r&r(rÄrr1rOrGrEr=r=ns•…Ø€Dˆ'Óà òLóðLð؇__à27ðà    >òóóðó6 ðòóððòóðð'Øð'Ø+0ð'à    ô'rGr=cóÀ‡—eZdZUdZded<d ˆfd„ Zed d„«Zee    j    d    dd„««Z dd„Z edd„«Z edd    „«Z                        dd
„Zdd „ZˆxZS)r>r4rrBcóN•—t‰||j«}|jSrW)rrArq)rTr^rrs   €rErAz FrameColumnApply.apply_broadcastÖsø€Ü‘Ñ(¨¯©Ó2ˆØx‰xˆrGc#óžK—|j}t|«}t|«dkDsJ‚|jj    dd¬«}|j
}|j djj«}t|jt«r;|j}tt|««D]}|j    |d¬«–—Œyt||j«D]d\}}||_|j|«t j#|d|«|s*t%|j d«|j d_|–—Œfy­w)Nrr…Ú_name)r6r&r‡r@r²r?ÚblocksÚrefsÚ has_referencercr,r!r‚r±rzÚ
set_valuesrSÚ __setattr__r )    rTr6r‹ÚmgrÚis_viewr@raÚarrrŒs             rEr!z!FrameColumnApply.series_generatorÚsèø€à—‘ˆÜ/°Ó7ˆÜ6‹{˜QŠÐˆðh‰hm‰m˜A AˆmÓ&ˆØh‰hˆà—*‘*˜Q‘-×$Ñ$×2Ñ2Ó4ˆä c—i‘i¤Ô 0ð—(‘(ˆCÜœ3˜s›8“_ò *Ø—h‘h˜q qhÓ)Ó)ñ *ô! ¨¯©Ó4ò ‘    Tà”Ø—‘˜sÔ#Ü×"Ñ" 3¨°Ô6Ùô*9¸¿¹ÀA¹Ó)GC—J‘J˜q‘MÔ&Ø“    ñ ùs‚E E c󬇇‡—td«}ddlmŠddlmŠ|j
j |«Š|j|||¬«ˆˆˆfd„«}|S)NrÙrr¤r„r†c    ó¦•—i}t|jd«D]2}‰||j«|‰||«¬«}‰|«||<Œ4|S)Nrr¥)r‚rBrJ)    r6Úcol_names_indexrzr‹rar‹r.rŒr…s          €€€rErz>FrameColumnApply.generate_numba_apply_func.<locals>.numba_func    seø€àˆGô˜6Ÿ<™<¨™?Ó+ò -ñؘ1‘I—N‘NÓ$Ø)Ù'¨¨a©Ó1ôñ
(¨›_˜’
ð -ðˆNrGrŽr“s          @@@rEr&z*FrameColumnApply.generate_numba_apply_funcþsSú€ô
+¨7Ó3ˆÝ!Ý@à—_‘_×5Ñ5°dÓ;ˆ
à    ‰˜¨¸HˆÓ    Eõ    ó
Fð    ð ÐrGc    óh—|jtt|j«fi|j¤Ž}ddlm}||jj«5}||j«5}t||j||««}ddd«ddd«S#1swYŒxYw#1swYSxYwr•r—r˜s      rEr(z!FrameColumnApply.apply_with_numbas¥€Ø0$×0Ñ0Ü ”˜4Ÿ9™9Ó %ñ
Ø)-×);Ñ);ñ
ˆõ    Añ˜DŸH™HŸN™NÓ +ð    =¨u±nØ L‰Ló7
ð    =à Ü‘w˜tŸ{™{¨G°UÓ;Ó<ˆC÷    =÷    =ð
ˆ
÷     =ð    =ú÷    =ð
ˆ
ús$ÁB'Á+B    B'ÂB$    Â B'Â'B1có—|jSrWrIrXs rErÄzFrameColumnApply.result_index,ržrGcó—|jSrWr›rXs rErzFrameColumnApply.result_columns0rœrGcóޗ|jdk(r|j||«}|St|dt«s$|jj |«}||_|S|j||«}|S)z"return the results for the columnsrRr)r6Úinfer_to_same_shapercr$r@rMrz©rTr‹r0rs    rEr1z&FrameColumnApply.wrap_results_for_axis4sv€ð × Ñ ˜xÒ 'Ø×-Ñ-¨g°yÓAˆFðˆ ô˜G A™J¬    Ô2Ø—X‘X×1Ñ1°'Ó:ˆFØ$ˆFŒLð ˆ ð×-Ñ-¨g°yÓAˆFàˆ rGcóˆ—|jj|¬«}|j}||_|j    d¬«}|S)z7infer the results to the same shape as the input objectr¡F©rJ)r@rYrqrzÚ infer_objectsr¸s    rEr·z$FrameColumnApply.infer_to_same_shapeIsE€à—‘×&Ñ&¨GÐ&Ó4ˆØ—‘ˆð!ˆŒ ð×%Ñ%¨5Ð%Ó1ˆàˆ rGryrtrurvr£rrw)r‹rxr0r-rúr,)ròrrrBrrArr!rzr{r|r&r(rÄrr1r·r}r~s@rEr>r>Ós¡ø…Ø€Dˆ'Óõðò!óð!ðF؇__à27ðà    >òóóðó8ð òóððòóððØðØ+0ðà    ó÷* rGr>c󚇗eZdZUded<dZded<ded<ej dd    œ                                    dˆfd
„Zdd „Zˆfd „Z    dd „Z
d„Z dd„Z ˆxZ S)rr.r@rrrBrør7rJ)Ú convert_dtyper7c    ó²•—|tjurd}n$tjdtt «¬«||_t‰|!||dd|||¬«y)NTz¢the convert_dtype parameter is deprecated and will be removed in a future version.  Do ``ser.astype(object).apply()`` instead if you want ``convert_dtype=False``.©Ú
stacklevelF)r5r6r7r:r;)    r Ú
no_defaultÚwarningsÚwarnÚ FutureWarningrr½rrU)rTr@rAr½r7r:r;rs       €rErUzSeriesApply.__init__\scø€ð œCŸN™NÑ *Ø ‰Mä M‰Mð?ôÜ+Ó-õ  ð+ˆÔä ‰ÑØ Ø ØØØØØð    õ    
rGcóR—|j}t|«dk(r|j«St|j«r|j «St |jt«r|j«S|jdk(r|j«S|j«S)NrrN) r@r‡r<rrArÜrcrdrer7Ú apply_compatrD©rTr@s  rErYzSeriesApply.apply|s‰€Øh‰hˆä ˆs‹8qŠ=Ø×*Ñ*Ó,Ð ,ô ˜Ÿ    ™    Ô "Ø×/Ñ/Ó1Ð 1ä d—i‘i¤Ô %à—>‘>Ó#Ð #à ;‰;˜)Ò #Ø×$Ñ$Ó&Ð &ð×"Ñ"Ó$Ð$rGcóì•—t‰|«}|€§|j}|j}t    |«sJ‚    |j
|fd|j i|j¤Ž}d|›dt|«j›dt|«j›d}tj|tt«¬«|S|S#ttt f$r$||g|j ¢­i|j¤Ž}Y|SwxYw)Nr:zusing z in z3.agg cannot aggregate and has been deprecated. Use z&.transform to keep behavior unchanged.r¿)rrnr@rArhrYr:r;rñròrÂrÃrÄrrSrórw)rTrr@rArõrs     €rErnzSeriesApply.aggsòø€Ü‘‘“ˆØ ˆ>Ø—(‘(ˆCØ—9‘9ˆDä˜D”>Ð !>ð
 
QØ"˜Ÿ™ 4ÑG¨d¯i©iÐG¸4¿;¹;ÑGð
˜T˜F $¤t¨C£y×'9Ñ'9Ð&:ð;0Ü04°S³    ×0BÑ0BÐ/CðD/ð0ðô
— ‘ ˜c¤=Ô=MÓ=OÕPàˆ ˆvˆ øô¤´    Ð:ò >Ù˜cÐ= D§I¡IÒ=°·±Ñ=‘ðˆ ð >ús¸)B;Â;4C3Ã2C3cóŠ—|j}|j|j|j¬«j    |d¬«S)N)r,rzrY©rÔ)r@rYr,rzÚ __finalize__rÇs  rEr<zSeriesApply.apply_empty_result©sA€Øh‰hˆØ×Ñ c§i¡i°s·y±yÐÓA×NÑNØ ˜ðOó
ð    
rGcóT—|j}|j}t|«rBtj|«}|r+|j
s|j s|j|d¬«S    |j|d¬«}|S#tttf$r|j|d¬«}Y|SwxYw)zõcompat apply method for funcs in listlikes and dictlikes.
 
         Used for each callable when giving listlikes and dictlikes of callables to
         apply. Needed for compatibility with Pandas < v2.1.
 
        .. versionadded:: 2.1.0
        F)r7rJ) r@rArhrirjr:r;rYrSrórw)rTr@rArmrs     rErÆzSeriesApply.apply_compat¯sœ€ðh‰hˆØy‰yˆä DŒ>Ü×#Ñ# DÓ)ˆAÙ˜Ÿš¨4¯;ª;Ø—y‘y ¨eyÓ4Ð4ð    3Ø—Y‘Y˜t¨HYÓ5ˆFðˆ øôœN¬IÐ6ò    3Ø—Y‘Y˜t¨EYÓ2‰F؈ ð    3úsÁ'A<Á<'B'Â&B'c󇇗tt‰j«Š‰j}t    ‰t
j «r@t jd¬«5‰|g‰j¢­i‰j¤Žcddd«S‰js ‰|g‰j¢­i‰j¤ŽS‰js ‰jrˆˆfd„}n‰}t    |jt«rdnd}|j||‰j¬«}t|«r9t    |dt «r&|j#t%|«|j&¬«S|j)||j&¬«j+|d¬«S#1swYŒØxYw)    Nr8r9cóD•—‰|g‰j¢­i‰j¤ŽSrW)r:r;)rårArTs €€rEÚcurriedz+SeriesApply.apply_standard.<locals>.curriedÒs ø€Ù˜AÐ9 §    ¡    Ò9¨T¯[©[Ñ9Ð9rG)ÚmapperÚ    na_actionÚconvertrrIrYrÊ)r
rrAr@rcrðr=r>r:r;r7r,r Ú _map_valuesr½r‡r$Ú_constructor_expanddimrsrzrYrË)rTr@rÏÚactionÚmappedrAs`    @rErDzSeriesApply.apply_standardÅsFù€ä”H˜dŸi™iÓ(ˆØh‰hˆä dœBŸH™HÔ %Ü—‘ Ô*ñ <Ù˜CÐ; $§)¡)Ò;¨t¯{©{Ñ;÷ <ñ <à—’Ù˜Ð7˜dŸi™iÒ7¨4¯;©;Ñ7Ð 7à 9Š9˜Ÿ š ö :ðˆGô(¨¯    ©    Ô3CÔD‘È$ˆØ—‘Ø f°d×6HÑ6Hð!ó
ˆô ˆvŒ;œ: f¨Q¡i´Ô;ð×-Ñ-¬d°6«lÀ#Ç)Á)Ð-ÓLÐ Là×#Ñ# F°#·)±)Ð#Ó<×IÑIؘGðJóð ÷9 <ð <ús Á E>Å>F)
r@r.rArr½zbool | lib.NoDefaultr7rørúrûrü)rúr.)ròrrrrBr rÁrUrYrnr<rÆrDr}r~s@rErrWssø…Ø    ƒKØ€Dˆ'ÓØ /Ó/ð/2¯n©nØ6>ñ 
à ð
ðð
ð
,ð 
ð 4ð 
ð
õ
ó@%ô(ó2
ò ÷,$rGrcód‡—eZdZUded<                        dˆfd„ Zd„Zd„Z                d    d„Z                d    d„ZˆxZ    S)
Ú GroupByApplyz GroupBy | Resampler | BaseWindowr@có°•—|j«}|jj|jdd««|_t
‰|||dd||¬«y)NrBrF©r5r6r:r;)rJr@r<rlrBrrU©rTr@rAr:r;rs     €rErUzGroupByApply.__init__ïsUø€ð—‘“ˆØ—G‘G×,Ñ,¨V¯Z©Z¸ÀÓ-BÓCˆŒ    Ü ‰ÑØ Ø ØØØØð     õ    
rGcó—t‚rW©rÚrXs rErYzGroupByApply.applyó€Ü!Ð!rGcó—t‚rWrÝrXs rErrzGroupByApply.transformrÞrGc    óª—|j}|j}|dk(ri|¥ddi¥}t|dd«dk(r td«‚|jj
dk(r |j}n |j }tj|dd    t|d«¬
«5|j|||«\}}ddd«|j«}|S#1swYŒxYw) NrYr7FrBrr4rÚas_indexT©Ú    condition) r@r;rlrÚÚ _selected_objrpÚ_obj_with_exclusionsriÚ temp_setattrrïr¡r§)rTr]r@r;rœrr‹rs        rEr^z#GroupByApply.agg_or_apply_list_likesâ€ðh‰hˆØ—‘ˆØ gÒ Ø0˜Ð0 ¨%Ñ0ˆFä 3˜ Ó " aÒ 'Ü%Ð&JÓKÐ Kà × Ñ × !Ñ ! QÒ &à×,Ñ,‰Là×3Ñ3ˆLô× Ñ Ø ˜T¬W°S¸*Ó-Eô
ñ    Rð!×2Ñ2°7¸LÈ&ÓQ‰MˆD'÷    Rð×,Ñ,¨T°7Ó;ˆØˆ ÷     Rð    Rús ÂC    à   Cc    óp—ddlm}m}|dvsJ‚|j}i}|dk(r#|jrdnd}|j d|i«t |dd«d    k(r td
«‚|j}|j}t|||f«}    |    rL|jjd d«}
|jjd d«} |j |
| d œ«tj|ddt|d«¬«5|j!||||«\} } ddd«|j#|  «}|S#1swYŒxYw)NrrªrrYrNFr7rBr4rr8r9r;ráTrâ)r®r«r¬r@r7rrlrÚräÚ
_selectionrcr;rlrirærïr¼rË)rTr]r«r¬r@r;r7rœr³r´r8r9rÄrÅrs               rEraz#GroupByApply.agg_or_apply_dict_like"s;€÷    
ð
Ð*Ñ*Ð*Ð*àh‰hˆØˆØ gÒ Ø"&§+¢+‘Y°5ˆFØ M‰M˜8 VÐ,Ô -ä 3˜ Ó " aÒ 'Ü%Ð&JÓKÐ Kà×(Ñ(ˆ Ø—N‘Nˆ    ä Ð&6¸ Ð%FÓGˆ
ñ Ø—[‘[—_‘_ X¨tÓ4ˆFØ ŸK™KŸO™O¨O¸TÓBˆMØ M‰M V¸mÑLÔ Mä × Ñ Ø ˜T¬W°S¸*Ó-Eô
ñ    ð)-×(>Ñ(>ؘ y°&ó)Ñ %ˆL˜+÷    ð ×,Ñ,¨\¸<ÈÓUˆØˆ ÷    ð    ús Ã7D,Ä,D5)r@zGroupBy[NDFrameT]rArrúrûrþ)
ròrrrrUrYrrr^rar}r~s@rErØrØìs^ø…Ø    )Ó)ð
à ð
ðð
ð
õ
ò&"ò"ðØ.ðà    óð4%Ø.ð%à    ÷%rGrØcóR‡—eZdZUdZded<ded<                        d    ˆfd„ Zd„Zd„ZˆxZS)
ÚResamplerWindowApplyrrrBúResampler | BaseWindowr@có8•—tt| ||dd||¬«y)NFrÚ)rrØrUrÛs     €rErUzResamplerWindowApply.__init__Ns+ø€ô    Œl˜DÑ*Ø Ø ØØØØð     +õ    
rGcó—t‚rWrÝrXs rErYzResamplerWindowApply.apply_rÞrGcó—t‚rWrÝrXs rErrzResamplerWindowApply.transformbrÞrG)r@rërArrúrû)    ròrrrBrrUrYrrr}r~s@rErêrêJs>ø…Ø€Dˆ'ÓØ    Óð
à #ð
ðð
ð
õ
ò""ö"rGrêc óö—|duxr tdi|¤Ž}d}d}|sHt|t«r+t|«tt    |««kDr t d«‚|€ t d«‚|rt|«\}}}|€J‚||||fS)aÆ
    This is the internal function to reconstruct func given if there is relabeling
    or not and also normalize the keyword to get new order of columns.
 
    If named aggregation is applied, `func` will be None, and kwargs contains the
    column and aggregation function information to be parsed;
    If named aggregation is not applied, `func` is either string (e.g. 'min') or
    Callable, or list of them (e.g. ['min', np.max]), or the dictionary of column name
    and str/Callable/list of them (e.g. {'A': 'min'}, or {'A': [np.min, lambda x: x]})
 
    If relabeling is True, will return relabeling, reconstructed func, column
    names, and the reconstructed order of columns.
    If relabeling is False, the columns and order will be None.
 
    Parameters
    ----------
    func: agg function (e.g. 'min' or Callable) or list of agg functions
        (e.g. ['min', np.max]) or dictionary (e.g. {'A': ['min', np.max]}).
    **kwargs: dict, kwargs used in is_multi_agg_with_relabel and
        normalize_keyword_aggregation function for relabelling
 
    Returns
    -------
    relabelling: bool, if there is relabelling or not
    func: normalized and mangled func
    columns: tuple of column names
    order: array of columns indices
 
    Examples
    --------
    >>> reconstruct_func(None, **{"foo": ("col", "min")})
    (True, defaultdict(<class 'list'>, {'col': ['min']}), ('foo',), array([0]))
 
    >>> reconstruct_func("min")
    (False, 'min', None, None)
    NzFFunction names must be unique if there is no new column names assignedz4Must provide 'func' or tuples of '(column, aggfunc).rO)Úis_multi_agg_with_relabelrcrsr‡ÚsetrrwÚnormalize_keyword_aggregation)rAr;Ú
relabelingršÚorders     rEr?r?fs£€ðN˜ÒEÔ";Ñ"E¸fÑ"E€JØ&*€GØ)-€Eá Ü dœDÔ !¤c¨$£i´#´c¸$³i³.Ò&@ô%ðóð ð ˆ<äÐRÓSÐ Sáô  =Ø ó 
шˆguð Ð ÐÐ à t˜W eÐ +Ð+rGc ób—td„|j«D««xrt|«dkDS)ax
    Check whether kwargs passed to .agg look like multi-agg with relabeling.
 
    Parameters
    ----------
    **kwargs : dict
 
    Returns
    -------
    bool
 
    Examples
    --------
    >>> is_multi_agg_with_relabel(a="max")
    False
    >>> is_multi_agg_with_relabel(a_max=("a", "max"), a_min=("a", "min"))
    True
    >>> is_multi_agg_with_relabel()
    False
    c3ó\K—|]$}t|t«xrt|«dk(–—Œ&y­w)r­N)rcrér‡)ràr}s  rEráz,is_multi_agg_with_relabel.<locals>.<genexpr>Às'èø€ÒM¸Œz˜!œUÓ#Ò3¬¨A«°!© Ó3ÑMùs‚*,r)r¿r6r‡)r;s rErðrð«s-€ô* ÑM¸V¿]¹]»_ÔMÓ Mò Ü ˆF‹ a‰ðrGc
óþ—ddlm}tt«}g}tt    |j «Ž«\}}|D]C\}}||j |«|j |tj|«xs|f«ŒEt|«}|j «D    cgc]'\}}    |    D]}|tj|«xs|f‘ŒŒ)}
}    }}t|
«} || «j|«} ||| fScc}}    }w)aR
    Normalize user-provided "named aggregation" kwargs.
    Transforms from the new ``Mapping[str, NamedAgg]`` style kwargs
    to the old Dict[str, List[scalar]]].
 
    Parameters
    ----------
    kwargs : dict
 
    Returns
    -------
    aggspec : dict
        The transformed kwargs.
    columns : tuple[str, ...]
        The user-provided keys.
    col_idx_order : List[int]
        List of columns indices.
 
    Examples
    --------
    >>> normalize_keyword_aggregation({"output": ("input", "sum")})
    (defaultdict(<class 'list'>, {'input': ['sum']}), ('output',), array([0]))
    rr¾) Úpandas.core.indexes.baser-rrsr±r‰r—rirtÚ_make_unique_kwarg_listÚ get_indexer) r;r-ÚaggspecrôršÚpairsÚcolumnÚaggfuncÚuniquified_orderÚaggfuncsÚ aggspec_orderÚuniquified_aggspecÚ col_idx_orders              rEròròÅs€õ</ô
œ$Ó€GØ €EÜœ#˜vŸ|™|›~Ð.Ó/N€GˆUà òJ‰ˆØ‰×јwÔ'Ø  ‰ fœc×3Ñ3°GÓ<ÒGÀÐHÕIðJô
/¨uÓ5Ðð!(§ ¡ £÷ðá ˆFHØòð ð
”×&Ñ& wÓ/Ò:°7Ò;ðØ;ð€Mòô
1°Ó?ÐñÐ,Ó-×9Ñ9Ð:JÓK€MØ G˜]Ð *Ð*ùôsÂ!,C8c
ó´—t|«Dcgc]<\}}|j|«dkDr!|d|d›d|d|j|«›fn|‘Œ>c}}Scc}}w)a
    Uniquify aggfunc name of the pairs in the order list
 
    Examples:
    --------
    >>> kwarg_list = [('a', '<lambda>'), ('a', '<lambda>'), ('b', '<lambda>')]
    >>> _make_unique_kwarg_list(kwarg_list)
    [('a', '<lambda>_0'), ('a', '<lambda>_1'), ('b', '<lambda>')]
    r4rrDN)r˜Úcount)ÚseqraÚpairs   rErùrùsi€ô! “~÷ á ˆAˆtð:=¿¹À4»È1Ò9Lˆˆa‰T˜!‘WI˜Q˜s 2 A˜wŸ}™}¨TÓ2Ð3Ð4Ñ5ÐRVÑVó ðùó sAAcój—ddlm}tt||«d„¬«Dcgc]}|d‘Œ    }}i}d}t    |t
« xrt |j«dkD}    |j«D]¸\}
} ||
j«} |    rd| D cgc])} t    | t«stj| «n| ‘Œ+} } || j«j| «}| j|} |||t | «z| _ | j!|d¬«||
<|t | «z}Œº|Scc}wcc} w)aº
    Internal function to reorder result if relabelling is True for
    dataframe.agg, and return the reordered result in dict.
 
    Parameters:
    ----------
    result: Result from aggregation
    func: Dict of (column name, funcs)
    columns: New columns name for relabelling
    order: New order for relabelling
 
    Examples
    --------
    >>> from pandas.core.apply import relabel_result
    >>> result = pd.DataFrame(
    ...     {"A": [np.nan, 2, np.nan], "C": [6, np.nan, np.nan], "B": [np.nan, 4, 2.5]},
    ...     index=["max", "mean", "min"]
    ... )
    >>> funcs = {"A": ["max"], "C": ["max"], "B": ["mean", "min"]}
    >>> columns = ("foo", "aab", "bar", "dat")
    >>> order = [0, 1, 2, 3]
    >>> result_in_dict = relabel_result(result, funcs, columns, order)
    >>> pd.DataFrame(result_in_dict, index=columns)
           A    C    B
    foo  2.0  NaN  NaN
    aab  NaN  6.0  NaN
    bar  NaN  NaN  4.0
    dat  NaN  NaN  2.5
    rr¾có —|dS)Nr4rO)Úts rEú<lambda>z relabel_result.<locals>.<lambda>:s
€ÀaÈÁd€rG)r¶r4Frº)rør-Úsortedr±rcr$r‡ršr‰Údropnardrirtrzrúr™Úreindex)rrAršrôr-rÚreordered_indexesÚreordered_result_in_dictÚidxÚ reorder_maskr~ÚfunÚsrmrs               rEÚrelabel_resultrsC€õF/ô#¤3 w°Ó#6¹NÔKö؈ˆQ‹ðÐðð8:ÐØ
€Cä! &¬)Ó4Ð4ÒP¼¸V¿^¹^Ó9LÈqÑ9P€LØ—J‘J“Lò"‰ˆˆSØ 3‰K× Ñ Ó  ˆñ, àSVöØNO´
¸1¼cÔ0B”×%Ñ% aÔ(ÈÑIðˆCðñ" !§'¡'›N×6Ñ6°sÓ;ˆMØ—‘}Ñ%ˆAð$ C¨#´°C³©.Ð9ˆŒØ()¯    ©    °'À¨    Ó(FР Ñ%Ø”C˜“H‰n‰ðE"ðF $Ð#ùòUùò>s ¡ D+ .D0c óx—ddlm}t|fi|¤Ž\}}}}|r |€J‚|€J‚t||||«}|||¬«}|S)Nr)r,rI)r¦r,r?r)rrAr;r,róršrôÚresult_in_dicts        rErÛrÛfs[€Ý ä'7¸Ñ'GÀÑ'GÑ$€Jg˜uáð Ð"Ð"Ð"ØÐ Ð Ð ä'¨°°g¸uÓEˆÙ˜>°Ô9ˆà €MrGcóėt|«dkr|Sd}g}|D]F}tj|«dk(rt|«}d|›d|_|dz }|j |«ŒH|S)aJ
    Possibly mangle a list of aggfuncs.
 
    Parameters
    ----------
    aggfuncs : Sequence
 
    Returns
    -------
    mangled: list-like
        A new AggSpec sequence, where lambdas have been converted
        to have unique names.
 
    Notes
    -----
    If just one aggfunc is passed, the name will not be mangled.
    r4rz<lambda>z<lambda_ú>)r‡rirtrròr—)rraÚmangled_aggfuncsrþs    rEÚ_managle_lambda_listrs{€ô$ ˆ8ƒ}˜ÒàˆØ    €AØÐØò)ˆÜ ×  Ñ   Ó )¨ZÒ 7ܘgÓ&ˆGØ!)¨!¨¨A˜ˆGÔ Ø ‰FˆAØ×Ñ Õ(ð )ð ÐrGcóú—t|«}|s t|«s|St|««}|rC|j«D].\}}t|«rt|«s t    |«}n|}|||<Œ0|St    |«}|S)aZ
    Make new lambdas with unique names.
 
    Parameters
    ----------
    agg_spec : Any
        An argument to GroupBy.agg.
        Non-dict-like `agg_spec` are pass through as is.
        For dict-like `agg_spec` a new spec is returned
        with name-mangled lambdas.
 
    Returns
    -------
    mangled : Any
        Same type as the input.
 
    Examples
    --------
    >>> maybe_mangle_lambdas('sum')
    'sum'
    >>> maybe_mangle_lambdas([lambda: 1, lambda: 2])  # doctest: +SKIP
    [<function __main__.<lambda_0>,
     <function pandas...._make_lambda.<locals>.f(*args, **kwargs)>]
    )rrrñr‰r)Úagg_specÚis_dictÚmangled_aggspecr¶rrs      rEÚmaybe_mangle_lambdasr ¢sŒ€ô2˜8Ó$€GÙ ”| HÔ-؈Ø$”d˜8“nÓ&€OáØ%Ÿ^™^Ó-ò    4‰MˆCÜ˜HÔ%¬l¸8Ô.DÜ#7¸Ó#AÑ à#+Рà#3ˆO˜CÒ  ð     4ð Ðô/¨xÓ8ˆà ÐrGcó"—d}t|«}g}|j«D][}t|t«s8t    |«s-t |j t|«j««‚|j|«Œ]|s d}t |«‚||fS)aÜ
    Validates types of user-provided "named aggregation" kwargs.
    `TypeError` is raised if aggfunc is not `str` or callable.
 
    Parameters
    ----------
    kwargs : dict
 
    Returns
    -------
    columns : List[str]
        List of user-provided keys.
    func : List[Union[str, callable[...,Any]]]
        List of user-provided aggfuncs
 
    Examples
    --------
    >>> validate_func_kwargs({'one': 'min', 'two': 'max'})
    (['one', 'two'], ['min', 'max'])
    z-func is expected but received {} in **kwargs.z2Must provide 'func' or named aggregation **kwargs.)
rsr6rcrdrhrwÚformatrñròr—)r;Útuple_given_messageršrAÚcol_funcÚno_arg_messages      rEÚvalidate_func_kwargsr&Îs‹€ð.JÐܐ6‹l€GØ €DØ—M‘M“OòˆÜ˜8¤SÔ)¬X°hÔ-?ÜÐ/×6Ñ6´t¸H³~×7NÑ7NÓOÓPÐ PØ  ‰ HÕðñ ØMˆÜ˜Ó'Ð'Ø Dˆ=ÐrGcóT—t|t«xst|t«xr|dk(S)Nrn)rcr"r$)r]rŽs  rEr–r–òs*€Ü dœLÓ )ò ܐ4œÓ#Ò8¨°5Ñ(8ðrGc    óȗ|jd«r|}n t|«j›d|›}d|›d}tjd|›d|›d|›dt
t «¬«y)    Nznp.ú.ú"zThe provided callable z is currently using zw. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string z     instead.)ÚcategoryrÀ)Ú
startswithrñròrÂrÃrÄr)r@rAÚaliasÚ
full_aliass    rErkrkøsv€ð
 ×Ñ˜ÔØ‰
ä˜S›    ×*Ñ*Ð+¨1¨U¨GÐ4ˆ
ؐE7˜! ˆÜ ‡MMØ
   Ð&:Ø ˆ,ð$à$) 7¨)ð    5ôÜ#Ó%ö rG)rFNrJrKNNN)r@r,rArrBrr5rör6r÷r7rsr8rdr9rùrúr2)rAzAggFuncType | NonerúzMtuple[bool, AggFuncType, tuple[str, ...] | None, npt.NDArray[np.intp] | None])rúrö)r;rÀrúz]tuple[MutableMapping[Hashable, list[AggFuncTypeBase]], tuple[str, ...], npt.NDArray[np.intp]])rúSequence[tuple[Any, Any]]rúr/)
rrýrAzdict[str, list[Callable | str]]ršrrôz Iterable[int]rúzdict[Hashable, Series]rü)rú Sequence[Any]rúr0)rrrúr)r;rÀrúz0tuple[list[str], list[str | Callable[..., Any]]])r]rÿrŽrrúrö)r@rrArr-rdrúrû)gÚ
__future__rrÚ collectionsrr{rrÑÚtypingrrrr    r
rÂÚnumpyrðÚpandas._configr Ú pandas._libsr Úpandas._libs.internalsr Úpandas._typingrrrrrrrrÚpandas.compat._optionalrÚ pandas.errorsrÚpandas.util._decoratorsrÚpandas.util._exceptionsrÚpandas.core.dtypes.castrÚpandas.core.dtypes.commonrrrrrÚpandas.core.dtypes.dtypesr r!Úpandas.core.dtypes.genericr"r#r$Úpandas.core._numba.executorr%Úpandas.core.commonÚcoreÚcommonriÚpandas.core.constructionr&Úcollections.abcr'r(r)r*r+r¦r,r-r.Úpandas.core.groupbyr/Úpandas.core.resampler0Úpandas.core.window.rollingr1rÀÚintrxrFÚABCMetarIr
r2r=r>rrØrêr?rðròrùrrÛrr r&r–rkrOrGrEú<module>rLsqðÝ"ã
Ý#ÛÝÛ÷õóãå)åÝ2÷    ÷    ó    õ?Ý,Ý2Ý4å4÷õ÷÷ñõ >ߠРÝCá÷õ÷ñõ
,Ý.Ý5ð ˆsCˆx‰.€ð ØØ"Ø'/ØØ,0Ø     Ø ð!Ø    ð!à
ð!ð ð!ð
ð    !ð
ð !ð %ð !ð ð!ð*ð!ðó!ôHL    &c—k‘kõL    &ô^:5ô:ôzi#ôi#ôX bJôbôJAzôAôHR,ôRôj[5ô[ô|"˜<ô"ð8B,Ø
ðB,àRóB,óJð4:+Ø ð:+ðó:+ðzØ    "ðàóð$O$Ø ðO$à
)ðO$ð ðO$ð ð    O$ð
ó O$ódó6óB)ðX!Ø ð!à5ó!óHð Ø    ðà
ðð ðð
ô    rG