§
    Ï! h ã                  ó*  — d dl mZ d dlZd dlmZ d dlZd dlmZ d dlZd dlm	Z	m
Z
mZmZmZ d dlZd dlZd dlmZ d dlmZ d dlmZ d d	lmZmZmZmZmZmZmZmZ d d
l m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6 d dl7m8Z8 d dl9m:c m;Z< d dl=m>Z> e	r*d dl?m@Z@mAZAmBZBmCZCmDZD d dlEmFZFmGZGmHZH d dlImJZJ d dlKmLZL d dlMmNZN eOePe
f         ZQ	 	 	 	 	 	 	 	 dfdgd.„ZR G d/„ d0ejS        ¬1¦  «        ZT G d2„ d3eT¦  «        ZU G d4„ d-eU¦  «        ZV G d5„ d6eV¦  «        ZW G d7„ d8eV¦  «        ZX G d9„ d:eU¦  «        ZY G d;„ d<eT¦  «        ZZ G d=„ d>eZ¦  «        Z[dhdA„Z\didB„Z]djdF„Z^dkdI„Z_dldR„Z`dmdS„ZadndV„ZbdodY„Zcdpd[„Zddqd`„Zedrde„ZfdS )sé    )Ú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)Ú
BaseWindowFÚcompatÚpythonÚobjr,   Úfuncr   Úaxisr   ÚrawÚboolÚresult_typeú
str | NoneÚby_rowúLiteral[False, 'compat']ÚengineÚstrÚengine_kwargsúdict[str, bool] | NoneÚreturnÚ
FrameApplyc
                ó¶   — |                       |¦  «        }|dk    rt          }
n|dk    rt          }
t          |fi |	¤Ž\  }}}}|€J ‚ |
| ||||||||	¬¦	  «	        S )z=construct and return a row or column based frame apply objectr   é   N)r7   r9   r;   r=   r?   ÚargsÚkwargs)Ú_get_axis_numberÚFrameRowApplyÚFrameColumnApplyÚreconstruct_func)r4   r5   r6   r7   r9   r;   r=   r?   rE   rF   ÚklassÚ_s               úKc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\pandas/core/apply.pyÚframe_applyrN   R   s’   € ð ×Ò Ñ%Ô%€Dàˆq‚y€yÝˆˆØ	�ŠˆÝ ˆå$ TÐ4Ð4¨VÐ4Ð4�M€A€tˆQ�ØÐÐÐàˆ5ØØØØØØØ#ØØð
ñ 
ô 
ð 
ó    c                  ó  — e Zd ZU ded<   ddddœd@d„Zej        dAd„¦   «         Zej        dBd„¦   «         Zej        dBd„¦   «         Z	dCd„Z
dAd „ZdDd"„ZdAd#„ZdAd$„ZdEd*„ZdFd/„ZdAd0„ZdGd4„ZdHd9„ZdAd:„ZdAd;„ZdId>„ZdJd?„ZdS )KÚApplyr   r6   r2   r3   N©r;   r=   r?   r4   r   r5   r   r7   r8   r9   r:   r;   ú#Literal[False, 'compat', '_compat']r=   r>   r?   r@   rA   ÚNonec               óÎ   — || _         || _        |du s|dv sJ ‚|| _        |pd| _        |	pi | _        || _        |€i n|| _        |dvrt          d¦  «        ‚|| _        || _	        d S )NF)r2   Ú_compat© )NÚreduceÚ	broadcastÚexpandzUinvalid value for result_type, must be one of {None, 'reduce', 'broadcast', 'expand'})
r4   r7   r;   rE   rF   r=   r?   Ú
ValueErrorr9   r5   )
Úselfr4   r5   r7   r9   r;   r=   r?   rE   rF   s
             rM   Ú__init__zApply.__init__y   s™   € ð ˆŒØˆŒà˜ˆˆ &Ð,AÐ"AÐ"AÐ"AÐAØˆŒà�J˜BˆŒ	Ø�l ˆŒàˆŒØ#0Ð#8˜R˜R¸mˆÔàÐEÐEÐEÝð=ñô ð ð
 'ˆÔàˆŒ	ˆ	ˆ	rO   úDataFrame | Seriesc                ó   — d S ©NrW   ©r\   s    rM   ÚapplyzApply.applyœ   ó   € àˆrO   Úop_nameúLiteral['agg', 'apply']c                ó   — d S r`   rW   ©r\   rd   s     rM   Úagg_or_apply_list_likezApply.agg_or_apply_list_like    ó	   € ð 	ˆrO   c                ó   — d S r`   rW   rg   s     rM   Úagg_or_apply_dict_likezApply.agg_or_apply_dict_like¦   ri   rO   úDataFrame | Series | Nonec                óÀ  — | j         }| j        }| j        }| j        }t	          |t
          ¦  «        r|                      ¦   «         S t          |¦  «        r|                      ¦   «         S t          |¦  «        r|  
                    ¦   «         S t          |¦  «        rCt          j        |¦  «        }|r-|s+|s)t          |||¦  «          t          ||¦  «        ¦   «         S dS )z»
        Provide an implementation for the aggregators.

        Returns
        -------
        Result of aggregation, or None if agg cannot be performed by
        this method.
        N)r4   r5   rE   rF   Ú
isinstancer>   Ú	apply_strr   Úagg_dict_liker   Úagg_list_likeÚcallableÚcomÚget_cython_funcÚwarn_alias_replacementÚgetattr)r\   r4   r5   rE   rF   Úfs         rM   Úaggz	Apply.agg¬   sé   € ð ŒhˆØŒyˆØŒyˆØ”ˆå�d�CÑ Ô ð 	$Ø—>’>Ñ#Ô#Ð#å˜ÑÔð 	(Ø×%Ò%Ñ'Ô'Ð'Ý˜$ÑÔð 	(à×%Ò%Ñ'Ô'Ð'å�D‰>Œ>ð 	)ÝÔ# DÑ)Ô)ˆAØð )˜ð ) fð )Ý& s¨D°!Ñ4Ô4Ð4Ø&•w˜s A‘”Ñ(Ô(Ð(ð ˆtrO   c                ó´  ‡— | j         }| j        Š| j        }| j        }| j        }|j        dk    }|                     |¦  «        dk    r |rJ ‚ |j        j        ‰dg|¢R i |¤Žj        S t          ‰¦  «        rLt          ‰¦  «        s=t          t          t                   ‰¦  «        Š|rd„ ‰D ¦   «         Šnˆfd„|D ¦   «         Št          ‰¦  «        r*t          t          ‰¦  «        Š|                      ‰¦  «        S t          t          ‰¦  «        Š	 |                      ‰¦  «        }n,# t"          $ r ‚ t$          $ r}t'          d¦  «        |‚d}~ww xY wt)          |t*          t,          f¦  «        r|j        r|j        st'          d¦  «        ‚t)          |t*          t,          f¦  «        r|j                             |j        ¦  «        st'          d¦  «        ‚|S )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.
        rD   r   c                ó<   — i | ]}t          j        |¦  «        p||“ŒS rW   ©rs   Úget_callable_name©Ú.0Úvs     rM   ú
<dictcomp>z#Apply.transform.<locals>.<dictcomp>ë   s*   € ÐGÐGÐG¸Q�Ô-¨aÑ0Ô0Ð5°A°qÐGÐGÐGrO   c                ó   •— i | ]}|‰“ŒS rW   rW   )r~   Úcolr5   s     €rM   r€   z#Apply.transform.<locals>.<dictcomp>í   s   ø€ Ð1Ð1Ð1 c˜˜TÐ1Ð1Ð1rO   zTransform function failedNzFunction did not transform)r4   r5   r6   rE   rF   ÚndimrG   ÚTÚ	transformr   r   r
   Úlistr   r   Útransform_dict_likeÚtransform_str_or_callableÚ	TypeErrorÚ	Exceptionr[   rn   r$   r"   ÚemptyÚindexÚequals)	r\   r4   r6   rE   rF   Ú	is_seriesÚresultÚerrr5   s	           @rM   r…   zApply.transformÌ   s   ø€ ð ŒhˆØŒyˆØŒyˆØŒyˆØ”ˆà”H ’Mˆ	à×Ò Ñ%Ô%¨Ò*Ð*Ø Ð Ð �=Ø"�3”5”? 4¨Ð<¨TÐ<Ð<Ð<°VÐ<Ð<Ô>Ð>å˜ÑÔð 	2¥l°4Ñ&8Ô&8ð 	2Ý��_Ô-¨tÑ4Ô4ˆDàð 2ØGÐGÀ$ÐGÑGÔG��à1Ð1Ð1Ð1¨SÐ1Ñ1Ô1�å˜ÑÔð 	2Ý�¨Ñ.Ô.ˆDØ×+Ò+¨DÑ1Ô1Ð1õ •O TÑ*Ô*ˆð	CØ×3Ò3°DÑ9Ô9ˆFˆFøÝð 	ð 	ð 	ØÝð 	Cð 	Cð 	CÝÐ8Ñ9Ô9¸sÐBøøøøð	Cøøøõ �v¥	­<Ð8Ñ9Ô9ð	:à”ð	:ð ”Ið	:õ
 Ð8Ñ9Ô9Ð9õ
 ˜&¥9­lÐ";Ñ<Ô<ð 	;ÀFÄL×DWÒDWØŒIñE
ô E
ð 	;õ Ð9Ñ:Ô:Ð:àˆs   ÄD) Ä)EÄ=EÅEr,   c                ó‚  — ddl m} | j        }| j        }| j        }t          |t          ¦  «        sJ ‚t          |¦  «        dk    rt          d¦  «        ‚|  	                    d||¦  «        }i }| 
                    ¦   «         D ]1\  }}|                     |d¬¦  «        }	 |	j        |dg|¢R i |¤Ž||<   Œ2 ||d¬¦  «        S )zC
        Compute transform in the case of a dict-like func
        r   ©Úconcatz$No transform functions were providedr…   rD   ©rƒ   ©r6   )Úpandas.core.reshape.concatr“   r4   rE   rF   rn   r#   Úlenr[   Únormalize_dictlike_argÚitemsÚ_gotitemr…   )
r\   r5   r“   r4   rE   rF   ÚresultsÚnameÚhowÚcolgs
             rM   r‡   zApply.transform_dict_like  sí   € ð 	6Ð5Ð5Ð5Ð5Ð5àŒhˆØŒyˆØ”ˆõ ˜#�zÑ*Ô*Ð*Ð*Ð*åˆt‰9Œ9˜Š>ˆ>ÝÐCÑDÔDÐDà×*Ò*¨;¸¸TÑBÔBˆà68ˆØŸš™œð 	Dð 	D‰IˆD�#Ø—<’< ¨1�<Ñ-Ô-ˆDØ*˜DœN¨3°ÐC°DÐCÐCÐC¸FÐCÐCˆG�D‰MˆMØˆv�g AÐ&Ñ&Ô&Ð&rO   c                óZ  — | j         }| j        }| j        }t          |t          ¦  «        r | j        ||g|¢R i |¤ŽS |sA|s?t          j        |¦  «        }|r)t          |||¦  «          t          ||¦  «        ¦   «         S 	  |j
        |fd|i|¤ŽS # t          $ r  ||g|¢R i |¤ŽcY S w xY w)zL
        Compute transform in the case of a string or callable func
        rE   )r4   rE   rF   rn   r>   Ú
_apply_strrs   rt   ru   rv   rb   rŠ   )r\   r5   r4   rE   rF   rw   s         rM   rˆ   zApply.transform_str_or_callable'  s  € ð ŒhˆØŒyˆØ”ˆå�d�CÑ Ô ð 	?Ø"�4”? 3¨Ð>¨tÐ>Ð>Ð>°vÐ>Ð>Ð>àð 	)˜Fð 	)ÝÔ# DÑ)Ô)ˆAØð )Ý& s¨D°!Ñ4Ô4Ð4Ø&•w˜s A‘”Ñ(Ô(Ð(ð	.Ø�3”9˜TÐ7Ð7¨Ð7°Ð7Ð7Ð7øÝð 	.ð 	.ð 	.Ø�4˜Ð-˜dÐ-Ð-Ð- fÐ-Ð-Ð-Ð-Ð-ð	.øøøs   ÂB ÂB*Â)B*c                ó.   — |                       d¬¦  «        S )zŠ
        Compute aggregation in the case of a list-like argument.

        Returns
        -------
        Result of aggregation.
        rx   ©rd   )rh   ra   s    rM   rq   zApply.agg_list_like>  ó   € ð ×*Ò*°5Ð*Ñ9Ô9Ð9rO   Úselected_objúSeries | DataFramerF   údict[str, Any]ú(tuple[list[Hashable] | Index, list[Any]]c                óJ  — t          t          t                   | j        ¦  «        }| j        }g }g }|j        dk    r£|D ]Ÿ}|                     |j        d|¬¦  «        }	t          ||	¦  «        r| j	        g| j
        ¢n| j
        }
 t          |	|¦  «        |g|
¢R i |¤Ž}|                     |¦  «         t          j        |¦  «        p|}|                     |¦  «         Œ nÂg }t          |¦  «        D ]–\  }}|                     |d|j        dd…|f         ¬¦  «        }	t          ||	¦  «        r| j	        g| j
        ¢n| j
        }
 t          |	|¦  «        |g|
¢R i |¤Ž}|                     |¦  «         |                     |¦  «         Œ—|j                             |¦  «        }||fS )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.
        rD   )rƒ   ÚsubsetN)r
   r†   r   r5   r4   rƒ   rš   rœ   Úinclude_axisr6   rE   rv   Úappendrs   r|   Ú	enumerateÚilocÚcolumnsÚtake)r\   rd   r¤   rF   r5   r4   r›   ÚkeysÚarž   rE   Únew_resrœ   ÚindicesrŒ   r‚   s                   rM   Úcompute_list_likezApply.compute_list_likeH  sí  € õ4 •D�Ô)¨4¬9Ñ5Ô5ˆØŒhˆàˆØˆð Ô Ò!Ð!Øð "ð "�Ø—|’| LÔ$5¸AÀl�|ÑSÔS�õ $ G¨TÑ2Ô2ð#�T”YÐ+ ¤Ð+Ð+àœð ð
 1�' $¨Ñ0Ô0°ÐD°TÐDÐDÐD¸VÐDÐD�Ø—’˜wÑ'Ô'Ð'õ Ô,¨QÑ/Ô/Ð4°1�Ø—’˜DÑ!Ô!Ð!Ð!ð"ð ˆGÝ'¨Ñ5Ô5ð 	&ð 	&‘
��sØ—|’| C¨a¸Ô8IÈ!È!È!ÈUÈ(Ô8S�|ÑTÔT�õ $ G¨TÑ2Ô2ð#�T”YÐ+ ¤Ð+Ð+àœð ð
 1�' $¨Ñ0Ô0°ÐG¸ÐGÐGÐGÀÐGÐG�Ø—’˜wÑ'Ô'Ð'Ø—’˜uÑ%Ô%Ð%Ð%ð  Ô'×,Ò,¨WÑ5Ô5ˆDà�Wˆ}ÐrO   r°   úIterable[Hashable]r›   úlist[Series | DataFrame]c                óÞ   — ddl m} | j        }	  |||dd¬¦  «        S # t          $ rD}ddlm}  ||||j        ¬¦  «        }t          |¦  «        rt          d¦  «        |‚|cY d }~S d }~ww xY w)	Nr   r’   rD   F)r°   r6   Úsort©r.   ©rŒ   rœ   z3cannot combine transform and aggregation operations)	r–   r“   r4   r‰   Úpandasr.   rœ   r   r[   )r\   r°   r›   r“   r4   r�   r.   r�   s           rM   Úwrap_results_list_likezApply.wrap_results_list_likeŠ  s¿   € ð 	6Ð5Ð5Ð5Ð5Ð5àŒhˆð	Ø�6˜'¨°1¸5ÐAÑAÔAÐAøÝð 
	ð 
	ð 
	ð &Ð%Ð%Ð%Ð%Ð%à�V˜G¨4°c´hÐ?Ñ?Ô?ˆFÝ Ñ'Ô'ð Ý ØIñô àðð ˆMˆMˆMˆMˆMˆMøøøøð
	øøøs   � ž
A,¨9A'Á!A,Á'A,c                ó.   — |                       d¬¦  «        S )zŠ
        Compute aggregation in the case of a dict-like argument.

        Returns
        -------
        Result of aggregation.
        rx   r¢   )rk   ra   s    rM   rp   zApply.agg_dict_likeŸ  r£   rO   Ú	selectionúHashable | Sequence[Hashable]ú tuple[list[Hashable], list[Any]]c                ó8  ‡‡‡‡‡‡— ddl m}m} | j        Št	          ‰||f¦  «        }t          t          | j        ¦  «        }|                      ‰‰|¦  «        }‰j	        dk    o.‰j
                             ¦   «         t          ‰j
        ¦  «        k     }	‰j	        dk    r\‰                     |d¬¦  «        Šˆˆˆfd„|                     ¦   «         D ¦   «         }
t          |                     ¦   «         ¦  «        }�n|sÙ|	r×g }
g }|                     ¦   «         D ]½\  }Š‰j
                             |g¦  «        }‰j
                             |¦  «        }t'          t          ¦  «        }t)          ||¦  «        D ] \  }}||                              |¦  «         Œ!ˆˆˆˆfd„|                     ¦   «         D ¦   «         }||gt          |¦  «        z  z  }|
|z  }
Œ¾nCˆˆˆfd„|                     ¦   «         D ¦   «         }
t          |                     ¦   «         ¦  «        }||
fS )	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é   rD   r”   c                óD   •— g | ]\  }} t          ‰‰¦  «        |fi ‰¤Ž‘ŒS rW   )rv   )r~   rL   r�   rž   rF   rd   s      €€€rM   ú
<listcomp>z+Apply.compute_dict_like.<locals>.<listcomp>Ø  s:   ø€ ÐXÐXÐXÁÀÀCÐ-•w˜t WÑ-Ô-¨cÐ<Ð<°VÐ<Ð<ÐXÐXÐXrO   c           
     óx   •— g | ]6\  }}|D ].} t          ‰                     |d ¬¦  «        ‰¦  «        ‰fi ‰¤Ž‘Œ/Œ7S )rD   r•   )rv   Ú_ixs)r~   Úlabelr³   Úindicer�   rF   rd   r¤   s       €€€€rM   rÇ   z+Apply.compute_dict_like.<locals>.<listcomp>æ  st   ø€ ð ð ð á&˜˜wØ")ðð ð ð H•G˜L×-Ò-¨f¸1Ð-Ñ=Ô=¸wÑGÔGÈÐVÐVÈvÐVÐVðð ð ð rO   c           	     ón   •— g | ]1\  }} t          ‰                     |d ¬¦  «        ‰¦  «        |fi ‰¤Ž‘Œ2S )rD   r”   )rv   rš   )r~   Úkeyr�   rF   r4   rd   s      €€€rM   rÇ   z+Apply.compute_dict_like.<locals>.<listcomp>ð  sY   ø€ ð ð ð á�C˜ð <•˜Ÿš S¨q˜Ñ1Ô1°7Ñ;Ô;¸CÐJÐJÀ6ÐJÐJðð ð rO   )Úpandas.core.groupby.genericrÃ   rÄ   r4   rn   r
   r   r5   r˜   rƒ   r®   Únuniquer—   rš   r™   r†   r°   Úget_indexer_forr¯   r   Úzipr«   )r\   rd   r¤   r¾   rF   rÃ   rÄ   Ú
is_groupbyr5   Úis_non_unique_colr›   r°   rÍ   r³   ÚlabelsÚlabel_to_indicesrŒ   rÊ   Úkey_datarž   r�   r4   s    `` `              @@@rM   Úcompute_dict_likezApply.compute_dict_like©  s‡  øøøøøø€ ð:	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
 ŒhˆÝ Ð&6¸Ð%FÑGÔGˆ
Ý•O T¤YÑ/Ô/ˆØ×*Ò*¨7°LÀ$ÑGÔGˆð Ô Ò"ð KØÔ$×,Ò,Ñ.Ô.µ°\Ô5IÑ1JÔ1JÒJð 	ð
 Ô Ò!Ð!à—<’< 	°�<Ñ2Ô2ˆDØXÐXÐXÐXÐXÐXÈ4Ï:Ê:É<Ì<ÐXÑXÔXˆGÝ˜Ÿ	š	™œÑ$Ô$ˆD‰DØð 	%Ð 1ð 	%ð ˆGØˆDØ ŸJšJ™LœLð $ð $‘��SØ&Ô.×>Ò>À¸uÑEÔE�Ø%Ô-×2Ò2°7Ñ;Ô;�Ý#.­tÑ#4Ô#4Ð Ý$'¨°Ñ$8Ô$8ð :ð :‘L�E˜5Ø$ UÔ+×2Ò2°5Ñ9Ô9Ð9Ð9ðð ð ð ð ð ð à*:×*@Ò*@Ñ*BÔ*Bðñ ô �ð ˜˜¥ H¡¤Ñ-Ñ-�Ø˜8Ñ#��ð$ð"ð ð ð ð ð à $§
¢
¡¤ðñ ô ˆGõ ˜Ÿ	š	™œÑ$Ô$ˆDà�Wˆ}ÐrO   Úresult_indexúlist[Hashable]Úresult_datar†   c                óR  ‡— ddl m} ddlm} | j        }d„ |D ¦   «         }t          |¦  «        r t          t          ||¦  «        ¦  «        Šˆfd„|D ¦   «         }|g k    r|n|}|j        dk    r, ||¦  «        }	|	 	                    |j
        j        ¦  «         |	}t          |t          ¦  «        rdnd}
 |ˆfd„|D ¦   «         |
|¬	¦  «        }nWt          |¦  «        rt          d
¦  «        ‚ddl m} |j        dk    rt#          d|¦  «        }|j        }nd } ||||¬¦  «        }|S )Nr   ©r-   r’   c                ó8   — g | ]}t          |t          ¦  «        ‘ŒS rW   )rn   r#   )r~   Úrs     rM   rÇ   z0Apply.wrap_results_dict_like.<locals>.<listcomp>  s"   € ÐEÐEÐE°A•j ¥JÑ/Ô/ÐEÐEÐErO   c                ó.   •— g | ]}‰|         j         °|‘ŒS rW   )r‹   ©r~   Úkr›   s     €rM   rÇ   z0Apply.wrap_results_dict_like.<locals>.<listcomp>	  s%   ø€ ÐKÐKÐK ¸'À!¼*Ô:JÐK˜1ÐKÐKÐKrO   rÅ   rD   c                ó"   •— i | ]}|‰|         “ŒS rW   rW   rà   s     €rM   r€   z0Apply.wrap_results_dict_like.<locals>.<dictcomp>  s   ø€ Ð4Ð4Ð4 1��G˜A”JÐ4Ð4Ð4rO   )r6   r°   zLcannot perform both aggregation and transformation operations simultaneouslyr¹   r.   rº   )r»   r-   r–   r“   r4   ÚallÚdictrÑ   rƒ   Ú
_set_namesr®   Únamesrn   r$   Úanyr[   r.   r
   rœ   )r\   r¤   rØ   rÚ   r-   r“   r4   Ú
is_ndframeÚkeys_to_useÚktur6   r�   r.   rœ   r›   s                 @rM   Úwrap_results_dict_likezApply.wrap_results_dict_likeø  s   ø€ ð 	!Ð Ð Ð Ð Ð Ø5Ð5Ð5Ð5Ð5Ð5àŒhˆð FÐE¸ÐEÑEÔEˆ
åˆz‰?Œ?ð $	HÝ�3˜|¨[Ñ9Ô9Ñ:Ô:ˆGàKÐKÐKÐK lÐKÑKÔKˆKà)4¸Ò):Ð):˜+˜+ÀˆKØÔ  AÒ%Ð%à�e˜KÑ(Ô(�Ø—’˜|Ô3Ô9Ñ:Ô:Ð:Ø!�å!+¨CµÑ!;Ô!;ÐB˜A˜AÀˆDØ�VØ4Ð4Ð4Ð4¨Ð4Ñ4Ô4ØØ ðñ ô ˆFˆFõ
 �‰_Œ_ð 	Håð!ñô ð ð &Ð%Ð%Ð%Ð%Ð%ð Œx˜1Š}ˆ}Ý˜8 SÑ)Ô)�Ø”x��à�à�V˜K¨|À$ÐGÑGÔGˆFàˆrO   c                ó  — t          t          | j        ¦  «        }| j        }ddlm}m} t          ||d¦  «        }t          |¦  «        r�t          j
        |¦  «        }g |j        ¢|j        ¢R }| j        dk    rd|vs|dv rt          d|› d�¦  «        ‚d|v rNt          |||f¦  «        r-d}|dv r| j        j        }|| j        k    r| j        | j        d<   n| j        | j        d<    | j        ||g| j        ¢R i | j        ¤ŽS )	zy
        Compute apply in case of a string.

        Returns
        -------
        result: Series or DataFrame
        r   rÂ   Nr6   )ÚcorrwithÚskewz
Operation z does not support axis=1)ÚidxmaxÚidxmin)r
   r>   r5   r4   rÎ   rÃ   rÄ   rv   rr   ÚinspectÚgetfullargspecrE   Ú
kwonlyargsr6   r[   rn   rF   r    )	r\   r5   r4   rÃ   rÄ   ÚmethodÚsigÚ	arg_namesÚdefault_axiss	            rM   ro   zApply.apply_str.  s[  € õ •C˜œÑ#Ô#ˆàŒhˆð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ ˜˜d DÑ)Ô)ˆÝ�FÑÔð 	4ÝÔ(¨Ñ0Ô0ˆCØ4˜#œ(Ð4 S¤^Ð4Ð4ˆIØŒy˜AŠ~ˆ~Ø˜iÐ'Ð'¨4Ð3GÐ+GÐ+Gå Ð!L¨dÐ!LÐ!LÐ!LÑMÔMÐMØ˜Ð"Ð"Ý˜c MÐ3CÐ#DÑEÔEð 4ð
 $%�LØÐ3Ð3Ð3ð (,¤x¤}˜à# t¤yÒ0Ð0Ø.2¬i˜œ FÑ+øà*.¬)�D”K Ñ'ØˆtŒ˜s DÐD¨4¬9ÐDÐDÐD¸¼ÐDÐDÐDrO   c                ó’  — | j         dk    rt          d¦  «        ‚| j        dk    rIt          | j        t
          ¦  «        r/ | j        j        j        | j        dfd| j	        i| j
        ¤Žj        S | j        }| j
        }t          |¦  «        r|                      d¬¦  «        }n|                      d¬¦  «        }t          ||fi |¤Ž}|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.rD   r   rE   rb   r¢   )r=   ÚNotImplementedErrorr6   rn   r4   r"   r„   rb   r5   rE   rF   r   rk   rh   Úreconstruct_and_relabel_result)r\   r5   rF   r�   s       rM   Úapply_list_or_dict_likezApply.apply_list_or_dict_like]  sÝ   € ð Œ;˜'Ò!Ð!Ý%ð/ñô ð ð
 Œ9˜Š>ˆ>�j¨¬µ<Ñ@Ô@ˆ>Ø#�4”8”:Ô# D¤I¨qÐPÐP°t´yÐPÀDÄKÐPÐPÔRÐRàŒyˆØ”ˆå˜ÑÔð 	BØ×0Ò0¸Ð0ÑAÔAˆFˆFà×0Ò0¸Ð0ÑAÔAˆFå/°¸ÐGÐGÀÐGÐGˆàˆrO   r�   r   c                ó  ‡	— |dv sJ ‚|dk    r@t          |t          ¦  «        r+t          d„ |                     ¦   «         D ¦   «         ¦  «        s+t          d„ |                     ¦   «         D ¦   «         ¦  «        rt	          d¦  «        ‚|j        dk    r}ddlm}  |t          | 	                    ¦   «         ¦  «        ¦  «         
                    |j        d	¬
¦  «        }t          |¦  «        dk    r t          dt          |¦  «        › d�¦  «        ‚t          t          t          fŠ	t          ˆ	fd„|                     ¦   «         D ¦   «         ¦  «        r:i }|                     ¦   «         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.
        )rb   rx   r…   rx   c              3  ó:   K  — | ]\  }}t          |¦  «        V — Œd S r`   )r   ©r~   rL   r   s      rM   ú	<genexpr>z/Apply.normalize_dictlike_arg.<locals>.<genexpr>Œ  s,   è è € Ð=Ð=©¨¨1•L ‘O”OÐ=Ð=Ð=Ð=Ð=Ð=rO   c              3  ó:   K  — | ]\  }}t          |¦  «        V — Œd S r`   )r   rÿ   s      rM   r   z/Apply.normalize_dictlike_arg.<locals>.<genexpr>�  s,   è è € Ð;Ð;¡d a¨•,˜q‘/”/Ð;Ð;Ð;Ð;Ð;Ð;rO   znested renamer is not supportedrD   r   rÜ   T)r¸   z
Column(s) z do not existc              3  ó>   •K  — | ]\  }}t          |‰¦  «        V — Œd S r`   )rn   )r~   rL   ÚxÚaggregator_typess      €rM   r   z/Apply.normalize_dictlike_arg.<locals>.<genexpr>Ÿ  s2   øè è € ÐHÐH±4°1°a�z˜!Ð-Ñ.Ô.ÐHÐHÐHÐHÐHÐHrO   )rn   r$   rç   r™   r   rƒ   r»   r-   r†   r°   Ú
differencer®   r—   ÚKeyErrorÚtuplerä   )
r\   r�   r4   r5   r-   ÚcolsÚnew_funcrá   r   r  s
            @rM   r˜   zApply.normalize_dictlike_arg|  s¦  ø€ ð Ð3Ð3Ð3Ð3Ð3ð �5ŠLˆLÝ˜3¥	Ñ*Ô*ð åÐ=Ð=°·
²
±´Ð=Ñ=Ô=Ñ=Ô=ð õ Ð;Ð;¨d¯jªj©l¬lÐ;Ñ;Ô;Ñ;Ô;ð õ
 %Ð%FÑGÔGÐGàŒ8�qŠ=ˆ=à$Ð$Ð$Ð$Ð$Ð$à�5�˜dŸiši™kœkÑ*Ô*Ñ+Ô+×6Ò6°s´{ÈÐ6ÑNÔNˆDÝ�4‰yŒy˜1Š}ˆ}ÝÐE­D°©J¬JÐEÐEÐEÑFÔFÐFå ¥%­Ð.Ðõ ÐHÐHÐHÐH¸4¿:º:¹<¼<ÐHÑHÔHÑHÔHð 	Ø(*ˆHØŸ
š
™œð $ð $‘��1Ý! !Ð%5Ñ6Ô6ð $Ø#$ #�H˜Q‘K�Kà"#�H˜Q‘K�KØˆDØˆrO   c                óê  — t          |t          ¦  «        sJ ‚t          ||¦  «        r]t          ||¦  «        }t	          |¦  «        r ||i |¤ŽS t          |¦  «        dk    sJ ‚t          d„ |D ¦   «         ¦  «        dk    sJ ‚|S t          t          |¦  «        r1t          |d¦  «        r!t          t          |¦  «        } ||g|¢R i |¤ŽS d|› dt          |¦  «        j        › d�}t          |¦  «        ‚)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   c                ó   — g | ]}|d v¯|‘Œ	S )r•   rW   )r~   Úkwargs     rM   rÇ   z$Apply._apply_str.<locals>.<listcomp>º  s"   € ÐKÐKÐK %°UÀ(Ð5JÐ5J˜Ð5JÐ5JÐ5JrO   Ú	__array__ú'z' is not a valid function for 'z' object)
rn   r>   Úhasattrrv   rr   r—   ÚnpÚtypeÚ__name__ÚAttributeError)r\   r4   r5   rE   rF   rw   Úmsgs          rM   r    zApply._apply_str©  s"  € õ ˜$¥Ñ$Ô$Ð$Ð$Ð$å�3˜ÑÔð 	&Ý˜˜TÑ"Ô"ˆAÝ˜‰{Œ{ð *Ø�q˜$Ð) &Ð)Ð)Ð)õ �t‘9”9 ’>�>�>�>ÝÐKÐK¨6ÐKÑKÔKÑLÔLÐPQÒQÐQÐQÐQØˆHÝ•R˜ÑÔð 	&¥7¨3°Ñ#<Ô#<ð 	&å�˜DÑ!Ô!ˆAØ�1�SÐ*˜4Ð*Ð*Ð* 6Ð*Ð*Ð*àW�dÐWÐW½4À¹9¼9Ô;MÐWÐWÐWˆCÝ  Ñ%Ô%Ð%rO   )r4   r   r5   r   r7   r8   r9   r:   r;   rS   r=   r>   r?   r@   rA   rT   ©rA   r^   ©rd   re   rA   r^   )rA   rl   )rA   r,   )rd   re   r¤   r¥   rF   r¦   rA   r§   )r°   rµ   r›   r¶   )
rd   re   r¤   r¥   r¾   r¿   rF   r¦   rA   rÀ   )r¤   r¥   rØ   rÙ   rÚ   r†   )r�   r>   r4   r^   r5   r   rA   r   )r5   r>   )r  Ú
__module__Ú__qualname__Ú__annotations__r]   ÚabcÚabstractmethodrb   rh   rk   rx   r…   r‡   rˆ   rq   r´   r¼   rp   r×   rë   ro   rü   r˜   r    rW   rO   rM   rQ   rQ   v   sä  € € € € € € Ø€M€M�Mð 7?ØØ04ð!ð !ð !ð !ð !ð !ðF 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð
ð ð ð ð@Að Að Að AðF'ð 'ð 'ð 'ð0.ð .ð .ð .ð.:ð :ð :ð :ð@ð @ð @ð @ðDð ð ð ð*:ð :ð :ð :ðMð Mð Mð Mð^4ð 4ð 4ð 4ðl-Eð -Eð -Eð -Eð^ð ð ð ð>+ð +ð +ð +ðZ&ð &ð &ð &ð &ð &rO   rQ   )Ú	metaclassc                  ó^   — e Zd ZU dZded<   edd„¦   «         Zedd„¦   «         Zdd
„Zdd„Z	dS )ÚNDFrameApplyzg
    Methods shared by FrameApply and SeriesApply but
    not GroupByApply or ResamplerWindowApply
    r^   r4   rA   r-   c                ó   — | j         j        S r`   )r4   rŒ   ra   s    rM   rŒ   zNDFrameApply.indexÍ  s   € àŒxŒ~ÐrO   c                ó@   — | j                              | j        ¦  «        S r`   )r4   Ú_get_agg_axisr6   ra   s    rM   Úagg_axiszNDFrameApply.agg_axisÑ  s   € àŒx×%Ò% d¤iÑ0Ô0Ð0rO   rd   re   c                óf  — | j         }| j        }|dk    rHt          | t          ¦  «        r| j        }n#t          | t
          ¦  «        r| j        rdnd}nd}i |¥d|i¥}t          |dd¦  «        dk    rt          d¦  «        ‚|                      |||¦  «        \  }}|  	                    ||¦  «        }|S )	Nrb   rV   Fr;   r6   r   rD   ú"axis other than 0 is not supported)
r4   rF   rn   rB   r;   ÚSeriesApplyrv   rú   r´   r¼   )r\   rd   r4   rF   r;   r°   r›   r�   s           rM   rh   z#NDFrameApply.agg_or_apply_list_likeÕ  sÐ   € ð ŒhˆØ”ˆà�gÒÐÝ˜$¥
Ñ+Ô+ð Øœ��å˜D¥+Ñ.Ô.ð Ø&*¤kÐ<˜˜°u��à�Ø1˜Ð1 ¨&Ð1Ð1ˆFå�3˜ Ñ"Ô" aÒ'Ð'Ý%Ð&JÑKÔKÐKà×.Ò.¨w¸¸VÑDÔD‰ˆˆgØ×,Ò,¨T°7Ñ;Ô;ˆØˆrO   c                ó$  — |dv sJ ‚| j         }i }|dk    r"| j        rdnd}|                     d|i¦  «         t          |dd¦  «        dk    rt	          d	¦  «        ‚d }|                      ||||¦  «        \  }}|                      |||¦  «        }|S )
N©rx   rb   rb   rV   Fr;   r6   r   rD   r$  )r4   r;   Úupdaterv   rú   r×   rë   )	r\   rd   r4   rF   r;   r¾   rØ   rÚ   r�   s	            rM   rk   z#NDFrameApply.agg_or_apply_dict_likeì  sÀ   € ð Ð*Ð*Ð*Ð*Ð*ØŒhˆàˆØ�gÒÐØ"&¤+Ð8�Y�Y°5ˆFØ�MŠM˜8 VÐ,Ñ-Ô-Ð-å�3˜ Ñ"Ô" aÒ'Ð'Ý%Ð&JÑKÔKÐKàˆ	Ø$(×$:Ò$:Ø�S˜) Vñ%
ô %
Ñ!ˆ�kð ×,Ò,¨S°,ÀÑLÔLˆØˆrO   N©rA   r-   r  )
r  r  r  Ú__doc__r  ÚpropertyrŒ   r"  rh   rk   rW   rO   rM   r  r  Å  s”   € € € € € € ðð ð
 ÐÐÑàðð ð ñ „Xðð ð1ð 1ð 1ñ „Xð1ðð ð ð ð.ð ð ð ð ð rO   r  c                  óú  ‡ — e Zd ZU ded<   ddddœd5ˆ fd„Zeej        d6d„¦   «         ¦   «         Zeej        d6d„¦   «         ¦   «         Z	eej        d7d„¦   «         ¦   «         Z
eej        ej        	 d8d9d„¦   «         ¦   «         ¦   «         Zej        d„ ¦   «         Zd „ Zej        d:d%„¦   «         Zed6d&„¦   «         Zed6d'„¦   «         Zed(„ ¦   «         Zd;d)„Zˆ fd*„Zd+„ Zd<d,„Zd=d.„Zd/„ Zd>d1„Zd2„ Zd:d3„Zd;ˆ fd4„Zˆ xZ S )?rB   r,   r4   Fr3   NrR   r   r5   r   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rT   c               ó–   •— |dur|dk    rt          d|› d�¦  «        ‚t          ¦   «                              |||||||||	¬¦	  «	         d S )NFr2   zby_row=z not allowed)r;   r=   r?   rE   rF   )r[   Úsuperr]   )r\   r4   r5   r7   r9   r;   r=   r?   rE   rF   Ú	__class__s             €rM   r]   zFrameApply.__init__  sz   ø€ ð ˜ÐÐ 6¨XÒ#5Ð#5ÝÐ; vÐ;Ð;Ð;Ñ<Ô<Ð<Ý‰Œ×ÒØØØØØØØ'ØØð 	ñ 
	
ô 
	
ð 
	
ð 
	
ð 
	
rO   r-   c                ó   — d S r`   rW   ra   s    rM   rØ   zFrameApply.result_index#  ó	   € ð 	ˆrO   c                ó   — d S r`   rW   ra   s    rM   Úresult_columnszFrameApply.result_columns(  r1  rO   úGenerator[Series, None, None]c                ó   — d S r`   rW   ra   s    rM   Úseries_generatorzFrameApply.series_generator-  r1  rO   Tú5Callable[[npt.NDArray, Index, Index], dict[int, Any]]c                ó   — d S r`   rW   )r5   ÚnogilÚnopythonÚparallels       rM   Úgenerate_numba_apply_funcz$FrameApply.generate_numba_apply_func2  s	   € ð 	ˆrO   c                ó   — d S r`   rW   ra   s    rM   Úapply_with_numbazFrameApply.apply_with_numba:  rc   rO   c                óÜ   — | j         j                             ¦   «         D ]L\  }}t          |¦  «        st	          d|› d|› d�¦  «        ‚t          |¦  «        rt	          d|› d�¦  «        ‚ŒMd S )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.)r4   Údtypesr™   r   r[   r   )r\   ÚcolnameÚdtypes      rM   Úvalidate_values_for_numbaz$FrameApply.validate_values_for_numba>  s·   € à"œhœo×3Ò3Ñ5Ô5ð 
	ð 
	‰NˆG�UÝ# EÑ*Ô*ð Ý ð/˜gð /ð /Ø#ð/ð /ð /ñô ð õ (¨Ñ.Ô.ð Ý ðC˜gð Cð Cð Cñô ð ðð
	ð 
	rO   r›   ÚResTypeÚ	res_indexr^   c                ó   — d S r`   rW   ©r\   r›   rE  s      rM   Úwrap_results_for_axisz FrameApply.wrap_results_for_axisL  ri   rO   c                ó   — | j         S r`   )r3  ra   s    rM   Úres_columnszFrameApply.res_columnsT  s   € àÔ"Ð"rO   c                ó   — | j         j        S r`   )r4   r®   ra   s    rM   r®   zFrameApply.columnsX  s   € àŒxÔÐrO   c                ó   — | j         j        S r`   )r4   Úvaluesra   s    rM   rM  zFrameApply.values\  s   € àŒxŒÐrO   c                óH  — t          | j        ¦  «        r.| j        dk    rt          d¦  «        ‚|                      ¦   «         S t          | j        ¦  «        dk    r,t          | j        ¦  «        dk    r|                      ¦   «         S t          | j        t          ¦  «        r.| j        dk    rt          d¦  «        ‚|                      ¦   «         S t          | j        t          j        ¦  «        rŽ| j        dk    rt          d¦  «        ‚t          j        d¬¦  «        5  | j        j                             d| j        ¬	¦  «        }d
d
d
¦  «         n# 1 swxY w Y   | j                             ||j        ¬¦  «        S | j        dk    r4| j        dk    rt          d¦  «        ‚|                      | j        ¦  «        S t-          | j        j        ¦  «        s|                      ¦   «         S | j        r!|                      | j        | j        ¬¦  «        S |                      ¦   «         S )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ã   rb   )r5   N)ÚaxesrY   z:the 'numba' engine doesn't support result_type='broadcast'©r=   r?   )r   r5   r=   rú   rü   r—   r®   rŒ   Úapply_empty_resultrn   r>   ro   r  ÚufuncÚerrstater4   Ú_mgrrb   Ú_constructor_from_mgrrQ  r9   Úapply_broadcastrã   Úshaper7   Ú	apply_rawr?   Úapply_standard©r\   r›   s     rM   rb   zFrameApply.apply`  sw  € õ ˜œ	Ñ"Ô"ð 	2ØŒ{˜gÒ%Ð%Ý)ØOñô ð ð ×/Ò/Ñ1Ô1Ð1õ ˆtŒ|ÑÔ Ò!Ð!¥c¨$¬*¡o¤o¸Ò&:Ð&:Ø×*Ò*Ñ,Ô,Ð,õ �d”i¥Ñ%Ô%ð 	NØŒ{˜gÒ%Ð%Ý)ð8ñô ð ð —>’>Ñ#Ô#Ð#õ ˜œ	¥2¤8Ñ,Ô,ð 		NØŒ{˜gÒ%Ð%Ý)ðCñô ð õ ” Ð*Ñ*Ô*ð Gð GØœ(œ-×-Ò-¨g¸D¼IÐ-ÑFÔF�ðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð ”8×1Ò1°'ÀÄÐ1ÑMÔMÐMð Ô˜{Ò*Ð*ØŒ{˜gÒ%Ð%Ý)ØPñô ð ð ×'Ò'¨¬Ñ1Ô1Ð1õ �T”X”^Ñ$Ô$ð 	XØ×*Ò*Ñ,Ô,Ð,ð ŒXð 	XØ—>’>¨¬ÀDÔDV�>ÑWÔWÐWà×"Ò"Ñ$Ô$Ð$s   Ä'EÅEÅEc                ór  •— | j         }| j        }| j        dk    r| j         n| j         j        | _         d| _        d }	 t          ¦   «                              ¦   «         }|| _         || _        n# || _         || _        w xY w|dk    r|�|j        n|}|€% | j         j        | j        |fd| j        i| j        ¤Ž}|S )Nr   rD   rE   )	r4   r6   r„   r.  rx   rb   r5   rE   rF   )r\   r4   r6   r�   r/  s       €rM   rx   zFrameApply.agg–  sÈ   ø€ ØŒhˆØŒyˆð  $œy¨Aš~˜~�4”8�8°4´8´:ˆŒØˆŒ	àˆð	Ý‘W”W—[’[‘]”]ˆFàˆDŒHØˆDŒIˆIøð ˆDŒHØˆDŒIÐÐÐÐà�1Š9ˆ9Ø!'Ð!3�V”X�X¸ˆFàˆ>Ø#�T”X”^ D¤I¨tÐSÐS¸$¼)ÐSÀtÄ{ÐSÐSˆFàˆs   ½ A, Á,A<c                óÚ  — t          | j        ¦  «        sJ ‚| j        dvr| j                             ¦   «         S | j        dk    }ddlm} |s”	 | j        dk    r1 | j         |g t          j	        ¬¦  «        g| j
        ¢R i | j        ¤Ž}n5 | j         || j        t          j	        ¬¦  «        g| j
        ¢R i | j        ¤Ž}t          ||¦  «         }n# t          $ r Y nw xY w|rrt          | j        ¦  «        r1 | j         |g t          j	        ¬¦  «        g| j
        ¢R i | j        ¤Ž}nt          j        }| j                             || j        ¬¦  «        S | j                             ¦   «         S )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
        )rX   NrX   r   r¹   ©rB  )rŒ   rB  ©rŒ   )rr   r5   r9   r4   Úcopyr»   r.   r6   r  Úfloat64rE   rF   r®   rn   rŠ   r—   r"  ÚnanÚ_constructor_sliced)r\   Úshould_reducer.   rÞ   s       rM   rS  zFrameApply.apply_empty_result­  sÆ  € õ ˜œ	Ñ"Ô"Ð"Ð"Ð"ð ÔÐ#3Ð3Ð3Ø”8—=’=‘?”?Ð"ð Ô(¨HÒ4ˆà!Ð!Ð!Ð!Ð!Ð!àð 	:ð:Ø”9 ’>�>Ø!˜œ	Ø˜˜r­¬Ð4Ñ4Ô4ðØ7;´yðð ð ØDHÄKðð �A�Að "˜œ	Ø˜ T¤\½¼ÐDÑDÔDðàœðð ð ð œ+ðð �Aõ %/¨q°&Ñ$9Ô$9Ð 9��øõ ð ð ð Ø�ðøøøð
 ð 	#Ý�4”=Ñ!Ô!ð Ø�D”I˜f˜f R­r¬zÐ:Ñ:Ô:ÐV¸T¼YÐVÐVÐVÈ$Ì+ÐVÐV��å”F�à”8×/Ò/°¸¼Ð/ÑGÔGÐGà”8—=’=‘?”?Ð"s   ÁA1C Ã
CÃCc                ó²  — d„ }|dk    rC|€i n|}t          | j        fi |¤Ž} || j        | j        ¦  «        }t	          j        |¦  «        }n9t	          j         || j        ¦  «        | j        | j        g| j        ¢R i | j        ¤Ž}|j	        dk    r'| j
                             || j        | j        ¬¦  «        S | j
                             || j        ¬¦  «        S )z$apply to the values as a numpy arrayc                ó   ‡ — ˆ fd„}|S )z�
            Wrap user supplied function to work around numpy issue.

            see https://github.com/numpy/numpy/issues/8352
            c                 óx   •—  ‰| i |¤Ž}t          |t          ¦  «        rt          j        |t          ¬¦  «        }|S )Nr_  )rn   r>   r  ÚarrayÚobject)rE   rF   r�   r5   s      €rM   Úwrapperz<FrameApply.apply_raw.<locals>.wrap_function.<locals>.wrapperå  sB   ø€ Ø˜˜tÐ. vÐ.Ð.�Ý˜f¥cÑ*Ô*ð <ÝœX fµFÐ;Ñ;Ô;�FØ�rO   rW   )r5   rk  s   ` rM   Úwrap_functionz+FrameApply.apply_raw.<locals>.wrap_functionÞ  s#   ø€ ðð ð ð ð ð ˆNrO   rù   NrÅ   ©rŒ   r®   r`  )r%   r5   rM  r6   r  ÚsqueezeÚapply_along_axisrE   rF   rƒ   r4   Ú_constructorrŒ   r®   rd  r"  )r\   r=   r?   rl  Ú	nb_looperr�   s         rM   rZ  zFrameApply.apply_rawÛ  s  € ð	ð 	ð 	ð �WÒÐØ"/Ð"7˜B˜B¸]ˆMõ .Ø”	ðð Ø*ðð ˆIð �Y˜tœ{¨D¬IÑ6Ô6ˆFå”Z Ñ'Ô'ˆFˆFåÔ(Ø�˜dœiÑ(Ô(Ø”	Ø”ðð ”ð	ð ð ð
 ”+ðð ˆFð Œ;˜!ÒÐØ”8×(Ò(¨°t´zÈ4Ì<Ð(ÑXÔXÐXà”8×/Ò/°¸d¼mÐ/ÑLÔLÐLrO   Útargetc                ó   — t          | j        ¦  «        sJ ‚t          j        |j        ¦  «        }|j        d         }t          |j        ¦  «        D ]…\  }} | j        ||         g| j        ¢R i | j	        ¤Ž}t          j
        |¦  «        j        }|dk    rt          d¦  «        ‚|dk    r"|t          |¦  «        k    rt          d¦  «        ‚||d d …|f<   Œ†| j                             ||j        |j        ¬¦  «        }|S )Nr   rD   ztoo many dims to broadcastzcannot broadcast resultrm  )rr   r5   r  Ú
empty_likerM  rY  r¬   r®   rE   rF   Úasarrayrƒ   r[   r—   r4   rp  rŒ   )	r\   rr  Úresult_valuesÚresult_compareÚir‚   ÚresÚaresr�   s	            rM   rX  zFrameApply.apply_broadcast	  s  € Ý˜œ	Ñ"Ô"Ð"Ð"Ð"åœ f¤mÑ4Ô4ˆð  œ aœˆå ¤Ñ/Ô/ð 	&ð 	&‰FˆAˆsØ�$”)˜F 3œKÐC¨$¬)ÐCÐCÐC°t´{ÐCÐCˆCÝ”:˜c‘?”?Ô'ˆDð �aŠxˆxÝ Ð!=Ñ>Ô>Ð>Ø�qŠyˆyà!¥S¨¡X¤XÒ-Ð-Ý$Ð%>Ñ?Ô?Ð?à"%ˆM˜!˜!˜!˜Q˜$ÑÐð ”×&Ò&Ø ¤°v´~ð 'ñ 
ô 
ˆð ˆrO   c                ó¢   — | j         dk    r|                      ¦   «         \  }}n|                      ¦   «         \  }}|                      ||¦  «        S )Nr3   )r=   Úapply_series_generatorÚapply_series_numbaÚwrap_resultsrG  s      rM   r[  zFrameApply.apply_standard%  sU   € ØŒ;˜(Ò"Ð"Ø!%×!<Ò!<Ñ!>Ô!>ÑˆG�Y�Yà!%×!8Ò!8Ñ!:Ô!:ÑˆG�Yð × Ò  ¨)Ñ4Ô4Ð4rO   útuple[ResType, Index]c                ó‚  — t          | j        ¦  «        sJ ‚| j        }| j        }i }t	          dd ¦  «        5  t          |¦  «        D ]]\  }} | j        |g| j        ¢R i | j        ¤Ž||<   t          ||         t          ¦  «        r||          
                    d¬¦  «        ||<   Œ^	 d d d ¦  «         n# 1 swxY w Y   ||fS )Nzmode.chained_assignmentF)Údeep)rr   r5   r6  rØ   r   r¬   rE   rF   rn   r$   ra  )r\   Ú
series_genrE  r›   rx  r   s         rM   r|  z!FrameApply.apply_series_generator.  s  € Ý˜œ	Ñ"Ô"Ð"Ð"Ð"àÔ*ˆ
ØÔ%ˆ	àˆåÐ5°tÑ<Ô<ð 	=ð 	=Ý! *Ñ-Ô-ð =ð =‘��1à&˜TœY qÐD¨4¬9ÐDÐDÐD¸¼ÐDÐD�˜‘
Ý˜g aœj­)Ñ4Ô4ð =ð ")¨¤§¢°e Ñ!<Ô!<�G˜A‘Jøð=ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð ˜	Ð!Ð!s   ·A.B2Â2B6Â9B6c                ó  — | j                              dd¦  «        rt          d¦  «        ‚| j        j        j        r| j        j        st          d¦  «        ‚|                      ¦   «          |                      ¦   «         }|| j	        fS )Nr;  FzAParallel apply is not supported when raw=False and engine='numba'zBThe index/columns must be unique when raw=False and engine='numba')
r?   Úgetrú   r4   rŒ   Ú	is_uniquer®   rC  r>  rØ   r\  s     rM   r}  zFrameApply.apply_series_numbaA  s—   € ØÔ×!Ò! *¨eÑ4Ô4ð 	Ý%ØSñô ð ð ŒxŒ~Ô'ð 	¨t¬|Ô/Eð 	Ý%ØTñô ð ð 	×&Ò&Ñ(Ô(Ð(Ø×'Ò'Ñ)Ô)ˆØ˜Ô)Ð)Ð)rO   c                ó0  — ddl m} t          |¦  «        dk    r/d|v r+t          |d         ¦  «        r|                      ||¦  «        S | j        j        }t          |¦  «        dk    r||u r ||t          j        ¬¦  «        }n ||¦  «        }||_	        |S )Nr   r¹   r_  )
r»   r.   r—   r   rH  r4   rd  r  rb  rŒ   )r\   r›   rE  r.   Úconstructor_slicedr�   s         rM   r~  zFrameApply.wrap_resultsN  s³   € Ø!Ð!Ð!Ð!Ð!Ð!õ ˆw‰<Œ<˜!ÒÐ  W  µ¸WÀQ¼ZÑ1HÔ1H Ø×-Ò-¨g°yÑAÔAÐAð "œXÔ9ÐÝˆw‰<Œ<˜1ÒÐÐ!3°vÐ!=Ð!=Ø'Ð'¨µr´zÐBÑBÔBˆFˆFà'Ð'¨Ñ0Ô0ˆFØ ˆŒàˆrO   c                óÄ   •— | j         dk    r5| j        }|j        | j                 }|                     || j        ¬¦  «        S t          ¦   «                              ¦   «         S )NÚsizer`  )r5   r4   rY  r6   rd  r"  r.  ro   )r\   r4   Úvaluer/  s      €rM   ro   zFrameApply.apply_strc  sX   ø€ ð Œ9˜ÒÐà”(ˆCØ”I˜dœiÔ(ˆEØ×*Ò*¨5¸¼Ð*ÑFÔFÐFÝ‰wŒw× Ò Ñ"Ô"Ð"rO   )r4   r   r5   r   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rT   r)  ©rA   r4  ©TTF©rA   r7  ©r›   rD  rE  r-   rA   r^   r  )r3   N©rr  r,   rA   r,   )rA   r  )!r  r  r  r  r]   r+  r  r  rØ   r3  r6  ÚstaticmethodÚ	functoolsÚcacher<  r>  rC  rH  rJ  r®   r   rM  rb   rx   rS  rZ  rX  r[  r|  r}  r~  ro   Ú__classcell__©r/  s   @rM   rB   rB     s¥  ø€ € € € € € Ø€N€N�Nð ,1ØØ04ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð< ØÔðð ð ñ Ôñ „Xðð ØÔðð ð ñ Ôñ „Xðð ØÔðð ð ñ Ôñ „Xðð Ø„_ØÔà27ðð ð ð ñ Ôñ „_ñ „\ðð
 	Ôðð ñ Ôððð ð ð 	Ôðð ð ñ Ôðð ð#ð #ð #ñ „Xð#ð ð ð  ð  ñ „Xð ð ðð ñ „^ðð4%ð 4%ð 4%ð 4%ðlð ð ð ð ð.,#ð ,#ð ,#ð\,Mð ,Mð ,Mð ,Mð\ð ð ð ð85ð 5ð 5ð"ð "ð "ð "ð&*ð *ð *ðð ð ð ð*#ð #ð #ð #ð #ð #ð #ð #ð #ð #rO   c                  ó¬   — e Zd ZU dZded<   edd„¦   «         Zeej	        	 ddd
„¦   «         ¦   «         Z
dd„Zedd„¦   «         Zedd„¦   «         Zdd„ZdS )rH   r   r   r6   rA   r4  c                ó^   ‡ — ˆ fd„t          t          ‰ j        ¦  «        ¦  «        D ¦   «         S )Nc              3  óP   •K  — | ] }‰j                              |d ¬¦  «        V — Œ!dS )rD   r•   N)r4   rÉ   )r~   rx  r\   s     €rM   r   z1FrameRowApply.series_generator.<locals>.<genexpr>s  s5   øè è € ÐKÐK¨Q�”—’˜a a�Ñ(Ô(ÐKÐKÐKÐKÐKÐKrO   )Úranger—   r®   ra   s   `rM   r6  zFrameRowApply.series_generatorq  s/   ø€ àKÐKÐKÐKµ%½¸D¼LÑ8IÔ8IÑ2JÔ2JÐKÑKÔKÐKrO   TFr7  c                óÀ   ‡‡‡— t          d¦  «        }ddlmŠ ddlmŠ |j                             | ¦  «        Š|                     |||¬¦  «        ˆˆˆfd„¦   «         }|S )Nrù   r   r¹   ©Úmaybe_cast_str©r9  r:  r;  c           	     ó°   •— i }t          | j        d         ¦  «        D ]7} ‰| d d …|f         | ‰||         ¦  «        ¬¦  «        } ‰|¦  «        ||<   Œ8|S )NrD   rº   )r˜  rY  )	rM  Ú	col_namesÚdf_indexr›   ÚjÚserr.   Ú
jitted_udfr›  s	         €€€rM   Ú
numba_funcz;FrameRowApply.generate_numba_apply_func.<locals>.numba_func…  sw   ø€ àˆGÝ˜6œ<¨œ?Ñ+Ô+ð -ð -�à�fØ˜1˜1˜1˜a˜4”L¨°~°~ÀiÐPQÄlÑ7SÔ7Sðñ ô �ð (˜Z¨™_œ_�˜‘
�
ØˆNrO   ©r   r»   r.   Úpandas.core._numba.extensionsr›  Ú	extendingÚregister_jitableÚjit©	r5   r9  r:  r;  rù   r£  r.   r¢  r›  s	         @@@rM   r<  z'FrameRowApply.generate_numba_apply_funcu  s›   øøø€ õ
 +¨7Ñ3Ô3ˆØ!Ð!Ð!Ð!Ð!Ð!ð 	AÐ@Ð@Ð@Ð@Ð@à”_×5Ò5°dÑ;Ô;ˆ
ð 
�Š˜¨¸HˆÑ	EÔ	Eð	ð 	ð 	ð 	ð 	ð 	ñ 
FÔ	Eð	ð ÐrO   údict[int, Any]c           	     óö  —  | j         t          t          | j        ¦  «        fi | j        ¤Ž}ddlm} | j        j        }|j	        dk    r| 
                    t          ¦  «        }| j        j        }|j	        dk    r| 
                    t          ¦  «        } ||¦  «        5 } ||¦  «        5 }t           || j        ||¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |S )Nr   ©Úset_numba_dataÚstring)r<  r
   r   r5   r?   r¥  r­  r4   rŒ   rB  Úastyperj  r®   rä   rM  ©r\   Únb_funcr­  rŒ   r®   ry  s         rM   r>  zFrameRowApply.apply_with_numba’  s€  € Ø0�$Ô0Ý•˜4œ9Ñ%Ô%ð
ð 
Ø)-Ô);ð
ð 
ˆð 	AÐ@Ð@Ð@Ð@Ð@à””ˆØŒ;˜(Ò"Ð"Ø—L’L¥Ñ(Ô(ˆEà”(Ô"ˆØŒ=˜HÒ$Ð$Ø—n’n¥VÑ,Ô,ˆGð ˆ^˜EÑ"Ô"ð 	= e¨^¨^¸GÑ-DÔ-Dð 	=ÈÝ�w�w˜tœ{¨G°UÑ;Ô;Ñ<Ô<ˆCð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=àˆ
s6   ÂC.Â+ CÃC.ÃC	ÃC.ÃC	ÃC.Ã.C2Ã5C2r-   c                ó   — | j         S r`   ©r®   ra   s    rM   rØ   zFrameRowApply.result_index¦  ó
   € àŒ|ÐrO   c                ó   — | j         S r`   r`  ra   s    rM   r3  zFrameRowApply.result_columnsª  ó
   € àŒzÐrO   r›   rD  rE  r^   c                óØ  — | j         dk    r#| j                             |¦  «        }||_        |S | j         €Nt	          d„ |                     ¦   «         D ¦   «         ¦  «        r#| j                             |¦  «        }||_        |S 	 | j                             |¬¦  «        }nL# t          $ r?}dt          |¦  «        v r(| j                             |¦  «        }||_        |cY d}~S ‚ d}~ww xY wt          |d         t          ¦  «        s6t          |j        ¦  «        t          | j        ¦  «        k    r| j        |_        t          |j        ¦  «        t          |¦  «        k    r||_        |S )zreturn the results for the rowsrX   Nc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r`   )rn   rä   )r~   r  s     rM   r   z6FrameRowApply.wrap_results_for_axis.<locals>.<genexpr>¹  s=   è è € ð .
ð .
Ø$%�J�q�$ÑÔð.
ð .
ð .
ð .
ð .
ð .
rO   ©Údataz%All arrays must be of the same lengthr   )r9   r4   rd  rŒ   rã   rM  rp  r[   r>   rn   r$   r—   rJ  r®   )r\   r›   rE  ry  r�   r�   s         rM   rH  z#FrameRowApply.wrap_results_for_axis®  s|  € ð
 Ô˜xÒ'Ð'à”(×.Ò.¨wÑ7Ô7ˆCØ!ˆCŒIØˆJàÔÐ%­#ð .
ð .
Ø)0¯ªÑ)9Ô)9ð.
ñ .
ô .
ñ +
ô +
Ð%ð
 ”(×.Ò.¨wÑ7Ô7ˆCØ!ˆCŒIØˆJð
	Ø”X×*Ò*°Ð*Ñ8Ô8ˆFˆFøÝð 	ð 	ð 	Ø6½#¸c¹(¼(ÐBÐBð ”h×2Ò2°7Ñ;Ô;�Ø%�”	Ø�
�
�
�
�
�
àøøøøð	øøøõ ˜' !œ*¥iÑ0Ô0ð 	0Ý�6”<Ñ Ô ¥C¨Ô(8Ñ$9Ô$9Ò9Ð9Ø#Ô/�”åˆvŒ~ÑÔ¥# i¡.¤.Ò0Ð0Ø&ˆFŒNàˆs$   ÂB! Â!
C*Â+3C%ÃC*Ã$C%Ã%C*Nr‹  rŒ  r�  ©rA   rª  r)  rŽ  )r  r  r  r6   r  r+  r6  r�  r‘  r’  r<  r>  rØ   r3  rH  rW   rO   rM   rH   rH   n  så   € € € € € € Ø€DÐÐÐÑàðLð Lð Lñ „XðLð Ø„_à27ðð ð ð ñ „_ñ „\ðð6ð ð ð ð( ðð ð ñ „Xðð ðð ð ñ „Xðð'ð 'ð 'ð 'ð 'ð 'rO   rH   c                  óÆ   ‡ — e Zd ZU dZded<   dˆ fd„Zedd	„¦   «         Zee	j
        	 ddd„¦   «         ¦   «         Zdd„Zedd„¦   «         Zedd„¦   «         Zdd„Zd d„Zˆ xZS )!rI   rD   r   r6   rr  r,   rA   c                ó^   •— t          ¦   «                              |j        ¦  «        }|j        S r`   )r.  rX  r„   )r\   rr  r�   r/  s      €rM   rX  z FrameColumnApply.apply_broadcastÛ  s#   ø€ Ý‘”×(Ò(¨¬Ñ2Ô2ˆØŒxˆrO   r4  c              #  óª  K  — | j         }t          |¦  «        }t          |¦  «        dk    sJ ‚| j                             dd¬¦  «        }|j        }|j        d         j                             ¦   «         }t          |j
        t          ¦  «        rA| j        }t          t          |¦  «        ¦  «        D ]}|                     |d¬¦  «        V — Œd S t          || j        ¦  «        D ]m\  }}||_        |                     |¦  «         t                                |d|¦  «         |s*t%          |j        d         ¦  «        |j        d         _        |V — Œnd S )Nr   r•   Ú_name)rM  r&   r—   r4   rÉ   rV  ÚblocksÚrefsÚhas_referencern   rB  r!   r˜  rÑ   rŒ   Ú
set_valuesrj  Ú__setattr__r   )	r\   rM  r¡  ÚmgrÚis_viewr4   rx  Úarrrœ   s	            rM   r6  z!FrameColumnApply.series_generatorß  sV  è è € à”ˆÝ/°Ñ7Ô7ˆÝ�6‰{Œ{˜QŠˆˆˆð Œh�mŠm˜A AˆmÑ&Ô&ˆØŒhˆà”*˜Q”-Ô$×2Ò2Ñ4Ô4ˆå�c”i¥Ñ0Ô0ð 	ð ”(ˆCÝ�3˜s™8œ8‘_”_ð *ð *�Ø—h’h˜q q�hÑ)Ô)Ð)Ð)Ð)Ð)ð*ð *õ ! ¨¬Ñ4Ô4ð ð ‘	��Tà�”Ø—’˜sÑ#Ô#Ð#Ý×"Ò" 3¨°Ñ6Ô6Ð6Øð Hõ *9¸¼ÀA¼Ñ)GÔ)G�C”J˜q”MÔ&Ø�	�	�	�	ðð rO   TFr7  c                óÀ   ‡‡‡— t          d¦  «        }ddlmŠ ddlmŠ |j                             | ¦  «        Š|                     |||¬¦  «        ˆˆˆfd„¦   «         }|S )Nrù   r   r¹   rš  rœ  c           	     óÌ   •— i }t          | j        d         ¦  «        D ]E} ‰| |                              ¦   «         | ‰||         ¦  «        ¬¦  «        } ‰|¦  «        ||<   ŒF|S )Nr   rº   )r˜  rY  ra  )	rM  Úcol_names_indexrŒ   r›   rx  r¡  r.   r¢  r›  s	         €€€rM   r£  z>FrameColumnApply.generate_numba_apply_func.<locals>.numba_func  s~   ø€ àˆGõ ˜6œ<¨œ?Ñ+Ô+ð -ð -�ð �fØ˜1”I—N’NÑ$Ô$Ø)Ø'˜¨¨a¬Ñ1Ô1ðñ ô �ð
 (˜Z¨™_œ_�˜‘
�
àˆNrO   r¤  r©  s	         @@@rM   r<  z*FrameColumnApply.generate_numba_apply_func  s–   øøø€ õ
 +¨7Ñ3Ô3ˆØ!Ð!Ð!Ð!Ð!Ð!Ø@Ð@Ð@Ð@Ð@Ð@à”_×5Ò5°dÑ;Ô;ˆ
à	�Š˜¨¸HˆÑ	EÔ	Eð	ð 	ð 	ð 	ð 	ð 	ñ 
FÔ	Eð	ð  ÐrO   rª  c           	     óP  —  | j         t          t          | j        ¦  «        fi | j        ¤Ž}ddlm}  || j        j        ¦  «        5 } || j	        ¦  «        5 }t           || j        ||¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |S )Nr   r¬  )r<  r
   r   r5   r?   r¥  r­  r4   rŒ   r®   rä   rM  r°  s         rM   r>  z!FrameColumnApply.apply_with_numba!  s?  € Ø0�$Ô0Ý•˜4œ9Ñ%Ô%ð
ð 
Ø)-Ô);ð
ð 
ˆð 	AÐ@Ð@Ð@Ð@Ð@ð ˆ^˜DœHœNÑ+Ô+ð 	=¨u°n°nØŒLñ7
ô 7
ð 	=àÝ�w�w˜tœ{¨G°UÑ;Ô;Ñ<Ô<ˆCð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð
 ˆ
s6   ÁBÁ BÁ8BÂB	ÂBÂB	ÂBÂBÂ"Br-   c                ó   — | j         S r`   r`  ra   s    rM   rØ   zFrameColumnApply.result_index1  r¶  rO   c                ó   — | j         S r`   r³  ra   s    rM   r3  zFrameColumnApply.result_columns5  r´  rO   r›   rD  rE  r^   c                óð   — | j         dk    r|                      ||¦  «        }nSt          |d         t          ¦  «        s"| j                             |¦  «        }||_        n|                      ||¦  «        }|S )z"return the results for the columnsrZ   r   )r9   Úinfer_to_same_shapern   r$   r4   rd  rŒ   ©r\   r›   rE  r�   s       rM   rH  z&FrameColumnApply.wrap_results_for_axis9  s|   € ð Ô˜xÒ'Ð'Ø×-Ò-¨g°yÑAÔAˆFˆFõ ˜G AœJ­	Ñ2Ô2ð 	BØ”X×1Ò1°'Ñ:Ô:ˆFØ$ˆFŒLˆLð ×-Ò-¨g°yÑAÔAˆFàˆrO   c                ó„   — | j                              |¬¦  «        }|j        }||_        |                     d¬¦  «        }|S )z7infer the results to the same shape as the input objectr¹  F©ra  )r4   rp  r„   rŒ   Úinfer_objectsrÐ  s       rM   rÏ  z$FrameColumnApply.infer_to_same_shapeN  sG   € à”×&Ò&¨GÐ&Ñ4Ô4ˆØ”ˆð !ˆŒð ×%Ò%¨5Ð%Ñ1Ô1ˆàˆrO   r�  r‹  rŒ  r�  r»  r)  rŽ  )r›   rD  rE  r-   rA   r,   )r  r  r  r6   r  rX  r+  r6  r�  r‘  r’  r<  r>  rØ   r3  rH  rÏ  r“  r”  s   @rM   rI   rI   Ø  s!  ø€ € € € € € Ø€DÐÐÐÑðð ð ð ð ð ð ð!ð !ð !ñ „Xð!ðF Ø„_à27ðð ð ð ñ „_ñ „\ðð8ð ð ð ð  ðð ð ñ „Xðð ðð ð ñ „Xððð ð ð ð*ð ð ð ð ð ð ð rO   rI   c                  ó~   ‡ — e Zd ZU ded<   dZded<   ded<   ej        dd	œdˆ fd„Zdd„Zˆ fd„Z	dd„Z
d„ Zdd„Zˆ xZS )r%  r.   r4   r   r   r6   rS   r;   r2   )Úconvert_dtyper;   r5   r   rÕ  úbool | lib.NoDefaultrA   rT   c          	     óØ   •— |t           j        u rd}n(t          j        dt          t          ¦   «         ¬¦  «         || _        t          ¦   «                              ||dd |||¬¦  «         d S )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)r7   r9   r;   rE   rF   )	r   Ú
no_defaultÚwarningsÚwarnÚFutureWarningr   rÕ  r.  r]   )r\   r4   r5   rÕ  r;   rE   rF   r/  s          €rM   r]   zSeriesApply.__init__a  s�   ø€ ð �CœNÐ*Ð*Ø ˆMˆMåŒMð?õ Ý+Ñ-Ô-ðñ ô ð ð +ˆÔå‰Œ×ÒØØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
rO   r^   c                óp  — | j         }t          |¦  «        dk    r|                      ¦   «         S t          | j        ¦  «        r|                      ¦   «         S t          | j        t          ¦  «        r|                      ¦   «         S | j	        dk    r|  
                    ¦   «         S |                      ¦   «         S )Nr   rV   )r4   r—   rS  r   r5   rü   rn   r>   ro   r;   Úapply_compatr[  ©r\   r4   s     rM   rb   zSeriesApply.apply�  s§   € ØŒhˆåˆs‰8Œ8�qŠ=ˆ=Ø×*Ò*Ñ,Ô,Ð,õ ˜œ	Ñ"Ô"ð 	2Ø×/Ò/Ñ1Ô1Ð1å�d”i¥Ñ%Ô%ð 	$à—>’>Ñ#Ô#Ð#àŒ;˜)Ò#Ð#Ø×$Ò$Ñ&Ô&Ð&ð ×"Ò"Ñ$Ô$Ð$rO   c                óØ  •— t          ¦   «                              ¦   «         }|€Æ| j        }| j        }t	          |¦  «        sJ ‚	  |j        |fd| j        i| j        ¤Ž}d|› dt          |¦  «        j	        › dt          |¦  «        j	        › d�}t          j        |t          t          ¦   «         ¬¦  «         n3# t          t          t           f$ r  ||g| j        ¢R i | j        ¤Ž}Y nw xY w|S )NrE   zusing z in z3.agg cannot aggregate and has been deprecated. Use z&.transform to keep behavior unchanged.rØ  )r.  rx   r4   r5   rr   rb   rE   rF   r  r  rÛ  rÜ  rÝ  r   r[   r  r‰   )r\   r�   r4   r5   r  r/  s        €rM   rx   zSeriesApply.agg•  s  ø€ Ý‘”—’‘”ˆØˆ>Ø”(ˆCØ”9ˆDå˜D‘>”>Ð!Ð!�>ð

QØ"˜œ 4ÐGÐG¨d¬iÐG¸4¼;ÐGÐG�ð
0˜Tð 0ð 0¥t¨C¡y¤yÔ'9ð 0ð 0Ý04°S±	´	Ô0Bð0ð 0ð 0ð õ
 ”˜c¥=Õ=MÑ=OÔ=OÐPÑPÔPÐPÐPøõ ¥µ	Ð:ð >ð >ð >Ø˜˜cÐ= D¤IÐ=Ð=Ð=°´Ð=Ð=���ð>øøøð ˆs   ÁB7 Â7-C'Ã&C'c                ó|   — | j         }|                     |j        |j        ¬¦  «                             |d¬¦  «        S )N)rB  rŒ   rb   ©rô   )r4   rp  rB  rŒ   Ú__finalize__rà  s     rM   rS  zSeriesApply.apply_empty_result®  sC   € ØŒhˆØ×Ò c¤i°s´yÐÑAÔA×NÒNØ˜ð Oñ 
ô 
ð 	
rO   c                óP  — | j         }| j        }t          |¦  «        r;t          j        |¦  «        }|r%| j        s| j        s|                     |d¬¦  «        S 	 |                     |d¬¦  «        }n4# t          t          t          f$ r |                     |d¬¦  «        }Y nw xY w|S )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)r;   r2   )r4   r5   rr   rs   rt   rE   rF   rb   r[   r  r‰   )r\   r4   r5   rw   r�   s        rM   rß  zSeriesApply.apply_compat´  s¼   € ð ŒhˆØŒyˆå�D‰>Œ>ð 	5ÝÔ# DÑ)Ô)ˆAØð 5˜œð 5¨4¬;ð 5Ø—y’y ¨e�yÑ4Ô4Ð4ð	3Ø—Y’Y˜t¨H�YÑ5Ô5ˆFˆFøÝ�N­IÐ6ð 	3ð 	3ð 	3Ø—Y’Y˜t¨E�YÑ2Ô2ˆFˆFˆFð	3øøøàˆs   ÁA2 Á2.B#Â"B#c                óê  ‡ ‡— t          t          ‰ j        ¦  «        Š‰ j        }t	          ‰t
          j        ¦  «        rDt          j        d¬¦  «        5   ‰|g‰ j        ¢R i ‰ j	        ¤Žcd d d ¦  «         S # 1 swxY w Y   n‰ j
        s ‰|g‰ j        ¢R i ‰ j	        ¤ŽS ‰ j        s‰ j	        rˆˆ fd„}n‰}t	          |j        t          ¦  «        rdnd }|                     ||‰ j        ¬¦  «        }t          |¦  «        rDt	          |d         t           ¦  «        r)|                     t%          |¦  «        |j        ¬¦  «        S |                     ||j        ¬¦  «                             |d¬¦  «        S )	NrO  rP  c                ó0   •—  ‰| g‰j         ¢R i ‰j        ¤ŽS r`   )rE   rF   )r  r5   r\   s    €€rM   Úcurriedz+SeriesApply.apply_standard.<locals>.curried×  s'   ø€ Ø�t˜AÐ9 ¤	Ð9Ð9Ð9¨T¬[Ð9Ð9Ð9rO   )ÚmapperÚ	na_actionÚconvertr   r`  rb   rã  )r
   r   r5   r4   rn   r  rT  rU  rE   rF   r;   rB  r    Ú_map_valuesrÕ  r—   r$   Ú_constructor_expanddimr†   rŒ   rp  rä  )r\   r4   rè  ÚactionÚmappedr5   s   `    @rM   r[  zSeriesApply.apply_standardÊ  sí  øø€ å•H˜dœiÑ(Ô(ˆØŒhˆå�d�BœHÑ%Ô%ð 	8Ý” Ð*Ñ*Ô*ð <ð <Ø�t˜CÐ; $¤)Ð;Ð;Ð;¨t¬{Ð;Ð;ð<ð <ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð <à”ð 	8Ø�4˜Ð7˜dœiÐ7Ð7Ð7¨4¬;Ð7Ð7Ð7àŒ9ð 	˜œð 	ð:ð :ð :ð :ð :ð :ð :ð ˆGõ (¨¬	Õ3CÑDÔDÐN��È$ˆØ—’Ø f°dÔ6Hð !ñ 
ô 
ˆõ ˆv‰;Œ;ð 	�: f¨Q¤iµÑ;Ô;ð 	ð ×-Ò-­d°6©l¬lÀ#Ä)Ð-ÑLÔLÐLà×#Ò# F°#´)Ð#Ñ<Ô<×IÒIØ˜Gð Jñ ô ð s   ÁA6Á6A:Á=A:)
r4   r.   r5   r   rÕ  rÖ  r;   rS   rA   rT   r  )rA   r.   )r  r  r  r  r6   r   rÚ  r]   rb   rx   rS  rß  r[  r“  r”  s   @rM   r%  r%  \  sÞ   ø€ € € € € € Ø€K€K�KØ€DÐÐÐÑØ/Ð/Ð/Ñ/ð /2¬nØ6>ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð@%ð %ð %ð %ð(ð ð ð ð ð2
ð 
ð 
ð 
ðð ð ð,$ð $ð $ð $ð $ð $ð $ð $rO   r%  c                  óH   ‡ — e Zd ZU ded<   dˆ fd„Zd	„ Zd
„ Zdd„Zdd„Zˆ xZ	S )ÚGroupByApplyz GroupBy | Resampler | BaseWindowr4   úGroupBy[NDFrameT]r5   r   rA   rT   c               óä   •— |                      ¦   «         }|j                             |                     dd¦  «        ¦  «        | _        t          ¦   «                              ||dd ||¬¦  «         d S )Nr6   r   F©r7   r9   rE   rF   )ra  r4   rG   r„  r6   r.  r]   ©r\   r4   r5   rE   rF   r/  s        €rM   r]   zGroupByApply.__init__ô  st   ø€ ð —’‘”ˆØ”G×,Ò,¨V¯ZªZ¸ÀÑ-BÔ-BÑCÔCˆŒ	Ý‰Œ×ÒØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
rO   c                ó   — t           ‚r`   ©rú   ra   s    rM   rb   zGroupByApply.apply  ó   € Ý!Ð!rO   c                ó   — t           ‚r`   r÷  ra   s    rM   r…   zGroupByApply.transform
  rø  rO   rd   re   r^   c           	     ó   — | j         }| j        }|dk    ri |¥ddi¥}t          |dd¦  «        dk    rt          d¦  «        ‚|j        j        dk    r|j        }n|j        }t          j        |dd	t          |d¦  «        ¬
¦  «        5  |  
                    |||¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   |                      ||¦  «        }|S )Nrb   r;   Fr6   r   rD   r$  Úas_indexT©Ú	condition)r4   rF   rv   rú   Ú_selected_objrƒ   Ú_obj_with_exclusionsrs   Útemp_setattrr  r´   r¼   )r\   rd   r4   rF   r¤   r°   r›   r�   s           rM   rh   z#GroupByApply.agg_or_apply_list_like  sF  € ð ŒhˆØ”ˆØ�gÒÐØ0˜Ð0 ¨%Ð0Ð0ˆFå�3˜ Ñ"Ô" aÒ'Ð'Ý%Ð&JÑKÔKÐKàÔÔ! QÒ&Ð&àÔ,ˆLˆLàÔ3ˆLõ ÔØ�˜T­W°S¸*Ñ-EÔ-Eð
ñ 
ô 
ð 	Rð 	Rð !×2Ò2°7¸LÈ&ÑQÔQ‰MˆD�'ð	Rð 	Rð 	Rñ 	Rô 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Røøøð 	Rð 	Rð 	Rð 	Rð ×,Ò,¨T°7Ñ;Ô;ˆØˆs   ÂB-Â-B1Â4B1c           	     óŒ  — ddl m}m} |dv sJ ‚| j        }i }|dk    r"| j        rdnd}|                     d|i¦  «         t          |dd¦  «        d	k    rt          d
¦  «        ‚|j        }|j	        }t          |||f¦  «        }	|	rN| j                             dd ¦  «        }
| j                             dd ¦  «        }|                     |
|dœ¦  «         t          j        |ddt          |d¦  «        ¬¦  «        5  |                      ||||¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   |                      |||¦  «        }|S )Nr   rÂ   r'  rb   rV   Fr;   r6   rD   r$  r=   r?   rR  rû  Trü  )rÎ   rÃ   rÄ   r4   r;   r(  rv   rú   rþ  Ú
_selectionrn   rF   r„  rs   r   r  r×   rë   )r\   rd   rÃ   rÄ   r4   rF   r;   r¤   r¾   rÒ   r=   r?   rØ   rÚ   r�   s                  rM   rk   z#GroupByApply.agg_or_apply_dict_like'  sØ  € ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
 Ð*Ð*Ð*Ð*Ð*àŒhˆØˆØ�gÒÐØ"&¤+Ð8�Y�Y°5ˆFØ�MŠM˜8 VÐ,Ñ-Ô-Ð-å�3˜ Ñ"Ô" aÒ'Ð'Ý%Ð&JÑKÔKÐKàÔ(ˆØ”Nˆ	å Ð&6¸Ð%FÑGÔGˆ
ð ð 	NØ”[—_’_ X¨tÑ4Ô4ˆFØ œKŸOšO¨O¸TÑBÔBˆMØ�MŠM V¸mÐLÐLÑMÔMÐMåÔØ�˜T­W°S¸*Ñ-EÔ-Eð
ñ 
ô 
ð 	ð 	ð )-×(>Ò(>Ø˜ y°&ñ)ô )Ñ%ˆL˜+ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×,Ò,¨\¸<ÈÑUÔUˆØˆs   Ã:D"Ä"D&Ä)D&)r4   rò  r5   r   rA   rT   r  )
r  r  r  r  r]   rb   r…   rh   rk   r“  r”  s   @rM   rñ  rñ  ñ  s‘   ø€ € € € € € Ø)Ð)Ð)Ñ)ð
ð 
ð 
ð 
ð 
ð 
ð&"ð "ð "ð"ð "ð "ðð ð ð ð4%ð %ð %ð %ð %ð %ð %ð %rO   rñ  c                  óF   ‡ — e Zd ZU dZded<   ded<   dˆ fd
„Zd„ Zd„ Zˆ xZS )ÚResamplerWindowApplyr   r   r6   úResampler | BaseWindowr4   r5   r   rA   rT   c               ód   •— t          t          | ¦  «                             ||dd ||¬¦  «         d S )NFrô  )r.  rñ  r]   rõ  s        €rM   r]   zResamplerWindowApply.__init__S  sH   ø€ õ 	�l˜DÑ!Ô!×*Ò*ØØØØØØð 	+ñ 	
ô 	
ð 	
ð 	
ð 	
rO   c                ó   — t           ‚r`   r÷  ra   s    rM   rb   zResamplerWindowApply.applyd  rø  rO   c                ó   — t           ‚r`   r÷  ra   s    rM   r…   zResamplerWindowApply.transformg  rø  rO   )r4   r  r5   r   rA   rT   )	r  r  r  r6   r  r]   rb   r…   r“  r”  s   @rM   r  r  O  sz   ø€ € € € € € Ø€DÐÐÐÑØÐÐÑð
ð 
ð 
ð 
ð 
ð 
ð""ð "ð "ð"ð "ð "ð "ð "ð "ð "rO   r  úAggFuncType | NoneúMtuple[bool, AggFuncType, tuple[str, ...] | None, npt.NDArray[np.intp] | None]c                ó0  — | du ot          di |¤Ž}d}d}|sbt          | t          ¦  «        r<t          | ¦  «        t          t	          | ¦  «        ¦  «        k    rt          d¦  «        ‚| €t          d¦  «        ‚|rt          |¦  «        \  } }}| €J ‚|| ||fS )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).rW   )Úis_multi_agg_with_relabelrn   r†   r—   Úsetr   r‰   Únormalize_keyword_aggregation)r5   rF   Ú
relabelingr®   Úorders        rM   rJ   rJ   k  sÒ   € ðN ˜�ÐEÕ";Ð"EÐ"E¸fÐ"EÐ"E€JØ&*€GØ)-€Eàð 
TÝ�d�DÑ!Ô!ð 	¥c¨$¡i¤iµ#µc¸$±i´i±.´.Ò&@Ð&@õ %ðñô ð ð ˆ<åÐRÑSÔSÐSàð 
õ  =Øñ 
ô  
Ñˆˆg�uð ÐÐÐà�t˜W eÐ+Ð+rO   c                 ó~   — t          d„ |                      ¦   «         D ¦   «         ¦  «        ot          | ¦  «        dk    S )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
    c              3  óf   K  — | ],}t          |t          ¦  «        ot          |¦  «        d k    V — Œ-dS )rÅ   N)rn   r  r—   r}   s     rM   r   z,is_multi_agg_with_relabel.<locals>.<genexpr>Å  s;   è è € ÐMÐM¸�z˜!�UÑ#Ô#Ð3­¨A©¬°!ªÐMÐMÐMÐMÐMÐMrO   r   )rã   rM  r—   )rF   s    rM   r  r  °  s=   € õ* ÐMÐM¸V¿]º]¹_¼_ÐMÑMÔMÑMÔMð ÝˆF‰Œ�aŠðrO   rF   rä   ú]tuple[MutableMapping[Hashable, list[AggFuncTypeBase]], tuple[str, ...], npt.NDArray[np.intp]]c                óê  — ddl m} t          t          ¦  «        }g }t          t	          |                      ¦   «         Ž ¦  «        \  }}|D ]K\  }}||                              |¦  «         |                     |t          j        |¦  «        p|f¦  «         ŒLt          |¦  «        }d„ |                     ¦   «         D ¦   «         }	t          |	¦  «        }
 ||
¦  «         
                    |¦  «        }|||fS )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]))
    r   rÜ   c                óN   — g | ]"\  }}|D ]}|t          j        |¦  «        p|f‘ŒŒ#S rW   r{   )r~   ÚcolumnÚaggfuncsÚaggfuncs       rM   rÇ   z1normalize_keyword_aggregation.<locals>.<listcomp>û  sX   € ð ð ð áˆF�HØðð ð ð 
•Ô& wÑ/Ô/Ð:°7Ð;ðð ð ð rO   )Úpandas.core.indexes.baser-   r   r†   rÑ   r™   r«   rs   r|   Ú_make_unique_kwarg_listÚget_indexer)rF   r-   Úaggspecr  r®   Úpairsr  r  Úuniquified_orderÚaggspec_orderÚuniquified_aggspecÚcol_idx_orders               rM   r  r  Ê  s  € ð< /Ð.Ð.Ð.Ð.Ð.õ
 �$ÑÔ€GØ€EÝ�#˜vŸ|š|™~œ~Ð.Ñ/Ô/�N€GˆUà ð Jð J‰ˆ�Ø�Œ×Ò˜wÑ'Ô'Ð'Ø�Š�f�cÔ3°GÑ<Ô<ÐGÀÐHÑIÔIÐIÐIõ /¨uÑ5Ô5Ðð
ð à '§¢¡¤ðñ ô €Mõ
 1°Ñ?Ô?Ðð �EÐ,Ñ-Ô-×9Ò9Ð:JÑKÔK€MØ�G˜]Ð*Ð*rO   ÚseqúSequence[tuple[Any, Any]]c                ó:   ‡ — ˆ fd„t          ‰ ¦  «        D ¦   «         S )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>')]
    c                ó¬   •— g | ]P\  }}‰                      |¦  «        d k    r0|d         |d          › d‰d|…                               |¦  «        › �fn|‘ŒQS )rD   r   rL   N)Úcount)r~   rx  Úpairr"  s      €rM   rÇ   z+_make_unique_kwarg_list.<locals>.<listcomp>  sv   ø€ ð ð ð áˆAˆtð :=¿ºÀ4¹¼È1Ò9LÐ9LˆˆaŒ�T˜!”WÐ4Ð4˜s 2 A 2œwŸ}š}¨TÑ2Ô2Ð4Ð4Ð5Ð5ÐRVðð ð rO   )r¬   )r"  s   `rM   r  r    s4   ø€ ðð ð ð å  ‘~”~ðñ ô ð rO   r�   r^   údict[str, list[Callable | str]]r®   rµ   r  úIterable[int]údict[Hashable, Series]c                óD  — ddl m} d„ t          t          ||¦  «        d„ ¬¦  «        D ¦   «         }i }d}t	          | t
          ¦  «         ot          | j        ¦  «        dk    }|                     ¦   «         D ]¨\  }	}
| |	          	                    ¦   «         }|r<d„ |
D ¦   «         }
 ||j
        ¦  «                             |
¦  «        }|j        |         }|||t          |
¦  «        z   …         |_
        |                     |d¬	¦  «        ||	<   |t          |
¦  «        z   }Œ©|S )
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
    r   rÜ   c                ó   — g | ]
}|d          ‘ŒS )r   rW   )r~   r'  s     rM   rÇ   z"relabel_result.<locals>.<listcomp>>  s)   € ð ð ð ØˆˆQŒðð ð rO   c                ó   — | d         S )NrD   rW   )Úts    rM   ú<lambda>z relabel_result.<locals>.<lambda>?  s
   € ÀaÈÄd€ rO   )rÍ   rD   c                ód   — g | ]-}t          |t          ¦  «        st          j        |¦  «        n|‘Œ.S rW   )rn   r>   rs   r|   )r~   rw   s     rM   rÇ   z"relabel_result.<locals>.<listcomp>]  sD   € ð ð ð ØNOµ
¸1½cÑ0BÔ0BÐI•Ô% aÑ(Ô(Ð(Èðð ð rO   FrÒ  )r  r-   ÚsortedrÑ   rn   r$   r—   r®   r™   ÚdropnarŒ   r  r­   Úreindex)r�   r5   r®   r  r-   Úreordered_indexesÚreordered_result_in_dictÚidxÚreorder_maskr‚   ÚfunÚsr!  s                rM   Úrelabel_resultr:    sT  € ðF /Ð.Ð.Ð.Ð.Ð.ðð Ý"¥3 w°Ñ#6Ô#6¸N¸NÐKÑKÔKðñ ô Ðð 8:ÐØ
€Cå! &­)Ñ4Ô4Ð4ÐP½¸V¼^Ñ9LÔ9LÈqÒ9P€LØ—J’J‘L”Lð "ð "‰ˆˆSØ�3ŒK×ÒÑ Ô ˆð, ð 	&ðð ØSVðñ ô ˆCð "˜E !¤'™NœN×6Ò6°sÑ;Ô;ˆMØ”�}Ô%ˆAð $ C¨#µ°C±´©.Ð$8Ô9ˆŒØ()¯	ª	°'À¨	Ñ(FÔ(FÐ  Ñ%Ø•C˜‘H”H‰nˆˆØ#Ð#rO   c                óˆ   — ddl m} t          |fi |¤Ž\  }}}}|r'|€J ‚|€J ‚t          | |||¦  «        } |||¬¦  «        } | S )Nr   )r,   r`  )r»   r,   rJ   r:  )r�   r5   rF   r,   r  r®   r  Úresult_in_dicts           rM   rû   rû   k  s€   € Ø Ð Ð Ð Ð Ð å'7¸Ð'GÐ'GÀÐ'GÐ'GÑ$€J��g˜uàð 
:ð Ð"Ð"Ð"ØÐ Ð Ð å'¨°°g¸uÑEÔEˆØ�˜>°Ð9Ñ9Ô9ˆà€MrO   r  úSequence[Any]c                óÚ   — t          | ¦  «        dk    r| S d}g }| D ]N}t          j        |¦  «        dk    rt          |¦  «        }d|› d�|_        |dz  }|                     |¦  «         ŒO|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.
    rD   r   z<lambda>z<lambda_ú>)r—   rs   r|   r   r  r«   )r  rx  Úmangled_aggfuncsr  s       rM   Ú_managle_lambda_listrA  †  s�   € õ$ ˆ8�}„}˜ÒÐàˆØ	€AØÐØð )ð )ˆÝÔ  Ñ)Ô)¨ZÒ7Ð7Ý˜gÑ&Ô&ˆGØ.¨!˜˜˜ˆGÔØ�‰FˆAØ×Ò Ñ(Ô(Ð(Ð(àÐrO   Úagg_specr   c                ó:  — t          | ¦  «        }|st          | ¦  «        s| S  t          | ¦  «        ¦   «         }|rP|                      ¦   «         D ]:\  }}t          |¦  «        rt          |¦  «        st	          |¦  «        }n|}|||<   Œ;nt	          | ¦  «        }|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)>]
    )r   r   r  r™   rA  )rB  Úis_dictÚmangled_aggspecrÍ   r  r@  s         rM   Úmaybe_mangle_lambdasrF  §  sÂ   € õ2 ˜8Ñ$Ô$€GØð •| HÑ-Ô-ð ØˆØ$•d˜8‘n”nÑ&Ô&€Oàð 	9Ø%Ÿ^š^Ñ-Ô-ð 	4ð 	4‰MˆC�Ý˜HÑ%Ô%ð ,­l¸8Ñ.DÔ.Dð ,Ý#7¸Ñ#AÔ#AÐ Ð à#+Ð à#3ˆO˜CÑ Ð ð	4õ /¨xÑ8Ô8ˆàÐrO   ú0tuple[list[str], list[str | Callable[..., Any]]]c                ó^  — d}t          | ¦  «        }g }|                      ¦   «         D ]o}t          |t          ¦  «        sCt	          |¦  «        s4t          |                     t          |¦  «        j        ¦  «        ¦  «        ‚| 	                    |¦  «         Œp|sd}t          |¦  «        ‚||fS )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.)
r†   rM  rn   r>   rr   r‰   Úformatr  r  r«   )rF   Útuple_given_messager®   r5   Úcol_funcÚno_arg_messages         rM   Úvalidate_func_kwargsrM  Ó  sµ   € ð. JÐÝ�6‰lŒl€GØ€DØ—M’M‘O”Oð ð ˆÝ˜8¥SÑ)Ô)ð 	Q­X°hÑ-?Ô-?ð 	QÝÐ/×6Ò6µt¸H±~´~Ô7NÑOÔOÑPÔPÐPØ�Š�HÑÔÐÐØð (ØMˆÝ˜Ñ'Ô'Ð'Ø�Dˆ=ÐrO   rd   re   rž   r¥   c                ób   — t          |t          ¦  «        pt          |t          ¦  «        o| dk    S )Nrx   )rn   r"   r$   )rd   rž   s     rM   rª   rª   ÷  s0   € Ý�d�LÑ)Ô)ð Ý�4�Ñ#Ô#Ð8¨°5Ò(8ðrO   r   r   ÚaliasrT   c           	     óØ   — |                      d¦  «        r|}nt          | ¦  «        j        › d|› �}d|› d�}t          j        d|› d|› d|› d�t
          t          ¦   «         ¬¦  «         d S )	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   )r4   r5   rO  Ú
full_aliass       rM   ru   ru   ý  s­   € ð
 ×Ò˜ÑÔð Øˆ
ˆ
å˜S™	œ	Ô*Ð4Ð4¨UÐ4Ð4ˆ
Ø�E���ˆÝ„Mð	5 ð 	5ð 	5Øð	5ð 	5ð %*ð	5ð 	5ð 	5õ Ý#Ñ%Ô%ðñ ô ð ð ð rO   )r   FNr2   r3   NNN)r4   r,   r5   r   r6   r   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   )r5   r	  rA   r
  )rA   r8   )rF   rä   rA   r  )r"  r#  rA   r#  )
r�   r^   r5   r(  r®   rµ   r  r)  rA   r*  r  )r  r=  rA   r=  )rB  r   rA   r   )rF   rä   rA   rG  )rd   re   rž   r¥   rA   r8   )r4   r   r5   r   rO  r>   rA   rT   )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Úcommonrs   Úpandas.core.constructionr&   Úcollections.abcr'   r(   r)   r*   r+   r»   r,   r-   r.   Úpandas.core.groupbyr/   Úpandas.core.resampler0   Úpandas.core.window.rollingr1   rä   ÚintrD  rN   ÚABCMetarQ   r  rB   rH   rI   r%  rñ  r  rJ   r  r  r  r:  rû   rA  rF  rM  rª   ru   rW   rO   rM   ú<module>rq     s  ðØ "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€à Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð ?Ð >Ð >Ð >Ð >Ð >Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð >Ð =Ð =Ð =Ð =Ð =Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø CÐ CÐ CÐ CÐ CÐ Càð 6ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 ,Ð+Ð+Ð+Ð+Ð+Ø.Ð.Ð.Ð.Ð.Ð.Ø5Ð5Ð5Ð5Ð5Ð5ð ˆs�CˆxŒ.€ð ØØ"Ø'/ØØ,0Ø	Øð!ð !ð !ð !ð !ðHL	&ð L	&ð L	&ð L	&ð L	&�c”kð L	&ñ L	&ô L	&ð L	&ð^:ð :ð :ð :ð :�5ñ :ô :ð :ðzi#ð i#ð i#ð i#ð i#�ñ i#ô i#ð i#ðXgð gð gð gð g�Jñ gô gð gðTAð Að Að Að A�zñ Aô Að AðHRð Rð Rð Rð R�,ñ Rô Rð Rðj[ð [ð [ð [ð [�5ñ [ô [ð [ð|"ð "ð "ð "ð "˜<ñ "ô "ð "ð8B,ð B,ð B,ð B,ðJð ð ð ð4:+ð :+ð :+ð :+ðzð ð ð ð$O$ð O$ð O$ð O$ðdð ð ð ð6ð ð ð ðB)ð )ð )ð )ðX!ð !ð !ð !ðHð ð ð ðð ð ð ð ð rO   