Ë
    u™ãj¦+  ã                  ó–  — d Z ddlmZ ddlmZmZ ddl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 dd
lmZmZmZ ddlmZ ddlmZ ddlmZ erddlm Z m!Z!m"Z" ddl#m$Z$m%Z%m&Z& ddl'm(Z(m)Z) 	 	 	 	 	 	 	 	 	 	 dd„Z* G d„ de«      Z+ G d„ de+«      Z, G d„ de+«      Z-dd„Z.d d„Z/	 	 	 	 	 	 d!d„Z0d"d„Z1	 	 	 	 d#d„Z2	 	 	 	 d$d„Z3y)%z–
Module responsible for execution of NDFrame.describe() method.

Method NDFrame.describe() delegates actual execution to function describe_ndframe().
é    )Úannotations)ÚABCÚabstractmethod)ÚTYPE_CHECKINGÚcastN)ÚPandas4Warning)Úfind_stack_level)Úvalidate_percentile)Úis_bool_dtypeÚis_numeric_dtype)Ú
ArrowDtypeÚDatetimeTZDtypeÚExtensionDtype)ÚFloat64Dtype)Úconcat)Úformat_percentiles)ÚCallableÚHashableÚSequence)ÚDtypeObjÚNDFrameTÚnpt)Ú	DataFrameÚSeriesc                ó   — t        |«      }| j                  dk(  r?|€|�$t        j                  dt        t        «       ¬«       t        t        d| «      ¬«      }nt        t        d| «      ||¬«      }|j                  |¬«      }t        d	|«      S )
a   Describe series or dataframe.

    Called from pandas.core.generic.NDFrame.describe()

    Parameters
    ----------
    obj: DataFrame or Series
        Either dataframe or series to be described.
    include : 'all', list-like of dtypes or None (default), optional
        A white list of data types to include in the result. Ignored for ``Series``.
    exclude : list-like of dtypes or None (default), optional,
        A black list of data types to omit from the result. Ignored for ``Series``.
    percentiles : list-like of numbers, optional
        The percentiles to include in the output. All should fall between 0 and 1.
        The default is ``[.25, .5, .75]``, which returns the 25th, 50th, and
        75th percentiles.

    Returns
    -------
    Dataframe or series description.
    é   z¯The 'include' and 'exclude' arguments are deprecated for Series.describe and will be removed in a future version. These arguments have no effect on Series and will be removed.)Ú
stacklevelr   ©Úobjr   )r   ÚincludeÚexclude)Úpercentilesr   )
Ú_refine_percentilesÚndimÚwarningsÚwarnr   r	   ÚSeriesDescriberr   ÚDataFrameDescriberÚdescribe)r   r    r!   r"   Ú	describerÚresults         úg/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/core/methods/describe.pyÚdescribe_ndframer-   ;   s—   € ô8 & kÓ2€Kð ‡x�x�1‚}ØÐ 'Ð"5ä�M‰MðPô Ü+Ó-õô $Ü�X˜sÓ#ô
‰	ô 'Ü�[ #Ó&ØØô
ˆ	ð ×Ñ¨KÐÓ8€FÜ�
˜FÓ#Ð#ó    c                  ó*   — e Zd ZdZdd„Zedd„«       Zy)ÚNDFrameDescriberAbstractz”Abstract class for describing dataframe or series.

    Parameters
    ----------
    obj : Series or DataFrame
        Object to be described.
    c                ó   — || _         y ©Nr   )Úselfr   s     r,   Ú__init__z!NDFrameDescriberAbstract.__init__{   s	   € Øˆ�r.   c                 ó   — y)z¸Do describe either series or dataframe.

        Parameters
        ----------
        percentiles : list-like of numbers
            The percentiles to include in the output.
        N© )r3   r"   s     r,   r)   z!NDFrameDescriberAbstract.describe~   s   � r.   N)r   úDataFrame | SeriesÚreturnÚNone)r"   úSequence[float] | np.ndarrayr8   r7   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   r   r)   r6   r.   r,   r0   r0   r   s    „ ñóð òó ñr.   r0   c                  ó$   — e Zd ZU dZded<   dd„Zy)r'   z2Class responsible for creating series description.r   r   c                óR   — t        | j                  «      } || j                  |«      S r2   )Úselect_describe_funcr   )r3   r"   Údescribe_funcs      r,   r)   zSeriesDescriber.describeŽ   s&   € Ü,Ø�H‰Hó
ˆñ ˜TŸX™X {Ó3Ð3r.   N)r"   r:   r8   r   )r;   r<   r=   r>   Ú__annotations__r)   r6   r.   r,   r'   r'   ‰   s   … Ù<à	ƒKô4r.   r'   c                  óP   ‡ — e Zd ZU dZded<   	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zd	d„Zˆ xZS )
r(   ab  Class responsible for creating dataobj description.

    Parameters
    ----------
    obj : DataFrame
        DataFrame to be described.
    include : 'all', list-like of dtypes or None
        A white list of data types to include in the result.
    exclude : list-like of dtypes or None
        A black list of data types to omit from the result.
    r   r   c               ó¦   •— || _         || _        |j                  dk(  r$|j                  j                  dk(  rt        d«      ‚t        ‰| �  |«       y )Né   r   z+Cannot describe a DataFrame without columns)r    r!   r$   ÚcolumnsÚsizeÚ
ValueErrorÚsuperr4   )r3   r   r    r!   Ú	__class__s       €r,   r4   zDataFrameDescriber.__init__¤   sH   ø€ ð ˆŒØˆŒà�8‰8�qŠ=˜SŸ[™[×-Ñ-°Ò2ÜÐJÓKÐKä‰Ñ˜Õr.   c                ó0  — | j                  «       }g }|j                  «       D ](  \  }}t        |«      }|j                   |||«      «       Œ* t	        |«      }t        |ddd¬«      j                  |«      }|j                  j                  «       |_        |S )Nr   TF)ÚaxisÚignore_indexÚsort)	Ú_select_dataÚitemsrA   ÚappendÚreorder_columnsr   ÚreindexrG   Úcopy)	r3   r"   ÚdataÚldescÚ_ÚseriesrB   Ú	col_namesÚds	            r,   r)   zDataFrameDescriber.describe³   s‹   € Ø× Ñ Ó"ˆà ˆØŸ™›ò 	=‰IˆAˆvÜ0°Ó8ˆMØ�L‰L™ v¨{Ó;Õ<ð	=ô $ EÓ*ˆ	Ü�5˜q¨t¸%Ô@×HÑHÈÓSˆØ—L‘L×%Ñ%Ó'ˆŒ	Øˆr.   c                ó*  — | j                   €`| j                  €Tt        j                  dg}| j                  j                  |¬«      }t        |j                  «      dk(  r| j                  }|S t        | j                   t        «      r6| j                   dk(  r'| j                  �d}t        |«      ‚| j                  }|S | j                  j                  | j                   | j                  ¬«      }t        |j                  «      dk(  rd}t        |«      ‚|S )zSelect columns to be described.Údatetime)r    r   Úallz*exclude must be None when include is 'all')r    r!   z<No columns match the specified include or exclude data types)r    r!   ÚnpÚnumberr   Úselect_dtypesÚlenrG   Ú
isinstanceÚstrrI   )r3   Údefault_includerV   Úmsgs       r,   rP   zDataFrameDescriber._select_dataÀ   sï   € à�L‰LÐ  t§|¡|Ð';ä46·I±I¸zÐ3JˆOØ—8‘8×)Ñ)°/Ð)ÓBˆDÜ�4—<‘<Ó  AÒ%Ø—x‘x�ð ˆô ˜Ÿ™¤cÔ*¨t¯|©|¸uÒ/Dà�|‰|Ð'ØB�Ü  “oÐ%Ø—8‘8ˆDð ˆð —8‘8×)Ñ)ØŸ™ØŸ™ð *ó ˆDô �4—<‘<Ó  AÒ%ØT�Ü  “oÐ%Øˆr.   )r   r   r    ústr | Sequence[str] | Noner!   rg   r8   r9   )r"   r:   r8   r   )r8   r   )	r;   r<   r=   r>   rC   r4   r)   rP   Ú__classcell__)rK   s   @r,   r(   r(   •   sD   ø… ñ
ð 
ƒNðàðð ,ð	ð
 ,ðð 
õó÷r.   r(   c                ó¸   — g }t        «       }t        d„ | D «       t        ¬«      }|D ]0  }|D ])  }||vsŒ|j                  |«       |j	                  |«       Œ+ Œ2 |S )z,Set a convenient order for rows for display.c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr2   )Úindex)Ú.0Úxs     r,   ú	<genexpr>z"reorder_columns.<locals>.<genexpr>Ý   s   è ø€ Ò3¨˜AŸG�GÑ3ùs   ‚)Úkey)ÚsetÚsortedrb   ÚaddrR   )rW   ÚnamesÚ
seen_namesÚldesc_indexesÚidxnamesÚnames         r,   rS   rS   Ù   se   € à€EÜ #£€JÜÑ3¨UÔ3¼Ô=€MØ!ò #ˆØò 	#ˆDØ˜:Ò%Ø—‘˜tÔ$Ø—‘˜TÕ"ñ	#ð#ð
 €Lr.   c                ó¶  — ddl m} t        |«      }t        |«      dk(  rg }n| j	                  |«      j                  «       }ddddg|¢d‘}| j                  «       | j                  «       | j                  «       | j                  «       g|¢| j                  «       ‘}t        | j                  t        «      r_t        | j                  t        «      r:| j                  j                  dk(  rd	}nYdd	l}t        |j#                  «       «      }n;t%        «       }n0| j                  j                  d
v rt'        j                  d«      }nd	} |||| j(                  |¬«      S )zÛDescribe series containing numerical data.

    Parameters
    ----------
    series : Series
        Series to be described.
    percentiles : list-like of numbers
        The percentiles to include in the output.
    r   ©r   ÚcountÚmeanÚstdÚminÚmaxÚmNÚiufbÚfloat©rk   rw   Údtype)Úpandasr   r   rb   ÚquantileÚtolistrz   r{   r|   r}   r~   rc   rƒ   r   r   ÚkindÚpyarrowÚfloat64r   r_   rw   )	rY   r"   r   Úformatted_percentilesÚ	quantilesÚ
stat_indexr[   rƒ   Úpas	            r,   Údescribe_numeric_1drŽ   æ   s"  € õ ä.¨{Ó;Ðä
ˆ;Ó˜1ÒØ‰	à—O‘O KÓ0×7Ñ7Ó9ˆ	à˜6 5¨%ÐOÐ2GÐOÈÐO€Jà�‰‹Ø�‰‹Ø�
‰
‹Ø�
‰
‹ð		ð
 
ð	ð 	�
‰
‹ð	€Aô �&—,‘,¤Ô/Ü�f—l‘l¤JÔ/Ø�|‰|× Ñ  CÒ'à‘ã$ä" 2§:¡:£<Ó0‘ä “N‰EØ	�‰×	Ñ	˜fÑ	$ä—‘˜Ó!‰àˆÙ�!˜:¨F¯K©K¸uÔEÐEr.   c                ó<  — g d¢}| j                  «       }t        ||dk7     «      }|dkD  r!|j                  d   |j                  d   }}d}n"t        j
                  t        j
                  }}d}| j                  «       |||g}ddlm}	  |	||| j                  |¬«      S )zãDescribe series containing categorical data.

    Parameters
    ----------
    data : Series
        Series to be described.
    percentiles_ignored : list-like of numbers
        Ignored, but in place to unify interface.
    )rz   ÚuniqueÚtopÚfreqr   NÚobjectry   r‚   )
Úvalue_countsrb   rk   Úilocr_   Únanrz   r„   r   rw   )
rV   Úpercentiles_ignoredrs   Ú	objcountsÚcount_uniquer‘   r’   rƒ   r+   r   s
             r,   Údescribe_categorical_1drš     s–   € ò /€EØ×!Ñ!Ó#€IÜ�y ¨a¡Ñ0Ó1€LØ�aÒØ—O‘O AÑ&¨	¯©°qÑ(9ˆTˆØ‰ô —F‘FœBŸF™FˆTˆØˆà�j‰j‹l˜L¨#¨tÐ4€Fåá�& ¨D¯I©I¸UÔCÐCr.   c                ó  — ddl m} t        |«      }dddg|¢d‘}| j                  «       | j	                  «       | j                  «       g| j                  |«      j                  «       ¢| j                  «       ‘} |||| j                  ¬«      S )zÛDescribe series containing datetime64 dtype.

    Parameters
    ----------
    data : Series
        Series to be described.
    percentiles : list-like of numbers
        The percentiles to include in the output.
    r   ry   rz   r{   r}   r~   )rk   rw   )
r„   r   r   rz   r{   r}   r…   r†   r~   rw   )rV   r"   r   rŠ   rŒ   r[   s         r,   Údescribe_timestamp_1drœ   7  sŒ   € õ ä.¨{Ó;Ðà˜6 5ÐHÐ+@ÐHÀ%ÐH€Jà�
‰
‹Ø�	‰	‹Ø�‰‹
ð	ð 
�‰�{Ó	#×	*Ñ	*Ó	,ð		ð
 	�‰‹
ð	€Añ �!˜:¨D¯I©IÔ6Ð6r.   c                ó  — t        | j                  «      rt        S t        | «      rt        S | j                  j
                  dk(  st        | j                  t        «      rt        S | j                  j
                  dk(  rt        S t        S )z–Select proper function for describing series based on data type.

    Parameters
    ----------
    data : Series
        Series to be described.
    ÚMr   )	r   rƒ   rš   r   rŽ   r‡   rc   r   rœ   )rV   s    r,   rA   rA   Q  sc   € ô �T—Z‘ZÔ Ü&Ð&Ü	˜$Ô	Ü"Ð"Ø	�‰�‰˜CÒ	¤:¨d¯j©j¼/Ô#JÜ$Ð$Ø	�‰�‰˜CÒ	Ü"Ð"ä&Ð&r.   c                óî   — | €t        j                  g d¢«      S t        j                  | «      } t        | «       t        j                  | «      }| €J ‚t        |«      t        | «      k  rt        d«      ‚|S )zº
    Ensure that percentiles are unique and sorted.

    Parameters
    ----------
    percentiles : list-like of numbers, optional
        The percentiles to include in the output.
    )g      Ð?g      à?g      è?z%percentiles cannot contain duplicates)r_   ÚarrayÚasarrayr
   r�   rb   rI   )r"   Úunique_pctss     r,   r#   r#   g  sr   € ð ÐÜ�x‰xÒ)Ó*Ð*ä—*‘*˜[Ó)€Kô ˜Ô$ô —)‘)˜KÓ(€KØÐ"Ð"Ð"Ü
ˆ;Óœ#˜kÓ*Ò*ÜÐ@ÓAÐAàÐr.   )
r   r   r    rg   r!   rg   r"   ú#Sequence[float] | np.ndarray | Noner8   r   )rW   zSequence[Series]r8   zlist[Hashable])rY   r   r"   úSequence[float]r8   r   )rV   r   r—   r¤   r8   r   )rV   r   r"   r¤   r8   r   )rV   r   r8   zCallable[..., Series])r"   r£   r8   znpt.NDArray[np.float64])4r>   Ú
__future__r   Úabcr   r   Útypingr   r   r%   Únumpyr_   Úpandas.errorsr   Úpandas.util._exceptionsr	   Úpandas.util._validatorsr
   Úpandas.core.dtypes.commonr   r   Úpandas.core.dtypes.dtypesr   r   r   Úpandas.core.arrays.floatingr   Úpandas.core.reshape.concatr   Úpandas.io.formats.formatr   Úcollections.abcr   r   r   Úpandas._typingr   r   r   r„   r   r   r-   r0   r'   r(   rS   rŽ   rš   rœ   rA   r#   r6   r.   r,   ú<module>r³      s  ðñõ #÷÷ó ã å (Ý 4Ý 7÷÷ñ õ 5Ý -å 7á÷ñ ÷ñ ÷ð4$à	ð4$ð (ð4$ð (ð	4$ð
 5ð4$ð ó4$ôn˜sô ô.	4Ð.ô 	4ôAÐ1ô AóH
ó.FðbDØ
ðDà(ðDð óDó@7ð4'Ø
ð'àó'ð,Ø4ðàôr.   