§
    	�’j±*  ã                  óZ  — 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mZmZ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$ d.d„Z% G d„ de¦  «        Z& G d„ de&¦  «        Z' G d„ de&¦  «        Z(d/d!„Z)d0d%„Z*d1d(„Z+d2d)„Z,d3d+„Z-d4d-„Z.dS )5z–
Module responsible for execution of NDFrame.describe() method.

Method NDFrame.describe() delegates actual execution to function describe_ndframe().
é    )Úannotations)ÚABCÚabstractmethod)ÚTYPE_CHECKINGÚcastN)ÚDtypeObjÚNDFrameTÚnpt)Úvalidate_percentile)Úis_bool_dtypeÚis_numeric_dtype)Ú
ArrowDtypeÚDatetimeTZDtypeÚExtensionDtype)ÚFloat64Dtype)Úconcat)Úformat_percentiles)ÚCallableÚHashableÚSequence)Ú	DataFrameÚSeriesÚobjr	   Úincludeústr | Sequence[str] | NoneÚexcludeÚpercentilesú#Sequence[float] | np.ndarray | NoneÚreturnc                ó
  — t          |¦  «        }| j        dk    rt          t          d| ¦  «        ¬¦  «        }n t	          t          d| ¦  «        ||¬¦  «        }|                     |¬¦  «        }t          t          |¦  «        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.
    é   r   ©r   r   )r   r   r   )r   )Ú_refine_percentilesÚndimÚSeriesDescriberr   ÚDataFrameDescriberÚdescriber	   )r   r   r   r   Ú	describerÚresults         úJC:\Projects\DSCons\.venv\Lib\site-packages\pandas\core\methods\describe.pyÚdescribe_ndframer+   7   s’   € õ8 & kÑ2Ô2€Kð „x�1‚}€}Ý#Ý�X˜sÑ#Ô#ð
ñ 
ô 
ˆ	ˆ	õ 'Ý�[ #Ñ&Ô&ØØð
ñ 
ô 
ˆ	ð ×Ò¨KÐÑ8Ô8€FÝ•˜&Ñ!Ô!Ð!ó    c                  ó2   — e Zd ZdZdd„Zedd	„¦   «         Zd
S )ÚNDFrameDescriberAbstractz”Abstract class for describing dataframe or series.

    Parameters
    ----------
    obj : Series or DataFrame
        Object to be described.
    r   úDataFrame | Seriesr   ÚNonec                ó   — || _         d S ©Nr"   )Úselfr   s     r*   Ú__init__z!NDFrameDescriberAbstract.__init__n   s   € ØˆŒˆˆr,   r   úSequence[float] | np.ndarrayc                ó   — dS )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.describeq   s   € € € r,   N)r   r/   r   r0   )r   r5   r   r/   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   r   r'   r7   r,   r*   r.   r.   e   sR   € € € € € ðð ðð ð ð ð ðð ð ñ „^ðð ð r,   r.   c                  ó&   — e Zd ZU dZded<   d	d„ZdS )
r%   z2Class responsible for creating series description.r   r   r   r5   r   c                óL   — t          | j        ¦  «        } || j        |¦  «        S r2   )Úselect_describe_funcr   )r3   r   Údescribe_funcs      r*   r'   zSeriesDescriber.describe�   s,   € Ý,ØŒHñ
ô 
ˆð ˆ}˜TœX {Ñ3Ô3Ð3r,   N)r   r5   r   r   )r8   r9   r:   r;   Ú__annotations__r'   r7   r,   r*   r%   r%   |   s9   € € € € € € Ø<Ð<à€K€K�Kð4ð 4ð 4ð 4ð 4ð 4r,   r%   c                  ó@   ‡ — 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   r   r   r   r   r0   c               óº   •— || _         || _        |j        dk    r|j        j        dk    rt          d¦  «        ‚t          ¦   «                              |¦  «         d S )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__—   sZ   ø€ ð ˆŒØˆŒàŒ8�qŠ=ˆ=˜Sœ[Ô-°Ò2Ð2ÝÐJÑKÔKÐKå‰Œ×Ò˜ÑÔÐÐÐr,   r   r5   c                ó\  ‡— |                       ¦   «         }g }|                     ¦   «         D ]3\  }}t          |¦  «        }|                      |||¦  «        ¦  «         Œ4t	          |¦  «        Št          ˆfd„|D ¦   «         ddd¬¦  «        }|j                             ¦   «         |_        |S )Nc                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r7   )Úreindex)Ú.0ÚxÚ	col_namess     €r*   ú
<listcomp>z/DataFrameDescriber.describe.<locals>.<listcomp>°   s%   ø€ Ð1Ð1Ð1 aˆQ�YŠY�yÑ!Ô!Ð1Ð1Ð1r,   r!   TF)ÚaxisÚignore_indexÚsort)Ú_select_dataÚitemsr>   ÚappendÚreorder_columnsr   rD   Úcopy)	r3   r   ÚdataÚldescÚ_Úseriesr?   ÚdrN   s	           @r*   r'   zDataFrameDescriber.describe¦   s¿   ø€ Ø× Ò Ñ"Ô"ˆà ˆØŸš™œð 	=ð 	=‰IˆAˆvÝ0°Ñ8Ô8ˆMØ�LŠL˜˜ v¨{Ñ;Ô;Ñ<Ô<Ð<Ð<å# EÑ*Ô*ˆ	ÝØ1Ð1Ð1Ð1¨5Ð1Ñ1Ô1ØØØð	
ñ 
ô 
ˆð ”L×%Ò%Ñ'Ô'ˆŒ	Øˆr,   c                ó¨  — | j         €P| j        €It          j        dg}| j                             |¬¦  «        }t          |j        ¦  «        dk    r| j        }nz| j         dk    r | j        �d}t          |¦  «        ‚| j        }nO| j                             | j         | j        ¬¦  «        }t          |j        ¦  «        dk    rd}t          |¦  «        ‚|S )	zSelect columns to be described.NÚ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ÚlenrD   rF   )r3   Údefault_includerX   Úmsgs       r*   rS   zDataFrameDescriber._select_data¸   sÔ   € àŒLÐ  t¤|Ð';å46´I¸zÐ3JˆOØ”8×)Ò)°/Ð)ÑBÔBˆDÝ�4”<Ñ Ô  AÒ%Ð%Ø”x�øØŒ\˜UÒ"Ð"ØŒ|Ð'ØB�Ý  ‘o”oÐ%Ø”8ˆDˆDà”8×)Ò)ØœØœð *ñ ô ˆDõ �4”<Ñ Ô  AÒ%Ð%ØT�Ý  ‘o”oÐ%Øˆr,   )r   r   r   r   r   r   r   r0   )r   r5   r   r   )r   r   )	r8   r9   r:   r;   r@   r4   r'   rS   Ú__classcell__)rH   s   @r*   r&   r&   ˆ   s|   ø€ € € € € € ð
ð 
ð €N€N�Nðð ð ð ð ð ðð ð ð ð$ð ð ð ð ð ð ð r,   r&   rY   úSequence[Series]úlist[Hashable]c                óÖ   — g }t          ¦   «         }t          d„ | D ¦   «         t          ¬¦  «        }|D ]5}|D ]0}||vr*|                     |¦  «         |                     |¦  «         Œ1Œ6|S )z,Set a convenient order for rows for display.c              3  ó$   K  — | ]}|j         V — Œd S r2   )Úindex)rL   rM   s     r*   ú	<genexpr>z"reorder_columns.<locals>.<genexpr>Ô   s$   è è € Ð3Ð3¨˜AœGÐ3Ð3Ð3Ð3Ð3Ð3r,   )Úkey)ÚsetÚsortedrc   ÚaddrU   )rY   ÚnamesÚ
seen_namesÚldesc_indexesÚidxnamesÚnames         r*   rV   rV   Ð   s‹   € à€EÝ #¡¤€JÝÐ3Ð3¨UÐ3Ñ3Ô3½Ð=Ñ=Ô=€MØ!ð #ð #ˆØð 	#ð 	#ˆDØ˜:Ð%Ð%Ø—’˜tÑ$Ô$Ð$Ø—’˜TÑ"Ô"Ð"øð	#ð €Lr,   r[   r   úSequence[float]c                óì  — ddl m} t          |¦  «        }t          |¦  «        dk    rg }n'|                      |¦  «                             ¦   «         }ddddg|¢d‘}|                      ¦   «         |                      ¦   «         |                      ¦   «         |  	                    ¦   «         g|¢|  
                    ¦   «         ‘}t          | j        t          ¦  «        rbt          | j        t          ¦  «        r9| j        j        dk    rd	}nZdd	l}t          |                     ¦   «         ¦  «        }n4t%          ¦   «         }n%| 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   ru   Údtype)Úpandasr   r   rc   ÚquantileÚtolistry   rz   r{   r|   r}   Ú
isinstancer‚   r   r   ÚkindÚpyarrowÚfloat64r   r`   ru   )	r[   r   r   Úformatted_percentilesÚ	quantilesÚ
stat_indexr\   r‚   Úpas	            r*   Údescribe_numeric_1drŽ   Ý   ss  € ð ÐÐÐÐÐå.¨{Ñ;Ô;Ðå
ˆ;ÑÔ˜1ÒÐØˆ	ˆ	à—O’O KÑ0Ô0×7Ò7Ñ9Ô9ˆ	à˜6 5¨%ÐOÐ2GÐOÈÐO€Jà�Š‰ŒØ�Š‰ŒØ�
Š
‰ŒØ�
Š
‰Œð		ð
 
ð	ð 	�
Š
‰Œð	€Aõ �&”,¥Ñ/Ô/ð Ý�f”l¥JÑ/Ô/ð 		#ØŒ|Ô  CÒ'Ð'à��à$Ð$Ð$Ð$å" 2§:¢:¡<¤<Ñ0Ô0��å ‘N”NˆEˆEØ	ŒÔ	˜fÐ	$Ð	$å”˜Ñ!Ô!ˆˆàˆØˆ6�!˜:¨F¬K¸uÐEÑEÔEÐEr,   rX   Úpercentiles_ignoredc                óB  — g d¢}|                       ¦   «         }t          ||dk             ¦  «        }|dk    r|j        d         |j        d         }}d}nt          j        t          j        }}d}|                      ¦   «         |||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.
    )ry   ÚuniqueÚtopÚfreqr   NÚobjectrx   r�   )
Úvalue_countsrc   rk   Úilocr`   Únanry   rƒ   r   ru   )
rX   r�   rq   Ú	objcountsÚcount_uniquer’   r“   r‚   r)   r   s
             r*   Údescribe_categorical_1drš     s¶   € ð /Ð.Ð.€EØ×!Ò!Ñ#Ô#€IÝ�y ¨a¢Ô0Ñ1Ô1€LØ�aÒÐØ”O AÔ&¨	¬°qÔ(9ˆTˆØˆˆõ ”F�BœFˆTˆØˆà�jŠj‰lŒl˜L¨#¨tÐ4€FàÐÐÐÐÐàˆ6�& ¨D¬I¸UÐCÑCÔCÐCr,   c                óP  — ddl m} t          |¦  «        }dddg|¢d‘}|                      ¦   «         |                      ¦   «         |                      ¦   «         g|                      |¦  «                             ¦   «         ¢|                      ¦   «         ‘} |||| 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   rx   ry   rz   r|   r}   )rk   ru   )
rƒ   r   r   ry   rz   r|   r„   r…   r}   ru   )rX   r   r   rŠ   rŒ   r\   s         r*   Údescribe_timestamp_1drœ   .  s²   € ð ÐÐÐÐÐå.¨{Ñ;Ô;Ðà˜6 5ÐHÐ+@ÐHÀ%ÐH€Jà�
Š
‰ŒØ�	Š	‰ŒØ�Š‰
Œ
ð	ð 
�Š�{Ñ	#Ô	#×	*Ò	*Ñ	,Ô	,ð		ð
 	�Š‰
Œ
ð	€Að ˆ6�!˜:¨D¬IÐ6Ñ6Ô6Ð6r,   r   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‡   r†   r   rœ   )rX   s    r*   r>   r>   H  ss   € õ �T”ZÑ Ô ð 	'Ý&Ð&Ý	˜$Ñ	Ô	ð 'Ý"Ð"Ø	ŒŒ˜CÒ	Ð	¥:¨d¬j½/Ñ#JÔ#JÐ	Ý$Ð$Ø	ŒŒ˜CÒ	Ð	Ý"Ð"å&Ð&r,   únpt.NDArray[np.float64]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.
    N)g      Ð?g      à?g      è?z%percentiles cannot contain duplicates)r`   ÚarrayÚasarrayr   r‘   rc   rF   )r   Úunique_pctss     r*   r#   r#   ^  s�   € ð ÐÝŒxÐ)Ð)Ð)Ñ*Ô*Ð*å”*˜[Ñ)Ô)€Kõ ˜Ñ$Ô$Ð$õ ”)˜KÑ(Ô(€KØÐ"Ð"Ð"Ý
ˆ;ÑÔ�#˜kÑ*Ô*Ò*Ð*ÝÐ@ÑAÔAÐAàÐr,   )
r   r	   r   r   r   r   r   r   r   r	   )rY   rg   r   rh   )r[   r   r   rv   r   r   )rX   r   r�   rv   r   r   )rX   r   r   rv   r   r   )rX   r   r   r   )r   r   r   rŸ   )/r;   Ú
__future__r   Úabcr   r   Útypingr   r   Únumpyr`   Úpandas._typingr   r	   r
   Ú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   rƒ   r   r   r+   r.   r%   r&   rV   rŽ   rš   rœ   r>   r#   r7   r,   r*   ú<module>r°      så  ððð ð #Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð
 Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 8Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð 5Ð 4Ð 4Ð 4Ð 4Ð 4Ø -Ð -Ð -Ð -Ð -Ð -à 7Ð 7Ð 7Ð 7Ð 7Ð 7àð 
ðð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð+"ð +"ð +"ð +"ð\ð ð ð ð ˜sñ ô ð ð.	4ð 	4ð 	4ð 	4ð 	4Ð.ñ 	4ô 	4ð 	4ðEð Eð Eð Eð EÐ1ñ Eô Eð EðP
ð 
ð 
ð 
ð.Fð .Fð .Fð .FðbDð Dð Dð Dð@7ð 7ð 7ð 7ð4'ð 'ð 'ð 'ð,ð ð ð ð ð r,   