ó
    ¬œ‘hp ã                  ó€  • S SK Jr  S SKrS SKJr  S SKrS SKJr  S SKrS SKJ	r	J
r
JrJrJr  S SKrS SKrS SKJr  S SKJr  S SKJr  S S	KJrJrJrJrJrJrJrJr  S S
K J!r!  S SK"J#r#  S SK$J%r%  S SK&J'r'  S SK(J)r)  S SK*J+r+J,r,J-r-J.r.J/r/  S SK0J1r1J2r2  S SK3J4r4J5r5J6r6  S SK7J8r8  S SK9J:s  J;r<  S SK=J>r>  \	(       a*  S SK?J@r@JArAJBrBJCrCJDrD  S SKEJFrFJGrGJHrH  S SKIJJrJ  S SKKJLrL  S SKMJNrN  \O\P\
4   rQ        S6                 S7S jjrR " S S\R¦                  S9rT " S S\T5      rU " S  S\U5      rV " S! S"\V5      rW " S# S$\V5      rX " S% S&\U5      rY " S' S(\T5      rZ " S) S*\Z5      r[    S8S+ jr\S9S, jr]    S:S- jr^    S;S. jr_          S<S/ jr`S=S0 jraS>S1 jrbS?S2 jrc    S@S3 jrdSAS4 jre        SBS5 jrfg)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
                óœ   • U R                  U5      nUS:X  a  [        n
OUS:X  a  [        n
[        U40 U	D6u  p±  nUc   eW
" U UUUUUUUU	S9	$ )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Úaxisr5   r6   r7   r8   r9   r:   r;   ÚklassÚ_s               ÚUC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\pandas/core/apply.pyÚframe_applyrF   R   su   € ð ×Ñ Ó%€DàˆqƒyÜ‰Ø	�‹Ü ˆä$ TÑ4¨VÑ4�M€AˆQ�ØÑÐÐáØØØØØØØ#ØØñ
ð 
ó    c                  ó°  • \ rS rSr% S\S'   SSSS.               SS jjr\R                  SS	 j5       r\R                      SS
 j5       r	\R                      SS j5       r
SS jrSS jrSS jrSS jrSS jr        S S jr    S!S jrSS jr          S"S jr      S#S jrSS jrSS jr        S$S jrS%S jrSrg)&ÚApplyév   r   rB   ÚcompatÚpythonN©r7   r8   r9   c               óà   • Xl         X0l        USL d  US;   d   eXPl        U=(       d    SU l        U	=(       d    0 U l        X`l        Uc  0 OUU l        US;  a  [        S5      eX@l        X l	        g )NF)rK   Ú_compat© )NÚreduceÚ	broadcastÚexpandzUinvalid value for result_type, must be one of {None, 'reduce', 'broadcast', 'expand'})
r@   r5   r7   r:   r;   r8   r9   Ú
ValueErrorr6   rA   )
Úselfr@   rA   r5   r6   r7   r8   r9   r:   r;   s
             rE   Ú__init__ÚApply.__init__y   sz   € ð ŒØŒà˜Š &Ð,AÓ"AÐAÐAØŒà—J˜BˆŒ	Ø—l ˆŒàŒØ#0Ñ#8™R¸mˆÔàÐEÓEÜð=óð ð
 'Ôà�	rG   c                ó   • g ©NrP   ©rU   s    rE   ÚapplyÚApply.applyœ   ó   € àrG   c                ó   • g rY   rP   ©rU   Úop_names     rE   Úagg_or_apply_list_likeÚApply.agg_or_apply_list_like    ó   € ð 	rG   c                ó   • g rY   rP   r_   s     rE   Úagg_or_apply_dict_likeÚApply.agg_or_apply_dict_like¦   rc   rG   c                óÜ  • U R                   nU R                  nU R                  nU R                  n[	        U[
        5      (       a  U R                  5       $ [        U5      (       a  U R                  5       $ [        U5      (       a  U R                  5       $ [        U5      (       aG  [        R                  " U5      nU(       a*  U(       d#  U(       d  [        XU5        [        X5      " 5       $ g)z‹
Provide an implementation for the aggregators.

Returns
-------
Result of aggregation, or None if agg cannot be performed by
this method.
N)r@   rA   r:   r;   Ú
isinstanceÚstrÚ	apply_strr   Úagg_dict_liker   Úagg_list_likeÚcallableÚcomÚget_cython_funcÚwarn_alias_replacementÚgetattr)rU   r@   rA   r:   r;   Úfs         rE   ÚaggÚ	Apply.agg¬   s²   € ð �h‰hˆØ�y‰yˆØ�y‰yˆØ—‘ˆä�dœC× Ñ Ø—>‘>Ó#Ð#ä˜×ÑØ×%Ñ%Ó'Ð'Ü˜$×Ñà×%Ñ%Ó'Ð'ä�D�>‰>Ü×#Ò# DÓ)ˆAÞž¦fÜ& s°!Ô4Ü˜s”Ó(Ð(ð rG   c                ój  • U R                   nU R                  nU R                  nU R                  nU R                  nUR
                  S:H  nUR                  U5      S:X  a4  U(       a   eUR                  R                  " US/UQ70 UD6R                  $ [        U5      (       aq  [        U5      (       da  [        [        [           U5      nU(       a1  U Vs0 s H#  n[        R                  " U5      =(       d    UU_M%     nnOU Vs0 s H  oˆU_M     nn[        U5      (       a!  [        [         U5      nU R#                  U5      $ [        [        U5      n U R%                  U5      n	[-        U	[.        [0        45      (       a-  U	R2                  (       a  UR2                  (       d  [+        S5      e[-        U	[.        [0        45      (       a*  U	R4                  R7                  UR4                  5      (       d  [+        S5      eU	$ s  snf s  snf ! [&         a    e [(         a  n
[+        S5      U
eSn
A
ff = f)zñ
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.
r4   r   zTransform function failedNzFunction did not transform)r@   rA   rB   r:   r;   Úndimr<   ÚTÚ	transformr   r   r
   Úlistr   rn   Úget_callable_namer   Útransform_dict_likeÚtransform_str_or_callableÚ	TypeErrorÚ	ExceptionrT   rh   r$   r"   ÚemptyÚindexÚequals)rU   r@   rA   rB   r:   r;   Ú	is_seriesÚvÚcolÚresultÚerrs              rE   rx   ÚApply.transformÌ   sß  € ð �h‰hˆØ�y‰yˆØ�y‰yˆØ�y‰yˆØ—‘ˆà—H‘H ‘Mˆ	à×Ñ Ó%¨Ó*Þ Ð �=Ø—5‘5—?’? 4¨Ð<¨TÒ<°VÑ<×>Ñ>Ð>ä˜×Ñ¤l°4×&8Ñ&8Üœœ_Ñ-¨tÓ4ˆDæÙBFÓGÂ$¸Qœ×-Ò-¨aÓ0×5°A°qÒ8Á$�ÐG�á-0Ó1ªS c˜Tš	©S�Ð1ä˜×ÑÜœ¨Ó.ˆDØ×+Ñ+¨DÓ1Ð1ô ”O TÓ*ˆð	CØ×3Ñ3°DÓ9ˆFô �v¤	¬<Ð8×9Ñ9Ø——Ø—I—IäÐ8Ó9Ð9ô
 ˜&¤9¬lÐ";×<Ñ<ÀFÇLÁL×DWÑDWØ�I‰I÷E
ñ E
ô Ð9Ó:Ð:àˆùòE Hùâ1øô ó 	ØÜó 	CÜÐ8Ó9¸sÐBûð	Cús$   Ã*HÄHÅH ÈH2È!H-È-H2c                ór  • SSK Jn  U R                  nU R                  nU R                  n[        U[        5      (       d   e[        U5      S:X  a  [        S5      eU R                  SX15      n0 nUR                  5        H.  u  pxUR                  USS9n	U	R                  " US/UQ70 UD6Xg'   M0     U" USS9$ )z3
Compute transform in the case of a dict-like func
r   ©Úconcatz$No transform functions were providedrx   r4   ©rv   ©rB   )Úpandas.core.reshape.concatrŠ   r@   r:   r;   rh   r#   ÚlenrT   Únormalize_dictlike_argÚitemsÚ_gotitemrx   )
rU   rA   rŠ   r@   r:   r;   ÚresultsÚnameÚhowÚcolgs
             rE   r{   ÚApply.transform_dict_like  s´   € õ 	6à�h‰hˆØ�y‰yˆØ—‘ˆô ˜#œz×*Ñ*Ð*Ð*äˆt‹9˜‹>ÜÐCÓDÐDà×*Ñ*¨;¸ÓBˆà68ˆØŸ™ž‰IˆDØ—<‘< ¨1�<Ð-ˆDØ ŸNšN¨3°ÐC°DÒC¸FÑCˆG‹Mñ &ñ �g AÑ&Ð&rG   c                ó’  • U R                   nU R                  nU R                  n[        U[        5      (       a  U R
                  " X!/UQ70 UD6$ U(       d@  U(       d9  [        R                  " U5      nU(       a  [        X!U5        [        X%5      " 5       $  UR                  " U4SU0UD6$ ! [         a    U" U/UQ70 UD6s $ f = f)z<
Compute transform in the case of a string or callable func
r:   )r@   r:   r;   rh   ri   Ú
_apply_strrn   ro   rp   rq   r[   r~   )rU   rA   r@   r:   r;   rr   s         rE   r|   ÚApply.transform_str_or_callable'  s¶   € ð �h‰hˆØ�y‰yˆØ—‘ˆä�dœC× Ñ Ø—?’? 3Ð>¨tÒ>°vÑ>Ð>æžFÜ×#Ò# DÓ)ˆAÞÜ& s°!Ô4Ü˜s”Ó(Ð(ð	.Ø—9’9˜TÑ7¨Ð7°Ñ7Ð7øÜó 	.Ù˜Ð-˜dÒ- fÑ-Ò-ð	.ús   ÂB- Â-CÃCc                ó    • U R                  SS9$ )zb
Compute aggregation in the case of a list-like argument.

Returns
-------
Result of aggregation.
rs   ©r`   )ra   rZ   s    rE   rl   ÚApply.agg_list_like>  ó   € ð ×*Ñ*°5Ð*Ð9Ð9rG   c                ól  • [        [        [           U R                  5      nU R                  n/ n/ nUR
                  S:X  a²  U H©  nUR                  UR                  SUS9n	[        X5      (       a  U R                  /U R                  QOU R                  n
[        X‘5      " U/U
Q70 UD6nUR                  U5        [        R                  " U5      =(       d    UnUR                  U5        M«     Xv4$ / n[        U5       H“  u  pïUR                  USUR                   SS2U4   S9n	[        X5      (       a  U R                  /U R                  QOU R                  n
[        X‘5      " U/U
Q70 UD6nUR                  U5        UR                  U5        M•     UR"                  R%                  U5      nXv4$ )a¾  
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   )rv   ÚsubsetN)r
   ry   r   rA   r@   rv   r‘   r“   Úinclude_axisrB   r:   rq   Úappendrn   rz   Ú	enumerateÚilocÚcolumnsÚtake)rU   r`   Úselected_objr;   rA   r@   r’   ÚkeysÚar•   r:   Únew_resr“   Úindicesr€   r„   s                   rE   Úcompute_list_likeÚApply.compute_list_likeH  sž  € ô4 ”DœÑ)¨4¯9©9Ó5ˆØ�h‰hˆàˆØˆð ×Ñ Ó!Û�Ø—|‘| L×$5Ñ$5¸AÀl�|ÐS�ô $ G×2Ñ2ð —Y‘YÐ+ §¡Ñ+àŸ™ð ô
 " $Ô0°ÐD°TÒD¸VÑD�Ø—‘˜wÔ'ô ×,Ò,¨QÓ/×4°1�Ø—‘˜DÖ!ñ ð< ˆ}Ðð ˆGÜ'¨Ö5‘
�Ø—|‘| C¨a¸×8IÑ8IÊ!ÈUÈ(Ñ8S�|ÐT�ô $ G×2Ñ2ð —Y‘YÐ+ §¡Ñ+àŸ™ð ô
 " $Ô0°ÐG¸ÒGÀÑG�Ø—‘˜wÔ'Ø—‘˜uÖ%ñ 6ð  ×'Ñ'×,Ñ,¨WÓ5ˆDàˆ}ÐrG   c                óÐ   • SSK Jn  U R                  n U" X!SSS9$ ! [         a?  nSSKJn  U" X!UR                  S9n[        U5      (       a  [        S5      UeUs S nA$ S nAff = f)	Nr   r‰   r4   F)r§   rB   Úsort©r.   ©r€   r“   z3cannot combine transform and aggregation operations)	r�   rŠ   r@   r}   Úpandasr.   r“   r   rT   )rU   r§   r’   rŠ   r@   r†   r.   r…   s           rE   Úwrap_results_list_likeÚApply.wrap_results_list_likeŠ  sn   € õ 	6à�h‰hˆð	Ù˜'°1¸5ÑAÐAøÜó 
	õ &á˜G°c·h±hÑ?ˆFÜ ×'Ñ'Ü ØIóàðð �Mûð
	ús   ” œ
A%¦4A ÁA%Á A%c                ó    • U R                  SS9$ )zb
Compute aggregation in the case of a dict-like argument.

Returns
-------
Result of aggregation.
rs   r›   )re   rZ   s    rE   rk   ÚApply.agg_dict_likeŸ  r�   rG   c                óú  • SSK JnJn  U R                  n[	        XuU45      n[        [        U R                  5      n	U R                  XU	5      n	UR                  S:H  =(       a0    UR                  R                  5       [        UR                  5      :  n
UR                  S:X  a`  UR                  USS9nU	R                  5        VVs/ s H  u  pÍ[        X±5      " U40 UD6PM     nnn[!        U	R#                  5       5      nXþ4$ U(       dÿ  U
(       aø  / n/ nU	R                  5        HÝ  u  nnUR                  R%                  U/5      nUR                  R'                  U5      n[)        [         5      n[+        UU5       H  u  nnUU   R-                  U5        M     UR                  5        VVVs/ s H1  u  nnU  H$  n[        UR/                  USS9U5      " U40 UD6PM&     M3     nnnnUU/[        U5      -  -  nUU-  nMß     Xþ4$ U	R                  5        VVs/ s H'  u  nn[        UR                  USS9U5      " U40 UD6PM)     nnn[!        U	R#                  5       5      nXþ4$ s  snnf s  snnnf s  snnf )a3  
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é   r4   r‹   rŒ   )Úpandas.core.groupby.genericr¸   r¹   r@   rh   r
   r   rA   r�   rv   r¤   ÚnuniquerŽ   r‘   r�   rq   ry   r§   Úget_indexer_forr¥   r   Úzipr¡   Ú_ixs)rU   r`   r¦   Ú	selectionr;   r¸   r¹   r@   Ú
is_groupbyrA   Úis_non_unique_colr•   rD   r”   r’   r§   Úkeyrª   ÚlabelsÚlabel_to_indicesr€   ÚlabelÚindiceÚkey_datas                           rE   Úcompute_dict_likeÚApply.compute_dict_like©  sm  € ÷:	
ð
 �h‰hˆÜ ¸Ð%FÓGˆ
Ü”O T§Y¡YÓ/ˆØ×*Ñ*¨7À$ÓGˆð ×Ñ Ñ"÷ KØ×$Ñ$×,Ñ,Ó.´°\×5IÑ5IÓ1JÑJð 	ð
 ×Ñ Ó!à—<‘< 	°�<Ð2ˆDØKOÏ:É:Ì<ÔXÊ<ÁÀ”w˜tÔ-¨cÑ<°VÔ<É<ˆGÑXÜ˜Ÿ	™	›Ó$ˆDð: ˆ}Ðö9 Ö 1ð ˆGØˆDØ ŸJ™JžL‘��SØ&×.Ñ.×>Ñ>À¸uÓE�Ø%×-Ñ-×2Ñ2°7Ó;�Ü#.¬tÓ#4Ð Ü$'¨°Ö$8‘L�E˜5Ø$ UÑ+×2Ñ2°5Ö9ñ %9ð
 +;×*@Ñ*@Ô*Bõâ*B™˜˜wÜ")˜ô ˜L×-Ñ-¨f¸1Ð-Ð=¸wÔGÈÑVÈvÔVá")ñ WÙ*Bð ò ð ˜˜¤ H£Ñ-Ñ-�Ø˜8Ñ#’ñ )ð. ˆ}Ðð	 !%§
¡
¤ôâ ,‘H�C˜ô ˜Ÿ™ S¨q˜Ð1°7Ô;¸CÑJÀ6ÔJÙ ,ð ñ ô ˜Ÿ	™	›Ó$ˆDàˆ}Ðùó= Yùôùós   ÃI*Æ08I0
È.I7c                óÎ  • SSK Jn  SSKJn  U R                  nU Vs/ s H  n[        U[        5      PM     nn[        U5      (       aº  [        [        X#5      5      n	U V
s/ s H  o©U
   R                  (       a  M  U
PM     nn
U/ :w  a  UOUnUR                  S:X  a/  U" U5      nUR                  UR                  R                  5        Un[        U[        5      (       a  SOSnU" U V
s0 s H  oªXš   _M	     sn
UUS9nU$ [!        U5      (       a  [#        S5      eSSK Jn  UR                  S:X  a  ['        S	U5      nUR(                  nOS nU" X2US
9nU$ s  snf s  sn
f s  sn
f )Nr   ©r-   r‰   rº   r4   )rB   r§   zLcannot perform both aggregation and transformation operations simultaneouslyr¯   r.   r°   )r±   r-   r�   rŠ   r@   rh   r#   ÚallÚdictr¾   r   rv   Ú
_set_namesr¤   Únamesr$   ÚanyrT   r.   r
   r“   )rU   r¦   Úresult_indexÚresult_datar-   rŠ   r@   ÚrÚ
is_ndframer’   ÚkÚkeys_to_useÚkturB   r…   r.   r“   s                    rE   Úwrap_results_dict_likeÚApply.wrap_results_dict_likeø  sV  € õ 	!Ý5à�h‰hˆñ :EÓEº°A”j ¤JÖ/¹ˆ
ÐEäˆz�?‰?Üœ3˜|Ó9Ó:ˆGá&2ÓK¢l À!¹*×:JÕ:JŸ1¡lˆKÐKà)4¸Ó):™+ÀˆKØ× Ñ  AÓ%á˜KÓ(�Ø—‘˜|×3Ñ3×9Ñ9Ô:Ø!�ä!+¨C´×!;Ñ!;™AÀˆDÙÙ(3Ó4ª 1�G‘J’©Ñ4ØØ ñˆFð2 ˆô) ��_‰_äð!óð õ &ð �x‰x˜1‹}Ü˜8 SÓ)�Ø—x‘x‘à�á˜KÀ$ÑGˆFàˆùòQ Fùò
 Lùò 5s   �EÁ!EÁ<EÃ,E"c                ó’  • [        [        U R                  5      nU R                  nSSKJnJn  [        X!S5      n[        U5      (       aÔ  [        R                  " U5      n/ UR                  QUR                  Q7nU R                  S:w  a  SU;  d  US;   a  [        SU S35      eSU;   ar  [        X$U45      (       aG  SnUS;   a  U R                  R                  nX€R                  :w  a  U R                  U R                   S'   OU R                  U R                   S'   U R"                  " X!/U R                  Q70 U R                   D6$ )	zQ
Compute apply in case of a string.

Returns
-------
result: Series or DataFrame
r   r·   NrB   )ÚcorrwithÚskewz
Operation z does not support axis=1)ÚidxmaxÚidxmin)r
   ri   rA   r@   r»   r¸   r¹   rq   rm   ÚinspectÚgetfullargspecr:   Ú
kwonlyargsrB   rT   rh   r;   r˜   )	rU   rA   r@   r¸   r¹   ÚmethodÚsigÚ	arg_namesÚdefault_axiss	            rE   rj   ÚApply.apply_str.  s  € ô ”C˜Ÿ™Ó#ˆà�h‰hˆ÷	
ô ˜ DÓ)ˆÜ�F×ÑÜ×(Ò(¨Ó0ˆCØ4˜#Ÿ(™(Ð4 S§^¡^Ñ4ˆIØ�y‰y˜A‹~Ø˜iÓ'¨4Ð3GÓ+Gä  :¨d¨VÐ3KÐ!LÓMÐMØ˜Ó"Ü˜cÐ3CÐ#D×EÑEð
 $%�LØÐ3Ó3ð (,§x¡x§}¡}˜à#§y¡yÓ0Ø.2¯i©i˜Ÿ™ FÑ+øà*.¯)©)�D—K‘K Ñ'Ø�Š˜sÐD¨4¯9©9ÒD¸¿¹ÑDÐDrG   c                óä  • U R                   S:X  a  [        S5      eU R                  S:X  aq  [        U R                  [
        5      (       aR  U R                  R                  R                  " U R                  S4SU R                  0U R                  D6R                  $ U R                  nU R                  n[        U5      (       a  U R                  SS9nOU R                  SS9n[        X140 UD6nU$ )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.r4   r   r:   r[   r›   )r8   ÚNotImplementedErrorrB   rh   r@   r"   rw   r[   rA   r:   r;   r   re   ra   Úreconstruct_and_relabel_result)rU   rA   r;   r…   s       rE   Úapply_list_or_dict_likeÚApply.apply_list_or_dict_like]  sÍ   € ð �;‰;˜'Ó!Ü%ð/óð ð
 �9‰9˜‹>œj¨¯©´<×@Ñ@Ø—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ˆàˆrG   c                óÄ  ^	• US;   d   eUS:X  a:  [        U[        5      (       a%  [        S UR                  5        5       5      (       d%  [        S UR                  5        5       5      (       a  [	        S5      eUR
                  S:w  ad  SSKJn  U" [        UR                  5       5      5      R                  UR                  S	S
9n[        U5      S:”  a  [        S[        U5       S35      e[        [        [        4m	[        U	4S jUR                  5        5       5      (       a9  0 nUR                  5        H!  u  px[        UT	5      (       d  U/Xg'   M  X†U'   M#     UnU$ )zÙ
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.
)r[   rs   rx   rs   c              3  ó<   #   • U  H  u  p[        U5      v •  M     g 7frY   )r   ©Ú.0rD   rƒ   s      rE   Ú	<genexpr>Ú/Apply.normalize_dictlike_arg.<locals>.<genexpr>Œ  s   é € Ð=²©¨”L —O�O²ùó   ‚c              3  ó<   #   • U  H  u  p[        U5      v •  M     g 7frY   )r   rð   s      rE   rò   ró   �  s   é € Ð;ªl¡d a”,˜q—/�/ªlùrô   znested renamer is not supportedr4   r   rÌ   T)r®   z
Column(s) z do not existc              3  ó@   >#   • U  H  u  p[        UT5      v •  M     g 7frY   )rh   )rñ   rD   ÚxÚaggregator_typess      €rE   rò   ró   Ÿ  s   øé € ÐHº<±4°1Œz˜!Ð-×.Ð.º<ùs   ƒ)rh   r$   rÑ   r�   r   rv   r±   r-   ry   r§   Ú
differencer¤   rŽ   ÚKeyErrorÚtuplerÎ   )
rU   r”   r@   rA   r-   ÚcolsÚnew_funcrÖ   rƒ   rø   s
            @rE   r�   ÚApply.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Ø(*ˆHØŸ
™
ž‘�Ü! !Ð%5×6Ñ6Ø#$ #�H“Kà"#˜Q“Kñ	 %ð
 ˆDØˆrG   c                óê  • [        U[        5      (       d   e[        X5      (       a_  [        X5      n[	        U5      (       a  U" U0 UD6$ [        U5      S:X  d   e[        U Vs/ s H  ofS;  d  M
  UPM     sn5      S:X  d   eU$ [        [        U5      (       a-  [        US5      (       a  [        [        U5      nU" U/UQ70 UD6$ SU S[        U5      R                   S3n[        U5      es  snf )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
r   rŒ   Ú	__array__Ú'z' is not a valid function for 'z' object)
rh   ri   Úhasattrrq   rm   rŽ   ÚnpÚtypeÚ__name__ÚAttributeError)rU   r@   rA   r:   r;   rr   ÚkwargÚmsgs           rE   r˜   ÚApply._apply_str©  sï   € ô ˜$¤×$Ñ$Ð$Ð$ä�3×ÑÜ˜Ó"ˆAÜ˜�{‰{Ù˜$Ð) &Ñ)Ð)ô �t“9 “>Ð!�>Ü©6ÓKª6 %À(Ñ5JŸ©6Ñ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Ü  Ó%Ð%ùò Ls   Á%	C0Á2C0)	r:   r7   r8   r9   rA   r;   r@   r5   r6   )r@   r   rA   r   r5   Úboolr6   ú
str | Noner7   ú#Literal[False, 'compat', '_compat']r8   ri   r9   údict[str, bool] | NoneÚreturnÚNone©r  úDataFrame | Series©r`   úLiteral['agg', 'apply']r  r  )r  zDataFrame | Series | None)r  r,   )r`   r  r¦   úSeries | DataFramer;   údict[str, Any]r  z(tuple[list[Hashable] | Index, list[Any]])r§   úIterable[Hashable]r’   zlist[Series | DataFrame])
r`   r  r¦   r  rÀ   zHashable | Sequence[Hashable]r;   r  r  z tuple[list[Hashable], list[Any]])r¦   r  rÒ   zlist[Hashable]rÓ   ry   )r”   ri   r@   r  rA   r   r  r   )rA   ri   )r  Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__rV   ÚabcÚabstractmethodr[   ra   re   rs   rx   r{   r|   rl   r«   r²   rk   rÉ   rÙ   rj   rì   r�   r˜   Ú__static_attributes__rP   rG   rE   rI   rI   v   sÐ  ‡ Ø
ƒ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&rG   rI   )Ú	metaclassc                  óp   • \ rS rSr% SrS\S'   \SS j5       r\SS j5       r    SS jr	    SS jr
S	rg
)ÚNDFrameApplyiÅ  z[
Methods shared by FrameApply and SeriesApply but
not GroupByApply or ResamplerWindowApply
r  r@   c                ó.   • U R                   R                  $ rY   )r@   r€   rZ   s    rE   r€   ÚNDFrameApply.indexÍ  s   € à�x‰x�~‰~ÐrG   c                óL   • U R                   R                  U R                  5      $ rY   )r@   Ú_get_agg_axisrB   rZ   s    rE   Úagg_axisÚNDFrameApply.agg_axisÑ  s   € à�x‰x×%Ñ% d§i¡iÓ0Ð0rG   c                ór  • U R                   nU R                  nUS:X  aW  [        U [        5      (       a  U R                  nO-[        U [
        5      (       a  U R                  (       a  SOSnOSn0 UESU0En[        USS5      S:X  a  [        S5      eU R                  XU5      u  pVU R                  XV5      nU$ )	Nr[   rO   Fr7   rB   r   r4   ú"axis other than 0 is not supported)
r@   r;   rh   r2   r7   ÚSeriesApplyrq   rê   r«   r²   )rU   r`   r@   r;   r7   r§   r’   r…   s           rE   ra   Ú#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‰ˆØ×,Ñ,¨TÓ;ˆØˆrG   c                ó  • US;   d   eU R                   n0 nUS:X  a(  U R                  (       a  SOSnUR                  SU05        [        USS5      S:X  a  [	        S	5      eS nU R                  XXS5      u  pgU R                  X&U5      nU$ )
N©rs   r[   r[   rO   Fr7   rB   r   r4   r(  )r@   r7   Úupdaterq   rê   rÉ   rÙ   )	rU   r`   r@   r;   r7   rÀ   rÒ   rÓ   r…   s	            rE   re   Ú#NDFrameApply.agg_or_apply_dict_likeì  sš   € ð Ð*Ó*Ð*Ð*Ø�h‰hˆàˆØ�gÓØ"&§+§+‘Y°5ˆFØ�M‰M˜8 VÐ,Ô-ä�3˜ Ó" aÓ'Ü%Ð&JÓKÐKàˆ	Ø$(×$:Ñ$:Ø˜)ó%
Ñ!ˆð ×,Ñ,¨SÀÓLˆØˆrG   rP   N©r  r-   r  )r  r  r  r  Ú__doc__r  Úpropertyr€   r%  ra   re   r  rP   rG   rE   r   r   Å  s_   ‡ ñð
 
Óàóó ðð ó1ó ð1ðØ.ðà	ôð.Ø.ðà	÷rG   r   c                  óF  ^ • \ rS rSr% S\S'   SSSS.               SU 4S jjjr\\R                  SS	 j5       5       r	\\R                  SS
 j5       5       r
\\R                  S S j5       5       r\\R                  \R                   S! S"S jj5       5       5       r\R                  S 5       rS r\R                        S#S j5       r\SS j5       r\SS j5       r\S 5       rS$S jrU 4S jrS rS%S jrS&S jrS rS'S jrS rS#S jrS$U 4S jjr Sr!U =r"$ )(r2   i  r,   r@   FrL   NrM   c               ód   >• USLa  US:w  a  [        SU S35      e[        T
U ]	  UUUUUUUUU	S9	  g )NFrK   zby_row=z not allowed)r7   r8   r9   r:   r;   )rT   ÚsuperrV   )rU   r@   rA   r5   r6   r7   r8   r9   r:   r;   Ú	__class__s             €rE   rV   ÚFrameApply.__init__  sU   ø€ ð ˜Ò 6¨XÓ#5Ü˜w v h¨lÐ;Ó<Ð<Ü‰ÑØØØØØØØ'ØØð 	ò 
	
rG   c                ó   • g rY   rP   rZ   s    rE   rÒ   ÚFrameApply.result_index#  ó   € ð 	rG   c                ó   • g rY   rP   rZ   s    rE   Úresult_columnsÚFrameApply.result_columns(  r9  rG   c                ó   • g rY   rP   rZ   s    rE   Úseries_generatorÚFrameApply.series_generator-  r9  rG   c                ó   • g rY   rP   )rA   ÚnogilÚnopythonÚparallels       rE   Úgenerate_numba_apply_funcÚ$FrameApply.generate_numba_apply_func2  s   € ð 	rG   c                ó   • g rY   rP   rZ   s    rE   Úapply_with_numbaÚFrameApply.apply_with_numba:  r]   rG   c                óà   • U R                   R                  R                  5        HF  u  p[        U5      (       d  [	        SU SU S35      e[        U5      (       d  M9  [	        SU S35      e   g )NzColumn 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�   r   rT   r   )rU   ÚcolnameÚdtypes      rE   Úvalidate_values_for_numbaÚ$FrameApply.validate_values_for_numba>  s|   € à"Ÿh™hŸo™o×3Ñ3Ö5‰NˆGÜ# E×*Ñ*Ü Ø˜g˜Yð 'Ø#˜W Ið/óð ô (¨×.Ó.Ü Ø˜g˜Yð 'Bð Cóð ò 6rG   c                ó   • g rY   rP   ©rU   r’   Ú	res_indexs      rE   Úwrap_results_for_axisÚ FrameApply.wrap_results_for_axisL  rc   rG   c                ó   • U R                   $ rY   )r;  rZ   s    rE   Úres_columnsÚFrameApply.res_columnsT  s   € à×"Ñ"Ð"rG   c                ó.   • U R                   R                  $ rY   )r@   r¤   rZ   s    rE   r¤   ÚFrameApply.columnsX  s   € à�x‰x×ÑÐrG   c                ó.   • U R                   R                  $ rY   )r@   ÚvaluesrZ   s    rE   rZ  ÚFrameApply.values\  s   € à�x‰x�‰ÐrG   c                óª  • [        U R                  5      (       a+  U R                  S:X  a  [        S5      eU R	                  5       $ [        U R                  5      S:X  a)  [        U R                  5      S:X  a  U R                  5       $ [        U R                  [        5      (       a+  U R                  S:X  a  [        S5      eU R                  5       $ [        U R                  [        R                  5      (       aŠ  U R                  S:X  a  [        S5      e[        R                  " SS9   U R                  R                   R#                  SU R                  S	9nS
S
S
5        U R                  R%                  WUR&                  S9$ U R(                  S:X  a6  U R                  S:X  a  [        S5      eU R+                  U R                  5      $ [-        U R                  R.                  5      (       d  U R                  5       $ U R0                  (       a$  U R3                  U R                  U R4                  S9$ U R7                  5       $ ! , (       d  f       Nñ= f)zcompute the resultsré   z9the 'numba' engine doesn't support lists of callables yetr   zJthe '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Í   r[   )rA   N)ÚaxesrR   z:the 'numba' engine doesn't support result_type='broadcast'©r8   r9   )r   rA   r8   rê   rì   rŽ   r¤   r€   Úapply_empty_resultrh   ri   rj   r  ÚufuncÚerrstater@   Ú_mgrr[   Ú_constructor_from_mgrr_  r6   Úapply_broadcastrÍ   Úshaper5   Ú	apply_rawr9   Úapply_standard©rU   r’   s     rE   r[   ÚFrameApply.apply`  sà  € ô ˜Ÿ	™	×"Ñ"Ø�{‰{˜gÓ%Ü)ØOóð ð ×/Ñ/Ó1Ð1ô ˆt�|‰|Ó Ó!¤c¨$¯*©*£o¸Ó&:Ø×*Ñ*Ó,Ð,ô �d—i‘i¤×%Ñ%Ø�{‰{˜gÓ%Ü)ð8óð ð —>‘>Ó#Ð#ô ˜Ÿ	™	¤2§8¡8×,Ñ,Ø�{‰{˜gÓ%Ü)ðCóð ô —’ Ó*ØŸ(™(Ÿ-™-×-Ñ-¨g¸D¿I¹IÐ-ÐF�÷ +ð —8‘8×1Ñ1°'ÀÇÁÐ1ÐMÐMð ×Ñ˜{Ó*Ø�{‰{˜gÓ%Ü)ØPóð ð ×'Ñ'¨¯©Ó1Ð1ô �T—X‘X—^‘^×$Ñ$Ø×*Ñ*Ó,Ð,ð �X�XØ—>‘>¨¯©ÀD×DVÑDV�>ÐWÐWà×"Ñ"Ó$Ð$÷+ +Õ*ús   Ä*/IÉ
Ic                óÀ  >• U R                   nU R                  nU R                  S:X  a  U R                   OU R                   R                  U l         SU l        S n [        TU ]  5       nXl         X l        US:X  a  Ub  UR                  OUnUc>  U R                   R
                  " U R                  U4SU R                  0U R                  D6nU$ ! Xl         X l        f = f)Nr   r4   r:   )	r@   rB   rw   r4  rs   r[   rA   r:   r;   )rU   r@   rB   r…   r5  s       €rE   rs   ÚFrameApply.agg–  sµ   ø€ Ø�h‰hˆØ�y‰yˆð  $Ÿy™y¨A›~�4—8’8°4·8±8·:±:ˆŒØˆŒ	àˆð	Ü‘W‘[“]ˆFàŒHØŒIà�1‹9Ø!'Ñ!3�V—X’X¸ˆFà‰>Ø—X‘X—^’^ D§I¡I¨tÑS¸$¿)¹)ÐSÀtÇ{Á{ÑSˆFàˆøð ŒHØ�Iús   ÁC ÃCc                óŠ  • [        U R                  5      (       d   eU R                  S;  a  U R                  R	                  5       $ U R                  S:H  nSSKJn  U(       d¦   U R                  S:X  a>  U R                  " U" / [        R                  S9/U R                  Q70 U R                  D6nOGU R                  " U" U R                  [        R                  S9/U R                  Q70 U R                  D6n[        X25      (       + nU(       a‹  [        U R                   5      (       a>  U R                  " U" / [        R                  S9/U R                  Q70 U R                  D6nO[        R"                  nU R                  R%                  X0R                   S9$ U R                  R	                  5       $ ! [         a     N¸f = f)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
)rQ   NrQ   r   r¯   ©rL  )r€   rL  ©r€   )rm   rA   r6   r@   Úcopyr±   r.   rB   r  Úfloat64r:   r;   r¤   rh   r~   rŽ   r%  ÚnanÚ_constructor_sliced)rU   Úshould_reducer.   rÔ   s       rE   ra  ÚFrameApply.apply_empty_result­  sg  € ô ˜Ÿ	™	×"Ñ"Ð"Ð"ð ×ÑÐ#3Ó3Ø—8‘8—=‘=“?Ð"ð ×(Ñ(¨HÑ4ˆå!æð:Ø—9‘9 “>ØŸ	š	Ù˜r¬¯©Ñ4ðØ7;·y±yòØDHÇKÁKñ‘Að Ÿ	š	Ù T§\¡\¼¿¹ÑDðàŸ™òð Ÿ+™+ñ�Aô %/¨qÓ$9Ô 9�æÜ�4—=‘=×!Ñ!Ø—I’I™f R¬r¯z©zÑ:ÐV¸T¿Y¹YÒVÈ$Ï+É+ÑV‘ä—F‘F�à—8‘8×/Ñ/°¿¹Ð/ÐGÐGà—8‘8—=‘=“?Ð"øô ó Ùðús   Á$BF5 Æ5
GÇGc                ó   • S nUS:X  aQ  Uc  0 OUn[        U R                  40 UD6nU" U R                  U R                  5      n[        R
                  " U5      nOT[        R                  " U" U R                  5      U R                  U R                  /U R                  Q70 U R                  D6nUR                  S:X  a.  U R                  R                  XPR                  U R                  S9$ U R                  R                  XPR                  S9$ )z$apply to the values as a numpy arrayc                ó   ^ • U 4S jnU$ )zi
Wrap user supplied function to work around numpy issue.

see https://github.com/numpy/numpy/issues/8352
c                 ót   >• T" U 0 UD6n[        U[        5      (       a  [        R                  " U[        S9nU$ )Nro  )rh   ri   r  ÚarrayÚobject)r:   r;   r…   rA   s      €rE   ÚwrapperÚ<FrameApply.apply_raw.<locals>.wrap_function.<locals>.wrapperå  s4   ø€ Ù˜tÐ. vÑ.�Ü˜f¤c×*Ñ*ÜŸXšX f´FÑ;�FØ�rG   rP   )rA   r|  s   ` rE   Úwrap_functionÚ+FrameApply.apply_raw.<locals>.wrap_functionÞ  s   ø€ õð ˆNrG   ré   rº   ©r€   r¤   rp  )r%   rA   rZ  rB   r  ÚsqueezeÚapply_along_axisr:   r;   rv   r@   Ú_constructorr€   r¤   rt  r%  )rU   r8   r9   r~  Ú	nb_looperr…   s         rE   rh  ÚFrameApply.apply_rawÛ  sî   € ò	ð �WÓØ"/Ñ"7™B¸]ˆMô .Ø—	‘	ñØ*ñˆIñ ˜tŸ{™{¨D¯I©IÓ6ˆFä—Z’Z Ó'‰Fä×(Ò(Ù˜dŸi™iÓ(Ø—	‘	Ø—‘ðð —‘ò	ð
 —+‘+ñˆFð �;‰;˜!ÓØ—8‘8×(Ñ(¨·z±zÈ4Ï<É<Ð(ÐXÐXà—8‘8×/Ñ/°¿m¹mÐ/ÐLÐLrG   c                ó>  • [        U R                  5      (       d   e[        R                  " UR                  5      nUR
                  S   n[        UR                  5       HŠ  u  pEU R                  " X   /U R                  Q70 U R                  D6n[        R                  " U5      R                  nUS:”  a  [        S5      eUS:X  a  U[        U5      :w  a  [        S5      eXbS S 2U4'   MŒ     U R                  R                  X!R                   UR                  S9nU$ )Nr   r4   ztoo many dims to broadcastzcannot broadcast resultr€  )rm   rA   r  Ú
empty_likerZ  rg  r¢   r¤   r:   r;   Úasarrayrv   rT   rŽ   r@   rƒ  r€   )	rU   ÚtargetÚresult_valuesÚresult_compareÚir„   ÚresÚaresr…   s	            rE   rf  ÚFrameApply.apply_broadcast	  sñ   € Ü˜Ÿ	™	×"Ñ"Ð"Ð"äŸš f§m¡mÓ4ˆð  Ÿ™ a™ˆä §¡Ö/‰FˆAØ—)’)˜F™KÐC¨$¯)©)ÒC°t·{±{ÑCˆCÜ—:’:˜c“?×'Ñ'ˆDð �a‹xÜ Ð!=Ó>Ð>Ø�q‹yà!¤S¨£XÓ-Ü$Ð%>Ó?Ð?à"%š!˜Q˜$Óñ 0ð —‘×&Ñ&Ø§¡°v·~±~ð 'ð 
ˆð ˆrG   c                óŽ   • U R                   S:X  a  U R                  5       u  pOU R                  5       u  pU R                  X5      $ )NrL   )r8   Úapply_series_generatorÚapply_series_numbaÚwrap_resultsrP  s      rE   ri  ÚFrameApply.apply_standard%  sE   € Ø�;‰;˜(Ó"Ø!%×!<Ñ!<Ó!>ÑˆG�Yà!%×!8Ñ!8Ó!:ÑˆGð × Ñ  Ó4Ð4rG   c                óœ  • [        U R                  5      (       d   eU R                  nU R                  n0 n[	        SS 5         [        U5       H]  u  pEU R                  " U/U R                  Q70 U R                  D6X4'   [        X4   [        5      (       d  MJ  X4   R                  SS9X4'   M_     S S S 5        X24$ ! , (       d  f       X24$ = f)Nzmode.chained_assignmentF)Údeep)rm   rA   r>  rÒ   r   r¢   r:   r;   rh   r$   rq  )rU   Ú
series_genrQ  r’   rŒ  rƒ   s         rE   r‘  Ú!FrameApply.apply_series_generator.  s¹   € Ü˜Ÿ	™	×"Ñ"Ð"Ð"à×*Ñ*ˆ
Ø×%Ñ%ˆ	àˆäÐ5°tÕ<Ü! *Ö-‘�à!ŸYšY qÐD¨4¯9©9ÒD¸¿¹ÑD�‘
Ü˜g™j¬)×4Ó4ð ")¡§¡°e Ð!<�G“Jñ .÷ =ð Ð!Ð!÷ =Ô<ð Ð!Ð!ús   ÁAB;ÂB;Â;
Cc                óJ  • U R                   R                  SS5      (       a  [        S5      eU R                  R                  R
                  (       a  U R                  R
                  (       d  [        S5      eU R                  5         U R                  5       nXR                  4$ )NrC  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@   r€   Ú	is_uniquer¤   rM  rG  rÒ   rj  s     rE   r’  ÚFrameApply.apply_series_numbaA  s…   € Ø×Ñ×!Ñ! *¨e×4Ñ4Ü%ØSóð ð �x‰x�~‰~×'×'¨t¯|©|×/E×/EÜ%ØTóð ð 	×&Ñ&Ô(Ø×'Ñ'Ó)ˆØ×)Ñ)Ð)Ð)rG   c                ó  • SSK Jn  [        U5      S:”  a*  SU;   a$  [        US   5      (       a  U R	                  X5      $ U R
                  R                  n[        U5      S:X  a  XCL a  U" U[        R                  S9nOU" U5      nX%l	        U$ )Nr   r¯   ro  )
r±   r.   rŽ   r   rR  r@   rt  r  rr  r€   )rU   r’   rQ  r.   Úconstructor_slicedr…   s         rE   r“  ÚFrameApply.wrap_resultsN  s€   € Ý!ô ˆw‹<˜!Ó  W£´¸WÀQ¹Z×1HÑ1HØ×-Ñ-¨gÓAÐAð "ŸX™X×9Ñ9ÐÜˆw‹<˜1ÓÐ!3Ò!=Ù'¨´r·z±zÑB‰Fá'¨Ó0ˆFØ ŒàˆrG   c                ó¼   >• U R                   S:X  a>  U R                  nUR                  U R                     nUR	                  X R
                  S9$ [        TU ]  5       $ )NÚsizerp  )rA   r@   rg  rB   rt  r%  r4  rj   )rU   r@   Úvaluer5  s      €rE   rj   ÚFrameApply.apply_strc  sR   ø€ ð �9‰9˜Óà—(‘(ˆCØ—I‘I˜dŸi™iÑ(ˆEØ×*Ñ*¨5¿¹Ð*ÐFÐFÜ‰wÑ Ó"Ð"rG   )rB   r@   )r@   r   rA   r   r5   r
  r6   r  r7   úLiteral[False, 'compat']r8   ri   r9   r  r  r  r/  ©r  zGenerator[Series, None, None]©TTF©r  z5Callable[[npt.NDArray, Index, Index], dict[int, Any]]©r’   ÚResTyperQ  r-   r  r  r  )rL   N©r‰  r,   r  r,   )r  ztuple[ResType, Index])#r  r  r  r  r  rV   r1  r  r  rÒ   r;  r>  ÚstaticmethodÚ	functoolsÚcacherD  rG  rM  rR  rU  r¤   r   rZ  r[   rs   ra  rh  rf  ri  r‘  r’  r“  rj   r  Ú__classcell__©r5  s   @rE   r2   r2     sÒ  ø‡ Ø	ƒNð ,1ØØ04ñ
àð
ð ð
ð ð	
ð
  ð
ð )ð
ð ð
ð .ð
ð 
÷
ð 
ð< Ø×Ñóó ó ðð Ø×Ñóó ó ðð Ø×Ñóó ó ðð Ø‡_�_Ø×Ñà27ðà	>ôó ó ó ðð
 	×Ññó ðòð 	×ÑðØðØ+0ðà	óó ðð ó#ó ð#ð ó ó ð ð ñó ðô4%õlò.,#ô\,Mô\ò85ô"ò&*ô÷*#õ #rG   c                  óº   • \ rS rSr% SrS\S'   \SS j5       r\\	R                   S SS jj5       5       rSS jr\SS j5       r\SS	 j5       r      SS
 jrSrg)r=   in  r   r   rB   c                óT   ^ • U 4S j[        [        T R                  5      5       5       $ )Nc              3  óX   >#   • U  H  nTR                   R                  US S9v •  M!     g7f)r4   rŒ   N)r@   r¿   )rñ   rŒ  rU   s     €rE   rò   Ú1FrameRowApply.series_generator.<locals>.<genexpr>s  s$   øé € ÐKÒ2J¨Q�—‘—‘˜a a�Õ(Ò2Jùs   ƒ'*)ÚrangerŽ   r¤   rZ   s   `rE   r>  ÚFrameRowApply.series_generatorq  s   ø€ äK´%¼¸D¿L¹LÓ8IÔ2JÓKÐKrG   c                ó¦   ^^^• [        S5      nSSKJm  SSKJm  UR
                  R                  U 5      mUR                  XUS9UUU4S j5       nU$ )Nré   r   r¯   ©Úmaybe_cast_str©rA  rB  rC  c           	     óŒ   >• 0 n[        U R                  S   5       H$  nT" U S S 2U4   UT" X   5      S9nT" U5      X4'   M&     U$ )Nr4   r°   )r´  rg  )	rZ  Ú	col_namesÚdf_indexr’   ÚjÚserr.   Ú
jitted_udfr¸  s	         €€€rE   Ú
numba_funcÚ;FrameRowApply.generate_numba_apply_func.<locals>.numba_func…  sS   ø€ àˆGÜ˜6Ÿ<™<¨™?Ö+�áØš1˜a˜4‘L¨±~ÀiÁlÓ7Sñ�ñ (¨›_�“
ñ ,ð ˆNrG   ©r   r±   r.   Úpandas.core._numba.extensionsr¸  Ú	extendingÚregister_jitableÚjit©	rA   rA  rB  rC  ré   rÀ  r.   r¿  r¸  s	         @@@rE   rD  Ú'FrameRowApply.generate_numba_apply_funcu  sV   ú€ ô
 +¨7Ó3ˆÝ!õ 	Aà—_‘_×5Ñ5°dÓ;ˆ
ð 
�‰˜¸HˆÐ	Eö	ó 
Fð	ð ÐrG   c           	     ó”  • U R                   " [        [        U R                  5      40 U R                  D6nSSKJn  U R                  R                  nU R                  R                  nU" U5       o2" U5       n[        U" U R                  XC5      5      nS S S 5        S S S 5        W$ ! , (       d  f       N= f! , (       d  f       W$ = f©Nr   )Úset_numba_data©rD  r
   r   rA   r9   rÃ  rË  r@   r€   r¤   rÎ   rZ  ©rU   Únb_funcrË  r€   r¤   r�  s         rE   rG  ÚFrameRowApply.apply_with_numba’  sž   € Ø×0Ò0Ü”˜4Ÿ9™9Ó%ñ
Ø)-×);Ñ);ñ
ˆõ 	Aà—‘—‘ˆØ—(‘(×"Ñ"ˆñ ˜EÔ" e¨^¸GÔ-DÈÜ‘w˜tŸ{™{¨GÓ;Ó<ˆC÷ .E×"àˆ
÷ .EÕ-Dú×"Ô"àˆ
ús$   Á0B8Á8B'ÂB8Â'
B5	Â1B8Â8
Cc                ó   • U R                   $ rY   ©r¤   rZ   s    rE   rÒ   ÚFrameRowApply.result_index¡  ó   € à�|‰|ÐrG   c                ó   • U R                   $ rY   rp  rZ   s    rE   r;  ÚFrameRowApply.result_columns¥  ó   € à�z‰zÐrG   c                óØ  • U R                   S:X  a#  U R                  R                  U5      nX#l        U$ U R                   cH  [	        S UR                  5        5       5      (       a#  U R                  R                  U5      nX#l        U$  U R                  R                  US9n[        US   [        5      (       d=  [        UR                  5      [        U R                  5      :X  a  U R                  Ul        [        UR                  5      [        U5      :X  a  X$l        U$ ! [         a=  nS[        U5      ;   a(  U R                  R                  U5      nX#l        Us SnA$ e SnAff = f)zreturn the results for the rowsrQ   Nc              3  óB   #   • U  H  n[        U[        5      v •  M     g 7frY   )rh   rÎ   )rñ   r÷   s     rE   rò   Ú6FrameRowApply.wrap_results_for_axis.<locals>.<genexpr>´  s   é € ð .
Ú)9 AŒJ�qœ$×ÐÒ)9ùs   ‚©Údataz%All arrays must be of the same lengthr   )r6   r@   rt  r€   rÍ   rZ  rƒ  rT   ri   rh   r$   rŽ   rU  r¤   )rU   r’   rQ  r�  r…   r†   s         rE   rR  Ú#FrameRowApply.wrap_results_for_axis©  s4  € ð
 ×Ñ˜xÓ'à—(‘(×.Ñ.¨wÓ7ˆCØ!ŒIØˆJà×ÑÑ%¬#ñ .
Ø)0¯©Ô)9ó.
÷ +
ñ +
ð
 —(‘(×.Ñ.¨wÓ7ˆCØ!ŒIØˆJð
	Ø—X‘X×*Ñ*°Ð*Ð8ˆFô ˜' !™*¤i×0Ñ0Ü�6—<‘<Ó ¤C¨×(8Ñ(8Ó$9Ó9Ø#×/Ñ/�”äˆv�~‰~Ó¤# i£.Ó0Ø&ŒNàˆøô# ó 	Ø6¼#¸c»(ÓBð —h‘h×2Ñ2°7Ó;�Ø%”	Ø•
àûð	ús$   Â
D" Ä"
E)Ä,1E$ÅE)Å#E$Å$E)rP   Nr¥  r¦  r§  ©r  zdict[int, Any]r/  r¨  )r  r  r  r  rB   r  r1  r>  r«  r¬  r­  rD  rG  rÒ   r;  rR  r  rP   rG   rE   r=   r=   n  s•   ‡ Ø€Dˆ'ÓàóLó ðLð Ø‡_�_à27ðà	>ôó ó ðô6ð óó ðð óó ðð'Øð'Ø+0ð'à	÷'rG   r=   c                  óÜ   ^ • \ rS rSr% SrS\S'   SU 4S jjr\SS j5       r\	\
R                   S SS jj5       5       rSS jr\SS	 j5       r\SS
 j5       r      SS jrSS jrSrU =r$ )r>   iÓ  r4   r   rB   c                óN   >• [         TU ]  UR                  5      nUR                  $ rY   )r4  rf  rw   )rU   r‰  r…   r5  s      €rE   rf  Ú FrameColumnApply.apply_broadcastÖ  s   ø€ Ü‘Ñ(¨¯©Ó2ˆØ�x‰xˆrG   c              #  óª  #   • U R                   n[        U5      n[        U5      S:”  d   eU R                  R	                  SSS9nUR
                  nUR                  S   R                  R                  5       n[        UR                  [        5      (       a:  U R                  n[        [        U5      5       H  nUR	                  USS9v •  M     g [        XR                  5       Hh  u  pxX2l        UR                  U5        [         R#                  USU5        U(       d*  [%        UR                  S   5      UR                  S   l        Uv •  Mj     g 7f)Nr   rŒ   Ú_name)rZ  r&   rŽ   r@   r¿   rd  ÚblocksÚrefsÚhas_referencerh   rL  r!   r´  r¾   r€   Ú
set_valuesr{  Ú__setattr__r   )	rU   rZ  r¾  ÚmgrÚis_viewr@   rŒ  Úarrr“   s	            rE   r>  Ú!FrameColumnApply.series_generatorÚ  s  é € à—‘ˆÜ/°Ó7ˆÜ�6‹{˜Q‹Ðˆð �h‰h�m‰m˜A AˆmÐ&ˆØ�h‰hˆà—*‘*˜Q‘-×$Ñ$×2Ñ2Ó4ˆä�c—i‘i¤×0Ñ0ð —(‘(ˆCÜœ3˜s›8–_�Ø—h‘h˜q q�hÐ)Ô)ò %ô ! ¯©Ö4‘	�à”Ø—‘˜sÔ#Ü×"Ñ" 3¨°Ô6Þô *9¸¿¹ÀA¹Ó)G�C—J‘J˜q‘MÔ&Ø”	ò 5ùs   ‚EEc                ó¦   ^^^• [        S5      nSSKJm  SSKJm  UR
                  R                  U 5      mUR                  XUS9UUU4S j5       nU$ )Nré   r   r¯   r·  r¹  c           	     óž   >• 0 n[        U R                  S   5       H-  nT" X   R                  5       UT" X$   5      S9nT" U5      X4'   M/     U$ )Nr   r°   )r´  rg  rq  )	rZ  Úcol_names_indexr€   r’   rŒ  r¾  r.   r¿  r¸  s	         €€€rE   rÀ  Ú>FrameColumnApply.generate_numba_apply_func.<locals>.numba_func	  sZ   ø€ àˆGô ˜6Ÿ<™<¨™?Ö+�ñ Ø‘I—N‘NÓ$Ø)Ù'¨©Ó1ñ�ñ
 (¨›_�“
ñ ,ð ˆNrG   rÂ  rÇ  s	         @@@rE   rD  Ú*FrameColumnApply.generate_numba_apply_funcþ  sQ   ú€ ô
 +¨7Ó3ˆÝ!Ý@à—_‘_×5Ñ5°dÓ;ˆ
à	�‰˜¸HˆÐ	Eö	ó 
Fð	ð  ÐrG   c           	     óx  • U R                   " [        [        U R                  5      40 U R                  D6nSSKJn  U" U R                  R                  5       o2" U R                  5       n[        U" U R                  XC5      5      nS S S 5        S S S 5        W$ ! , (       d  f       N= f! , (       d  f       W$ = frÊ  rÌ  rÍ  s         rE   rG  Ú!FrameColumnApply.apply_with_numba  s–   € Ø×0Ò0Ü”˜4Ÿ9™9Ó%ñ
Ø)-×);Ñ);ñ
ˆõ 	Añ ˜DŸH™HŸN™NÔ+¨u°nØ�L‰Lô7
àÜ‘w˜tŸ{™{¨GÓ;Ó<ˆC÷7
×+ð
 ˆ
÷7
õ 7
ú×+Ô+ð
 ˆ
ús$   ÁB*Á*BÂB*Â
B'	Â#B*Â*
B9c                ó   • U R                   $ rY   rp  rZ   s    rE   rÒ   ÚFrameColumnApply.result_index,  rÖ  rG   c                ó   • U R                   $ rY   rÑ  rZ   s    rE   r;  ÚFrameColumnApply.result_columns0  rÓ  rG   c                óä   • U R                   S:X  a  U R                  X5      nU$ [        US   [        5      (       d#  U R                  R                  U5      nX#l        U$ U R                  X5      nU$ )z"return the results for the columnsrS   r   )r6   Úinfer_to_same_shaperh   r$   r@   rt  r€   ©rU   r’   rQ  r…   s       rE   rR  Ú&FrameColumnApply.wrap_results_for_axis4  ss   € ð ×Ñ˜xÓ'Ø×-Ñ-¨gÓAˆFð ˆô ˜G A™J¬	×2Ñ2Ø—X‘X×1Ñ1°'Ó:ˆFØ$ŒLð ˆð ×-Ñ-¨gÓAˆFàˆrG   c                óz   • U R                   R                  US9nUR                  nX#l        UR	                  SS9nU$ )z7infer the results to the same shape as the input objectrÚ  F©rq  )r@   rƒ  rw   r€   Úinfer_objectsrù  s       rE   rø  Ú$FrameColumnApply.infer_to_same_shapeI  sC   € à—‘×&Ñ&¨GÐ&Ð4ˆØ—‘ˆð !Œð ×%Ñ%¨5Ð%Ð1ˆàˆrG   rP   rª  r¥  r¦  r§  rÝ  r/  r¨  )r’   r©  rQ  r-   r  r,   )r  r  r  r  rB   r  rf  r1  r>  r«  r¬  r­  rD  rG  rÒ   r;  rR  rø  r  r®  r¯  s   @rE   r>   r>   Ó  s¦   ø‡ Ø€Dˆ'Ó÷ð ó!ó ð!ðF Ø‡_�_à27ðà	>ôó ó ðô8ð  óó ðð óó ððØðØ+0ðà	ô÷*ò rG   r>   c                  ó°   ^ • \ rS rSr% S\S'   SrS\S'   S\S'   \R                  S	S
.         SU 4S jjjrSS jr	U 4S jr
SS jrS rSS jrSrU =r$ )r)  iW  r.   r@   r   r   rB   r  r7   rK   )Úconvert_dtyper7   c          
     ó¨   >• U[         R                  L a  SnO"[        R                  " S[        [        5       S9  X0l        [        TU ]!  UUSS UUUS9  g )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)r5   r6   r7   r:   r;   )	r   Ú
no_defaultÚwarningsÚwarnÚFutureWarningr   r   r4  rV   )rU   r@   rA   r   r7   r:   r;   r5  s          €rE   rV   ÚSeriesApply.__init__\  sa   ø€ ð œCŸN™NÒ*Ø ‰Mä�MŠMð?ô Ü+Ó-òð +Ôä‰ÑØØØØØØØð 	ò 	
rG   c                ój  • U R                   n[        U5      S:X  a  U R                  5       $ [        U R                  5      (       a  U R                  5       $ [        U R                  [        5      (       a  U R                  5       $ U R                  S:X  a  U R                  5       $ U R                  5       $ )Nr   rO   )r@   rŽ   ra  r   rA   rì   rh   ri   rj   r7   Úapply_compatri  ©rU   r@   s     rE   r[   ÚSeriesApply.apply|  s�   € Ø�h‰hˆäˆs‹8�q‹=Ø×*Ñ*Ó,Ð,ô ˜Ÿ	™	×"Ñ"Ø×/Ñ/Ó1Ð1ä�d—i‘i¤×%Ñ%à—>‘>Ó#Ð#à�;‰;˜)Ó#Ø×$Ñ$Ó&Ð&ð ×"Ñ"Ó$Ð$rG   c                óö  >• [         TU ]  5       nUcª  U R                  nU R                  n[	        U5      (       d   e UR
                  " U4SU R                  0U R                  D6nSU S[        U5      R                   S[        U5      R                   S3n[        R                  " U[        [        5       S9  U$ U$ ! [        [        [         4 a$    U" U/U R                  Q70 U R                  D6n U$ f = f)Nr:   zusing z in z3.agg cannot aggregate and has been deprecated. Use z&.transform to keep behavior unchanged.r  )r4  rs   r@   rA   rm   r[   r:   r;   r  r  r  r  r  r   rT   r  r}   )rU   r…   r@   rA   r  r5  s        €rE   rs   ÚSeriesApply.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? Â?5C8Ã7C8c                ó~   • U R                   nUR                  UR                  UR                  S9R	                  USS9$ )N)rL  r€   r[   ©rã   )r@   rƒ  rL  r€   Ú__finalize__r  s     rE   ra  ÚSeriesApply.apply_empty_result©  sA   € Ø�h‰hˆØ×Ñ c§i¡i°s·y±yÐÐA×NÑNØ˜ð Oð 
ð 	
rG   c                ón  • U R                   nU R                  n[        U5      (       aO  [        R                  " U5      nU(       a2  U R
                  (       d!  U R                  (       d  UR                  USS9$  UR                  USS9nU$ ! [        [        [        4 a    UR                  USS9n U$ f = f)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)r7   rK   )r@   rA   rm   rn   ro   r:   r;   r[   rT   r  r}   )rU   r@   rA   rr   r…   s        rE   r
  ÚSeriesApply.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   Á9B Â%B4Â3B4c                óF  ^ ^• [        [        T R                  5      mT R                  n[	        T[
        R                  5      (       a>  [
        R                  " SS9   T" U/T R                  Q70 T R                  D6sS S S 5        $ T R                  (       d   T" U/T R                  Q70 T R                  D6$ T R                  (       d  T R                  (       a  UU 4S jnOTn[	        UR                  [        5      (       a  SOS nUR                  X#T R                  S9n[        U5      (       a;  [	        US   [         5      (       a#  UR#                  [%        U5      UR&                  S9$ UR)                  XAR&                  S9R+                  USS9$ ! , (       d  f       Né= f)	Nr]  r^  c                óD   >• T" U /TR                   Q70 TR                  D6$ rY   )r:   r;   )r÷   rA   rU   s    €€rE   ÚcurriedÚ+SeriesApply.apply_standard.<locals>.curriedÒ  s    ø€ Ù˜AÐ9 §	¡	Ò9¨T¯[©[Ñ9Ð9rG   )ÚmapperÚ	na_actionÚconvertr   rp  r[   r  )r
   r   rA   r@   rh   r  rb  rc  r:   r;   r7   rL  r    Ú_map_valuesr   rŽ   r$   Ú_constructor_expanddimry   r€   rƒ  r  )rU   r@   r  ÚactionÚmappedrA   s   `    @rE   ri  ÚSeriesApply.apply_standardÅ  sD  ù€ ä”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ÑD‘È$ˆØ—‘Ø°d×6HÑ6Hð !ð 
ˆô ˆv�;‰;œ: f¨Q¡i´×;Ñ;ð ×-Ñ-¬d°6«lÀ#Ç)Á)Ð-ÐLÐLà×#Ñ# F·)±)Ð#Ð<×IÑIØ˜Gð Jð ð ÷9 +Õ*ús   Á FÆ
F )r   )
r@   r.   rA   r   r   zbool | lib.NoDefaultr7   r  r  r  r  )r  r.   )r  r  r  r  r  rB   r   r  rV   r[   rs   ra  r
  ri  r  r®  r¯  s   @rE   r)  r)  W  s}   ø‡ Ø	ƒKØ€Dˆ'ÓØ/Ó/ð /2¯n©nØ6>ñ
àð
ð ð
ð
 ,ð
ð 4ð
ð 
÷
ð 
ô@%õ(ô2
ò÷,$ò $rG   r)  c                  ót   ^ • \ rS rSr% S\S'         S
U 4S jjrS rS r    SS jr    SS jr	S	r
U =r$ )ÚGroupByApplyiì  z GroupBy | Resampler | BaseWindowr@   c          	     óª   >• UR                  5       nUR                  R                  UR                  SS5      5      U l        [
        TU ]  UUSS UUS9  g )NrB   r   F©r5   r6   r:   r;   )rq  r@   r<   rš  rB   r4  rV   ©rU   r@   rA   r:   r;   r5  s        €rE   rV   ÚGroupByApply.__init__ï  sU   ø€ ð —‘“ˆØ—G‘G×,Ñ,¨V¯Z©Z¸ÀÓ-BÓCˆŒ	Ü‰ÑØØØØØØð 	ò 	
rG   c                ó   • [         erY   ©rê   rZ   s    rE   r[   ÚGroupByApply.apply  ó   € Ü!Ð!rG   c                ó   • [         erY   r(  rZ   s    rE   rx   ÚGroupByApply.transform  r*  rG   c           	     ó²  • U R                   nU R                  nUS:X  a  0 UESS0En[        USS5      S:X  a  [        S5      eUR                  R
                  S:X  a  UR                  nOUR                  n[        R                  " USS	[        US5      S
9   U R                  XU5      u  pVS S S 5        U R                  WW5      nU$ ! , (       d  f       N"= f)Nr[   r7   FrB   r   r4   r(  Úas_indexT©Ú	condition)r@   r;   rq   rê   Ú_selected_objrv   Ú_obj_with_exclusionsrn   Útemp_setattrr  r«   r²   )rU   r`   r@   r;   r¦   r§   r’   r…   s           rE   ra   Ú#GroupByApply.agg_or_apply_list_like  sÕ   € ð �h‰hˆØ—‘ˆØ�gÓØ0˜Ð0 ¨%Ñ0ˆFä�3˜ Ó" aÓ'Ü%Ð&JÓKÐKà×Ñ×!Ñ! QÓ&à×,Ñ,‰Là×3Ñ3ˆLô ×ÒØ�˜T¬W°S¸*Ó-Eó
ð !×2Ñ2°7È&ÓQ‰MˆD÷
ð ×,Ñ,¨T°7Ó;ˆØˆ÷
õ 
ús   ÂCÃ
Cc           	     óˆ  • SSK JnJn  US;   d   eU R                  n0 nUS:X  a(  U R                  (       a  SOSnUR                  SU05        [        USS5      S	:X  a  [        S
5      eUR                  nUR                  n[        XBU45      n	U	(       aK  U R                  R                  SS 5      n
U R                  R                  SS 5      nUR                  X«S.5        [        R                  " USS[        US5      S9   U R!                  XX…5      u  pÍS S S 5        U R#                  UWW5      nU$ ! , (       d  f       N#= f)Nr   r·   r,  r[   rO   Fr7   rB   r4   r(  r8   r9   r`  r.  Tr/  )r»   r¸   r¹   r@   r7   r-  rq   rê   r1  Ú
_selectionrh   r;   rš  rn   r3  r  rÉ   rÙ   )rU   r`   r¸   r¹   r@   r;   r7   r¦   rÀ   rÁ   r8   r9   rÒ   rÓ   r…   s                  rE   re   Ú#GroupByApply.agg_or_apply_dict_like"  s+  € ÷	
ð
 Ð*Ó*Ð*Ð*à�h‰hˆØˆØ�gÓØ"&§+§+‘Y°5ˆFØ�M‰M˜8 VÐ,Ô-ä�3˜ Ó" aÓ'Ü%Ð&JÓKÐKà×(Ñ(ˆØ—N‘Nˆ	ä ¸Ð%FÓGˆ
ö Ø—[‘[—_‘_ X¨tÓ4ˆFØ ŸK™KŸO™O¨O¸TÓBˆMØ�M‰M VÑLÔMä×ÒØ�˜T¬W°S¸*Ó-Eó
ð )-×(>Ñ(>Ø yó)Ñ%ˆL÷
ð ×,Ñ,¨\¸<ÈÓUˆØˆ÷
õ 
ús   ÄD3Ä3
ErŒ   )r@   zGroupBy[NDFrameT]rA   r   r  r  r  )r  r  r  r  r  rV   r[   rx   ra   re   r  r®  r¯  s   @rE   r"  r"  ì  sc   ø‡ Ø	)Ó)ð
àð
ð ð
ð 
÷
ò&"ò"ðØ.ðà	ôð4%Ø.ð%à	÷%ò %rG   r"  c                  ó^   ^ • \ rS rSr% SrS\S'   S\S'         SU 4S jjrS rS	 rS
r	U =r
$ )ÚResamplerWindowApplyiJ  r   r   rB   úResampler | BaseWindowr@   c          	     ó2   >• [         [        U ]  UUSS UUS9  g )NFr$  )r4  r"  rV   r%  s        €rE   rV   ÚResamplerWindowApply.__init__N  s+   ø€ ô 	Œl˜DÑ*ØØØØØØð 	+ò 	
rG   c                ó   • [         erY   r(  rZ   s    rE   r[   ÚResamplerWindowApply.apply_  r*  rG   c                ó   • [         erY   r(  rZ   s    rE   rx   ÚResamplerWindowApply.transformb  r*  rG   rP   )r@   r:  rA   r   r  r  )r  r  r  r  rB   r  rV   r[   rx   r  r®  r¯  s   @rE   r9  r9  J  sC   ø‡ Ø€Dˆ'ÓØ	Óð
à#ð
ð ð
ð 
÷
ò""÷"ð "rG   r9  c                ó  • U SL =(       a    [        S0 UD6nSnSnU(       dO  [        U [        5      (       a,  [        U 5      [        [	        U 5      5      :”  a  [        S5      eU c  [        S5      eU(       a  [        U5      u  pnU c   eX X44$ )aR  
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).rP   )Úis_multi_agg_with_relabelrh   ry   rŽ   Úsetr   r}   Únormalize_keyword_aggregation)rA   r;   Ú
relabelingr¤   Úorders        rE   r?   r?   f  s    € ðN ˜�×EÔ";Ñ"E¸fÑ"E€JØ&*€GØ)-€EæÜ�dœD×!Ñ!¤c¨$£i´#´c¸$³i³.Ó&@ô %ðóð ð ‰<äÐRÓSÐSæô  =Øó 
Ñˆ�uð ÑÐÐà˜WÐ+Ð+rG   c                 ól   • [        S U R                  5        5       5      =(       a    [        U 5      S:„  $ )a8  
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
c              3  ól   #   • U  H*  n[        U[        5      =(       a    [        U5      S :H  v •  M,     g7f)rº   N)rh   rû   rŽ   )rñ   rƒ   s     rE   rò   Ú,is_multi_agg_with_relabel.<locals>.<genexpr>À  s'   é € ÐMº_¸Œz˜!œUÓ#×3¬¨A«°!©Ô3º_ùs   ‚24r   )rÍ   rZ  rŽ   )r;   s    rE   rB  rB  «  s-   € ô* ÑM¸V¿]¹]¼_ÓMÓM÷ ÜˆF‹�a‰ðrG   c           
     ó  • SSK Jn  [        [        5      n/ n[        [	        U R                  5       6 5      u  pEU HH  u  pgX&   R                  U5        UR                  U[        R                  " U5      =(       d    U45        MJ     [        U5      nUR                  5        VV	Vs/ s H0  u  piU	  H$  nU[        R                  " U5      =(       d    U4PM&     M2     n
n	nn[        U
5      nU" U5      R                  U5      nX$U4$ s  snn	nf )a  
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]))
r   rÌ   )Úpandas.core.indexes.baser-   r   ry   r¾   r�   r¡   rn   rz   Ú_make_unique_kwarg_listÚget_indexer)r;   r-   ÚaggspecrF  r¤   ÚpairsÚcolumnÚaggfuncÚuniquified_orderÚaggfuncsÚaggspec_orderÚuniquified_aggspecÚcol_idx_orders                rE   rD  rD  Å  sü   € õ< /ô
 œ$Ó€GØ€EÜœ#˜vŸ|™|›~Ð.Ó/�N€Gã ‰ˆØ‰×Ñ˜wÔ'Ø�‰�fœc×3Ò3°GÓ<×GÀÐHÖIñ !ô
 /¨uÓ5Ðð !(§¡¤õâ /ÑˆFÜˆGð 
”×&Ò& wÓ/×:°7Ó;áñ 	<Ù /ð ò ô
 1°Ó?Ðñ Ð,Ó-×9Ñ9Ð:JÓK€MØ˜]Ð*Ð*ùôs   Â&7Dc           
     óº   • [        U 5       VVs/ s H=  u  pU R                  U5      S:”  a!  US   US    SU SU R                  U5       34OUPM?     snn$ s  snnf )zû
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>')]
r4   r   rD   N)r¢   Úcount)ÚseqrŒ  Úpairs      rE   rL  rL    sl   € ô ! ”~ôâ%‰GˆAð :=¿¹À4»È1Ó9Lˆˆa‰�T˜!‘W�I˜Q˜s 2 A˜wŸ}™}¨TÓ2Ð3Ð4Ñ5ÐRVÒVÙ%òð ùó s   �AAc                óŠ  • SSK Jn  [        [        X#5      S S9 Vs/ s H  oUS   PM	     nn0 nSn[	        U [
        5      (       + =(       a    [        U R                  5      S:„  n	UR                  5        HÀ  u  p«X
   R                  5       nU	(       am  U Vs/ s H0  n[	        U[        5      (       d  [        R                  " U5      OUPM2     nnU" UR                  5      R                  U5      nUR                  U   nXhU[        U5      -    Ul        UR!                  USS9Xz'   U[        U5      -   nMÂ     U$ s  snf s  snf )aR  
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
r   rÌ   c                ó   • U S   $ )Nr4   rP   )Úts    rE   Ú<lambda>Ú relabel_result.<locals>.<lambda>:  s   € ÀaÈÂdrG   )rÃ   r4   Frü  )rK  r-   Úsortedr¾   rh   r$   rŽ   r¤   r�   Údropnari   rn   rz   r€   rM  r£   Úreindex)r…   rA   r¤   rF  r-   rZ  Úreordered_indexesÚreordered_result_in_dictÚidxÚreorder_maskr„   ÚfunÚsrr   rV  s                  rE   Úrelabel_resultri    s:  € õF /ô #¤3 wÓ#6¹NÒKóÚK�DˆQŒÑKð ð ð 8:ÐØ
€Cä! &¬)Ó4Ô4×P¼¸V¿^¹^Ó9LÈqÑ9P€LØ—J‘J–L‰ˆØ‰K×ÑÓ ˆö, áSVóÚSVÈa´
¸1¼c×0BÑ0B”×%Ò% aÔ(ÈÒIÑSVð ð ñ " !§'¡'›N×6Ñ6°sÓ;ˆMØ—‘�}Ñ%ˆAð $¨#´°C³©.Ð9ˆŒØ()¯	©	°'À¨	Ð(FÐ Ñ%Ø”C˜“H‰nŠñE !ðF $Ð#ùòUùò>s   �D;Â7E c                óv   • SSK Jn  [        U40 UD6u  pApVU(       a  Uc   eUc   e[        XXV5      nU" XuS9n U $ )Nr   )r,   rp  )r±   r,   r?   ri  )r…   rA   r;   r,   rE  r¤   rF  Úresult_in_dicts           rE   rë   rë   f  sQ   € Ý ä'7¸Ñ'GÀÑ'GÑ$€J�gæð Ñ"Ð"Ð"ØÑ Ð Ð ä'¨°gÓEˆÙ˜>Ñ9ˆà€MrG   c                óÎ   • [        U 5      S::  a  U $ Sn/ nU  HI  n[        R                  " U5      S:X  a  [        U5      nSU S3Ul        US-  nUR                  U5        MK     U$ )a  
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.
r4   r   z<lambda>z<lambda_Ú>)rŽ   rn   rz   r   r  r¡   )rS  rŒ  Úmangled_aggfuncsrQ  s       rE   Ú_managle_lambda_listro  �  sv   € ô$ ˆ8ƒ}˜ÓàˆØ	€AØÐÛˆÜ× Ò  Ó)¨ZÓ7Ü˜gÓ&ˆGØ!)¨!¨¨A˜ˆGÔØ�‰FˆAØ×Ñ Ö(ñ ð ÐrG   c                ó,  • [        U 5      nU(       d  [        U 5      (       d  U $ [        U 5      " 5       nU(       aM  U R                  5        H7  u  p4[        U5      (       a  [        U5      (       d  [	        U5      nOUnXRU'   M9     U$ [	        U 5      nU$ )a
  
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)>]
)r   r   r  r�   ro  )Úagg_specÚis_dictÚmangled_aggspecrÃ   rS  rn  s         rE   Úmaybe_mangle_lambdasrt  ¢  sŠ   € ô2 ˜8Ó$€GÞ”| H×-Ñ-ØˆÜ˜8”nÓ&€OæØ%Ÿ^™^Ö-‰MˆCÜ˜H×%Ñ%¬l¸8×.DÑ.DÜ#7¸Ó#AÑ à#+Ð à#3˜CÓ ñ .ð Ðô /¨xÓ8ˆàÐrG   c                óB  • Sn[        U 5      n/ nU R                  5        Hf  n[        U[        5      (       d=  [	        U5      (       d-  [        UR                  [        U5      R                  5      5      eUR                  U5        Mh     U(       d  Sn[        U5      eX#4$ )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.)
ry   rZ  rh   ri   rm   r}   Úformatr  r  r¡   )r;   Útuple_given_messager¤   rA   Úcol_funcÚno_arg_messages         rE   Úvalidate_func_kwargsrz  Î  sŠ   € ð. JÐÜ�6‹l€GØ€DØ—M‘M–OˆÜ˜8¤S×)Ñ)¬X°h×-?Ñ-?ÜÐ/×6Ñ6´t¸H³~×7NÑ7NÓOÓPÐPØ�‰�HÖñ $ö ØMˆÜ˜Ó'Ð'Øˆ=ÐrG   c                óh   • [        U[        5      =(       d    [        U[        5      =(       a    U S:H  $ )Nrs   )rh   r"   r$   )r`   r•   s     rE   r    r    ò  s*   € Ü�dœLÓ)÷ Ü�4œÓ#×8¨°5Ñ(8ðrG   c           	     óÎ   • UR                  S5      (       a  UnO [        U 5      R                   SU 3nSU S3n[        R                  " SU SU SU S3[
        [        5       S9  g )	Nznp.Ú.Ú"zThe 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       rE   rp   rp   ø  sy   € ð
 ×Ñ˜×ÑØ‰
ä˜S›	×*Ñ*Ð+¨1¨U¨GÐ4ˆ
Ø�E�7˜!�ˆÜ‡M‚MØ
   Ð&:Øˆ,ð $à$) 7¨)ð	5ô Ü#Ó%órG   )r   FNrK   rL   NNN)r@   r,   rA   r   rB   r   r5   r
  r6   r  r7   r¤  r8   ri   r9   r  r  r2   )rA   zAggFuncType | 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]])rY  úSequence[tuple[Any, Any]]r  rƒ  )
r…   r  rA   zdict[str, list[Callable | str]]r¤   r  rF  zIterable[int]r  zdict[Hashable, Series]r  )rS  úSequence[Any]r  r„  )rq  r   r  r   )r;   rÎ   r  z0tuple[list[str], list[str | Callable[..., Any]]])r`   r  r•   r  r  r
  )r@   r   rA   r   r�  ri   r  r  )gÚ
__future__r   r  Úcollectionsr   r¬  r   rà   Útypingr   r   r   r	   r
   r  Únumpyr  Úpandas._configr   Úpandas._libsr   Úpandas._libs.internalsr   Úpandas._typingr   r   r   r   r   r   r   r   Úpandas.compat._optionalr   Úpandas.errorsr   Úpandas.util._decoratorsr   Úpandas.util._exceptionsr   Úpandas.core.dtypes.castr   Úpandas.core.dtypes.commonr   r   r   r   r   Úpandas.core.dtypes.dtypesr    r!   Úpandas.core.dtypes.genericr"   r#   r$   Úpandas.core._numba.executorr%   Úpandas.core.commonÚcoreÚcommonrn   Úpandas.core.constructionr&   Úcollections.abcr'   r(   r)   r*   r+   r±   r,   r-   r.   Úpandas.core.groupbyr/   Úpandas.core.resampler0   Úpandas.core.window.rollingr1   rÎ   Úintr©  rF   ÚABCMetarI   r   r2   r=   r>   r)  r"  r9  r?   rB  rD  rL  ri  rë   ro  rt  rz  r    rp   rP   rG   rE   Ú<module>r      sq  ðÝ "ã 
Ý #Û Ý Û ÷õ ó ã å )å Ý 2÷	÷ 	ó 	õ ?Ý ,Ý 2Ý 4å 4÷õ ÷÷ñ õ >ß  Ð  Ý Cæ÷õ ÷ñ õ
 ,Ý.Ý5ð ˆs�Cˆx‰.€ð ØØ"Ø'/ØØ,0Ø	Øð!Ø	ð!à
ð!ð ð!ð 
ð	!ð
 ð!ð %ð!ð ð!ð *ð!ð õ!ôHL	&�c—k‘kò L	&ô^:�5ô :ôzi#�ô i#ôXb�Jô bôJA�zô AôHR�,ô Rôj[�5ô [ô|"˜<ô "ð8B,Ø
ðB,àRôB,ôJð4:+Øð:+ðô:+ðzØ	"ðàôð$O$ØðO$à
)ðO$ð  ðO$ð ð	O$ð
 ôO$ôdô6ôB)ðX!Øð!à5ô!ôHðØ	ðà
ðð ðð 
õ	rG   