o
    �¨ÊhÈ%  ã                
   @   sB  d dl Zd dlZd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZ dd„ Zdd„ Zdd„ Zej d	d
d
dgg¡dd„ ƒZdd„ Zdd„ Zdd„ Zej d¡ej dddg¡ej d	dgddgg¡dd„ ƒƒƒZdd„ ZG dd„ dƒZej d eeeg¡ej d!g d"¢d#dd$œg d"¢dd%gd$œg d"¢d%gdd$œg¡d&d'„ ƒƒZdS )(é    N)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangec                 C   s   | j dd�}| ¡  d S )NÚfirst)Úlevel)ÚgroupbyÚdescribe)Ú multiindex_dataframe_random_dataÚgrouped© r   ú\/var/www/html/env/lib/python3.10/site-packages/pandas/tests/groupby/methods/test_describe.pyÚtest_apply_describe_bug   s   r   c                  C   sŠ   t tjdtjd�tddd�d�} |  dd„ dd„ g¡}| ¡ }tj|d	 | 	¡ d
d� tj|d | 
¡ d
d� tj|d | ¡ d
d� d S )Né
   ©Údtypeú
2020-01-01©Úperiods©Úindexc                 S   ó   | j S ©N©Úyear©Úxr   r   r   Ú<lambda>   ó    z/test_series_describe_multikey.<locals>.<lambda>c                 S   r   r   ©Úmonthr   r   r   r   r      r    ÚmeanF)Úcheck_namesÚstdÚmin)r   ÚnpÚarangeÚfloat64r   r
   r   ÚtmÚassert_series_equalr#   r%   r&   )Útsr   Úresultr   r   r   Útest_series_describe_multikey   s   ÿr.   c                  C   s\   t tjdtjd�tddd�d�} |  dd„ ¡}| dd„ ¡}| ¡ jd	d
�}t	 
||¡ d S )Nr   r   r   r   r   c                 S   r   r   r!   r   r   r   r   r   $   r    z-test_series_describe_single.<locals>.<lambda>c                 S   s   |   ¡ S r   )r   r   r   r   r   r   %   s    T)Úfuture_stack)r   r'   r(   r)   r   r
   Úapplyr   Ústackr*   r+   )r,   r   r-   Úexpectedr   r   r   Útest_series_describe_single    s   ÿr3   ÚkeysÚkey1Úkey2c                 C   s¸   t g d¢g d¢g d¢dœƒ}|j|| d�d }| ¡ }t g d¢g d¢g d¢tjtjd	gg d
¢g d¢g d¢g d¢g d¢dœ	ƒ}t|ƒdkrM| dd|d ¡ | rT| |¡}t 	||¡ d S )N)ÚoneÚtwor8   Úthreer8   )é   é   é   r<   é   )r5   r6   Úfoo2©Úas_indexr>   )r7   r9   r8   )ç      ð?rA   ç      @)rA   ç      @rC   ç       @)rA   rC   rD   )rA   rC   rB   )rA   rC   ç      @)rA   rC   ç      @)	r5   Úcountr#   r%   r&   ú25%ú50%ú75%Úmaxr;   r:   r6   r5   )
r   r
   r   r'   ÚnanÚlenÚinsertÚ	set_indexr*   Úassert_frame_equal)r@   r4   ÚdfÚgbr-   r2   r   r   r   Útest_series_describe_as_index*   s2   ýÿ÷ÿ
rS   c           
      C   s2  |   dd„ dd„ g¡}| ¡ }g }| D ]-}||  ¡ }t|g|jgdgt|jƒ tt|jƒƒgd�}t|j||jd�}| 	|¡ qt
j|dd�}t ||¡ d	}tjt|d
�� | j dddddœdd�}	W d   ƒ n1 snw   Y  |	 ¡ }|  ¡ j}tddg|jgg d¢tt|jƒƒgd�|_t ||¡ d S )Nc                 S   r   r   r   r   r   r   r   r   K   r    z.test_frame_describe_multikey.<locals>.<lambda>c                 S   r   r   r!   r   r   r   r   r   K   r    r   ©ÚlevelsÚcodes)Úcolumnsr   r:   ©Úaxisz+DataFrame.groupby with axis=1 is deprecated©Úmatch)ÚAÚBÚCÚD)r   r   r:   r:   )r
   r   r   rW   rM   Úranger   Úvaluesr   ÚappendÚpdÚconcatr*   rP   Úassert_produces_warningÚFutureWarningÚT)
Útsframer   r-   Údesc_groupsÚcolÚgroupÚ	group_colr2   ÚmsgÚgroupedTr   r   r   Útest_frame_describe_multikeyJ   s0   
þÿ
þro   c                  C   sÊ   t g d¢d g d¢d g d¢d dœƒ} g d¢d | d< | jdd	id
�}d}tjt|d�� |  d¡ ¡  W d   ƒ n1 s?w   Y  tjt|d�� | d	¡ ¡  W d   ƒ d S 1 s^w   Y  d S )N)r:   r;   é   r<   é   rp   )r   é   é   é(   é2   )éd   éÈ   i,  i�  iô  )r   ÚyÚz))r   r   r:   )r   r:   r   )r:   r   r   rq   ÚkÚkey©rW   z*Names should be list-like for a MultiIndexrZ   )r   ÚrenameÚpytestÚraisesÚ
ValueErrorr
   r   )Údf1Údf2rm   r   r   r   Útest_frame_describe_tupleindexg   s   


ýÿÿ"ÿrƒ   c                  C   sÐ   t dd d�dt dd d�dt dd d�di} t dd d�dt dd d�dt dd d�d	i}t| |d
œƒ}| d¡j ¡ }||jdk j ¡ j ¡ ||jdk j ¡ j ¡ g}t|tddgdd�g d¢d�}t	 
||¡ d S )Nz2011-01-06 10:59:05)Útziža  z2011-01-06 12:43:33i›c  z2011-01-06 12:54:09i /hYl    rT i áõ)ÚPRICEÚVOLUMEr…   ©Úname©rG   r#   r%   r&   rH   rI   rJ   rK   ©r   rW   )r   r   r
   r†   r   r…   ra   Útolistr   r*   rP   )ÚpricesÚvolumesrQ   r-   Údatar2   r   r   r   Ú$test_frame_describe_unstacked_formaty   s&   ýýþýr�   zZignore:indexing past lexsort depth may impact performance:pandas.errors.PerformanceWarningr@   TFÚa1Úa2c                 C   sâ   t g d¢g d¢g d¢g d¢dœg d¢dd�}|dgkr!|jd	d
�}t  g d¢¡ ddg¡j}d d g|j_t|ƒdkrQtddgddggddgddggdd	gd�|_	n	t
ddgdd�|_	| s`| ¡ }|j|| d� ¡ }t ||¡ d S )N)éc   r’   r’   éX   r“   r“   )r:   r;   rp   r<   rq   r=   )r   rr   rs   rt   ru   é<   )r�   r‘   ÚbÚc)r�   r‘   r•   r•   F)rW   Úcopyr�   r‘   r|   )©r•   rG   rB   rB   ©r•   r#   rE   rD   ©r•   r%   rA   rA   ©r•   r&   rC   rA   ©r•   rH   g      @g      ø?©r•   rI   rE   rD   ©r•   rJ   g      @g      @©r•   rK   rF   rB   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r   r:   r;   r“   r’   )rU   rV   Únamesr‡   r?   )r   ÚdropÚfrom_recordsrO   rg   rW   r    rM   r   r   r   Úreset_indexr
   r   r*   rP   )r@   r4   rQ   r2   r-   r   r   r   Ú0test_describe_with_duplicate_output_column_names“   s6   	üø

ÿ
ê"
ÿr¤   c                     s´   t g d¢gƒ} g d¢| _|  | d ¡}|jg d�}g d¢‰ ‡ fdd„dD ƒ}tj|dd	�}td
dgˆ gdd
g ddg  dd
g  dttdƒƒ gd�|_dg|j	_
t ||¡ d S )N)r   r:   r;   rp   )r   r:   r;   r   r:   )Úpercentiles)rG   r#   r%   r&   rI   rK   c              	      s,   g | ]}t d |tj|||ggdgˆ d�‘qS )rA   r:   rŠ   ©r   r'   rL   )Ú.0Úvalr|   r   r   Ú
<listcomp>Ù   s    ÿÿz3test_describe_duplicate_columns.<locals>.<listcomp>)ç        rD   rB   rX   r   r;   r=   rp   rT   )r   rW   r
   r   rc   rd   r   Úlistr`   r   r    r*   rP   )rQ   rR   r-   Úframesr2   r   r|   r   Útest_describe_duplicate_columnsÑ   s   

þ
,þ
r­   c                   @   s>   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZdd„ Zd	S )
ÚTestGroupByNonCythonPathsc                 C   s.   t g d¢dtjdgdtjdggg d¢d�}|S )N)r:   r;   Úfoor:   Úbarrp   Úbaz©r\   r]   r^   r|   r¦   )ÚselfrQ   r   r   r   rQ   ê   s
   þzTestGroupByNonCythonPaths.dfc                 C   s   |  d¡}|S )Nr\   ©r
   )r³   rQ   rR   r   r   r   rR   ò   s   
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd�}|S )Nr\   Fr?   r´   )r³   rQ   Úgnir   r   r   rµ   ÷   s   zTestGroupByNonCythonPaths.gnic              
   C   s®   t ddgdd�}tdgg d¢gdgd ttdƒƒgd	�}td
dtjdddddgdtjtjtjtjtjtjtjgg||d�}| ¡ }t 	||¡ | 
¡ }| ¡ }t 	||¡ d S )Nr:   rp   r\   r‡   r]   r‰   r   é   rT   rA   rD   rª   rŠ   )r   r   r«   r`   r   r'   rL   r   r*   rP   r£   )r³   rQ   rR   rµ   Úexpected_indexÚexpected_colr2   r-   r   r   r   Útest_describeü   s"   þ þúz'TestGroupByNonCythonPaths.test_describeN)	Ú__name__Ú
__module__Ú__qualname__r~   ÚfixturerQ   rR   rµ   r¹   r   r   r   r   r®   æ   s    


r®   r   Úkwargs)gš™™™™™¹?gš™™™™™É?g333333Ó?Úall)r¥   ÚincludeÚexcludeÚintc                 C   sö   t g d¢gg d¢| d�}|d  t¡|d< |d  t¡|d< |jd d…  d¡jd
i |¤Ž}| d¡jd
i |¤Žjdd	�jd d… }t 	||¡ |jd d…  d¡j
jd
i |¤Ž}| d¡j
jd
i |¤Žjdd	�jd d… }tg ƒ|_t 	||¡ d S )N)r:   r;   rp   r²   )rW   r   r]   r^   r   r\   T)r¡   r   )r   ÚastyperÂ   ÚfloatÚilocr
   r   r£   r*   rP   r]   r   r   )r   r¾   rQ   r-   r2   r   r   r   Útest_groupby_empty_dataset  s    ("*
rÆ   )Únumpyr'   r~   Úpandasrc   r   r   r   r   r   r   Úpandas._testingÚ_testingr*   r   r.   r3   ÚmarkÚparametrizerS   ro   rƒ   r�   Úfilterwarningsr¤   r­   r®   rÂ   rÄ   ÚobjectrÆ   r   r   r   r   Ú<module>   s<     

ÿ7-ýþ