§
    Ñ! h¹.  ã                  ón  — d 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
Zddlm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# ddl$m%Z%m&Z& d0d„Z' G d„ de¦  «        Z( G d„ de(¦  «        Z) G d„ de(¦  «        Z*d1d"„Z+d2d&„Z,d3d)„Z-d3d*„Z.d4d+„Z/d5d-„Z0d6d/„Z1dS )7z–
Module responsible for execution of NDFrame.describe() method.

Method NDFrame.describe() delegates actual execution to function describe_ndframe().
é    )Úannotations)ÚABCÚabstractmethod)ÚTYPE_CHECKINGÚCallableÚcastN)Ú	Timestamp)ÚDtypeObjÚNDFrameTÚnpt)Úvalidate_percentile)Úis_bool_dtypeÚis_numeric_dtype)Ú
ArrowDtypeÚDatetimeTZDtypeÚExtensionDtype)ÚFloat64Dtype)Úconcat)Úformat_percentiles)Ú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         úVc:\xampp_lite_8_4\www\timesheet\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© )r4   r   s     r+   r(   z!NDFrameDescriberAbstract.describeq   s   € € € r-   N)r   r0   r    r1   )r   r6   r    r0   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r5   r   r(   r8   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   r6   r    c                óL   — t          | j        ¦  «        } || j        |¦  «        S r3   )Úselect_describe_funcr   )r4   r   Údescribe_funcs      r+   r(   zSeriesDescriber.describe�   s,   € Ý,ØŒHñ
ô 
ˆð ˆ}˜TœX {Ñ3Ô3Ð3r-   N)r   r6   r    r   )r9   r:   r;   r<   Ú__annotations__r(   r8   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    r1   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Úsuperr5   )r4   r   r   r   Ú	__class__s       €r+   r5   zDataFrameDescriber.__init__—   sZ   ø€ ð ˆŒØˆŒàŒ8�qŠ=ˆ=˜Sœ[Ô-°Ò2Ð2ÝÐJÑKÔKÐKå‰Œ×Ò˜ÑÔÐÐÐr-   r   r6   c                óZ  ‡— |                       ¦   «         }g }|                     ¦   «         D ]3\  }}t          |¦  «        }|                      |||¦  «        ¦  «         Œ4t	          |¦  «        Št          ˆfd„|D ¦   «         dd¬¦  «        }|j                             ¦   «         |_        |S )Nc                ó>   •— g | ]}|                      ‰d ¬¦  «        ‘ŒS )F)Úcopy)Úreindex)Ú.0ÚxÚ	col_namess     €r+   ú
<listcomp>z/DataFrameDescriber.describe.<locals>.<listcomp>°   s)   ø€ Ð=Ð=Ð=°!ˆQ�YŠY�y uˆYÑ-Ô-Ð=Ð=Ð=r-   r"   F)ÚaxisÚsort)Ú_select_dataÚitemsr?   ÚappendÚreorder_columnsr   rE   rL   )	r4   r   ÚdataÚldescÚ_Úseriesr@   ÚdrP   s	           @r+   r(   zDataFrameDescriber.describe¦   s¼   ø€ Ø× Ò Ñ"Ô"ˆà ˆØŸš™œð 	=ð 	=‰IˆAˆvÝ0°Ñ8Ô8ˆMØ�LŠL˜˜ v¨{Ñ;Ô;Ñ<Ô<Ð<Ð<å# EÑ*Ô*ˆ	ÝØ=Ð=Ð=Ð=°uÐ=Ñ=Ô=ØØð
ñ 
ô 
ˆð
 ”L×%Ò%Ñ'Ô'ˆŒ	Øˆr-   c                óV  — | j         €P| j        €It          j        dg}| j                             |¬¦  «        }t          |j        ¦  «        dk    r| j        }nQ| j         dk    r | j        �d}t          |¦  «        ‚| j        }n&| j                             | j         | j        ¬¦  «        }|S )zSelect columns to be described.NÚdatetime)r   r   Úallz*exclude must be None when include is 'all')r   r   )	r   r   ÚnpÚnumberr   Úselect_dtypesÚlenrE   rG   )r4   Údefault_includerX   Úmsgs       r+   rT   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ð ˆr-   )r   r   r   r   r   r   r    r1   )r   r6   r    r   )r    r   )	r9   r:   r;   r<   rA   r5   r(   rT   Ú__classcell__)rI   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 r3   )Úindex)rN   rO   s     r+   ú	<genexpr>z"reorder_columns.<locals>.<genexpr>Ð   s$   è è € Ð3Ð3¨˜AœGÐ3Ð3Ð3Ð3Ð3Ð3r-   )Úkey)ÚsetÚsortedrc   ÚaddrV   )rY   ÚnamesÚ
seen_namesÚldesc_indexesÚidxnamesÚnames         r+   rW   rW   Ì   s‹   € à€EÝ #¡¤€JÝÐ3Ð3¨UÐ3Ñ3Ô3½Ð=Ñ=Ô=€MØ!ð #ð #ˆØð 	#ð 	#ˆDØ˜:Ð%Ð%Ø—’˜tÑ$Ô$Ð$Ø—’˜TÑ"Ô"Ð"øð	#ð €Lr-   r[   r   úSequence[float]c                óÄ  — ddl m} t          |¦  «        }g d¢|z   dgz   }|                      ¦   «         |                      ¦   «         |                      ¦   «         |                      ¦   «         g|                      |¦  «                             ¦   «         z   |  	                    ¦   «         gz   }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   ry   rz   r{   r|   ÚquantileÚtolistr}   Ú
isinstancer‚   r   r   ÚkindÚpyarrowÚfloat64r   r`   ru   )r[   r   r   Úformatted_percentilesÚ
stat_indexr\   r‚   Úpas           r+   Údescribe_numeric_1dr�   Ù   sO  € ð ÐÐÐÐÐå.¨{Ñ;Ô;Ðà0Ð0Ð0Ð3HÑHÈEÈ7ÑR€Jà	�Š‰Œ˜Ÿš™œ¨¯
ª
©¬°f·j²j±l´lÐCØ
�/Š/˜+Ñ
&Ô
&×
-Ò
-Ñ
/Ô
/ñ	0à�:Š:‰<Œ<ˆ.ñ	ð õ �&”,¥Ñ/Ô/ð Ý�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                óì  — ddg}|                       ¦   «         }t          ||dk             ¦  «        }|                      ¦   «         |g}d}|dk    rè|j        d         |j        d         }}| j        j        }	|                      ¦   «         j         	                    d¦  «        }
t          |¦  «        }|j        �|	�|                     |	¦  «        }n|                     |	¦  «        }|g d¢z  }|||t          |
                     ¦   «         |	¬¦  «        t          |
                     ¦   «         |	¬¦  «        gz  }n$|dd	gz  }|t           j        t           j        gz  }d
}ddlm}  |||| j        |¬¦  «        S )zøDescribe series containing timestamp data treated as categorical.

    Parameters
    ----------
    data : Series
        Series to be described.
    percentiles_ignored : list-like of numbers
        Ignored, but in place to unify interface.
    ry   r�   r   NÚi8)r‘   r’   ÚfirstÚlast)Útzr‘   r’   r“   rx   r�   )r”   rc   ry   rk   r•   Údtrž   ÚdropnaÚvaluesÚviewr	   ÚtzinfoÚ
tz_convertÚtz_localizer|   r}   r`   r–   rƒ   r   ru   )rX   rŽ   rq   r—   r˜   r*   r‚   r‘   r’   rž   Úasintr   s               r+   Ú$describe_timestamp_as_categorical_1dr§   "  s}  € ð �hÐ€EØ×!Ò!Ñ#Ô#€IÝ�y ¨a¢Ô0Ñ1Ô1€LØ'+§z¢z¡|¤|°\Ð&B€FØ€EØ�aÒÐØ”O AÔ&¨	¬°qÔ(9ˆTˆØŒWŒZˆØ—’‘”Ô$×)Ò)¨$Ñ/Ô/ˆÝ˜‰nŒnˆØŒ:Ð! b nà—.’. Ñ$Ô$ˆCˆCà—/’/ "Ñ%Ô%ˆCØÐ1Ð1Ð1Ñ1ˆØØØÝ�e—i’i‘k”k bÐ)Ñ)Ô)Ý�e—i’i‘k”k bÐ)Ñ)Ô)ð	
ñ 	
ˆˆð 	�%˜�Ñ ˆØ•2”6�2œ6Ð"Ñ"ˆØˆàÐÐÐÐÐàˆ6�& ¨D¬I¸UÐCÑCÔCÐCr-   c                óZ  — ddl m} t          |¦  «        }g d¢|z   dgz   }|                      ¦   «         |                      ¦   «         |                      ¦   «         g|                      |¦  «                             ¦   «         z   |                      ¦   «         gz   } |||| 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©   R  s°   € ð ÐÐÐÐÐå.¨{Ñ;Ô;Ðà)Ð)Ð)Ð,AÑAÀUÀGÑK€Jà	�Š‰Œ�t—y’y‘{”{ D§H¢H¡J¤JÐ/Ø
�-Š-˜Ñ
$Ô
$×
+Ò
+Ñ
-Ô
-ñ	.à�8Š8‰:Œ:ˆ,ñ	ð ð
 ˆ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?   j  ss   € õ �T”ZÑ Ô ð 	'Ý&Ð&Ý	˜$Ñ	Ô	ð 'Ý"Ð"Ø	ŒŒ˜CÒ	Ð	¥:¨d¬j½/Ñ#JÔ#JÐ	Ý$Ð$Ø	ŒŒ˜CÒ	Ð	Ý"Ð"å&Ð&r-   únpt.NDArray[np.float64]c                óZ  — | €t          j        g d¢¦  «        S t          | ¦  «        } t          | ¦  «         d| vr|                      d¦  «         t          j        | ¦  «        } 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      è?r®   z%percentiles cannot contain duplicates)	r`   ÚarrayÚlistr   rV   Úasarrayr�   rc   rG   )r   Úunique_pctss     r+   r$   r$   €  s½   € ð ÐÝŒxÐ)Ð)Ð)Ñ*Ô*Ð*õ �{Ñ#Ô#€Kõ ˜Ñ$Ô$Ð$ð �+ÐÐØ×Ò˜3ÑÔÐå”*˜[Ñ)Ô)€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¬   )2r<   Ú
__future__r   Úabcr   r   Útypingr   r   r   Únumpyr`   Úpandas._libs.tslibsr	   Ú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'   rW   r�   r™   r§   r©   r?   r$   r8   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ðAð Að Að Að AÐ1ñ Aô Að AðH
ð 
ð 
ð 
ð&Fð &Fð &Fð &FðRDð Dð Dð Dð@-Dð -Dð -Dð -Dð`7ð 7ð 7ð 7ð0'ð 'ð 'ð 'ð, ð  ð  ð  ð  ð  r-   