a
    é´«jÇ^  ã                2   @   s  d dl m Z  d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ dd„ Zdd„ Zej dd	gd	d
gg¡ejjddd„ dD ƒe d¡e d¡e d¡e d¡e d¡gejddd�ejddd�ejddd�ejddd�ejddd�ge d¡e d ¡ e d¡e d ¡ e d¡e d ¡ e d¡e d ¡ e d¡e d ¡ ge d¡ d¡e d¡ d¡e d¡ d¡e d¡ d¡e d¡ d¡gg dd„ d�ej ddddg d¢fdddg d¢fdddg d¢fdddg d¢fd ddg d!¢fd ddg d"¢fd ddg d#¢fd ddg d$¢fd%ddg d&¢fd%ddg d'¢fd%ddg d(¢fd%ddg d)¢fd*ddg d+¢fd*ddg d,¢fd*ddg d-¢fd*ddg d.¢fd/ddg d0¢fd/ddg d1¢fd/ddg d#¢fd/ddg d2¢fg¡d3d4„ ƒƒƒZej dd	gd	d
gg¡ej dej ej ejd5ejejejgg¡ej d6ddd7d8d8ejd9ejd:d:gfddd;g d<¢fddd=g d>¢fddd7d:d:ejd9ejd8d8gfddd;g d?¢fddd=g d@¢fd dd7d5d5ejdAejdBdBgfd dd;g dC¢fd dd=g dD¢fd dd7dBdBejdAejd5d5gfd dd;g dE¢fd dd=g dF¢fd%dd7dGdGejdAejdHdHgfd%dd;g dI¢fd%dd=g dJ¢fd%dd7dHdHejdAejdGdGgfd%dd;g dK¢fd%dd=g dL¢fd*dd7d5dGejdAejdBdHgfd*dd;g dM¢fd*dd=g dN¢fd*dd7dBdHejdAejd5dGgfd*dd;g dO¢fd*dd=g dP¢fd/dd7d5d5ejdGejdAdAgfd/dd;g dQ¢fd/dd=g dR¢fd/dd7dAdAejdGejd5d5gfd/dd;g dS¢fd/dd=g dT¢fg¡dUdV„ ƒƒƒZej dd	gd	d
gg¡ejjddWd„ dXD ƒe d¡e d¡eje d¡e d¡e d¡ejejgejddd�ejddd�ejejddd�ejddd�ejddd�ejejge d¡e d ¡ e d¡e d ¡ eje d¡e d ¡ e d¡e d ¡ e d¡e d ¡ ejejge d¡ d¡e d¡ d¡eje d¡ d¡e d¡ d¡e d¡ d¡ejejgg dYd„ d�ej dZddd7ddGdGejdHdGdBejejgfddd7dd[d[ejd5d[d\ejejgfddd7ddBdBejd5dBdGejejgfddd7dd\d\ejd]d\d[ejejgfd dd7dd5d5ejdHd5dBejejgfd dd7dd]d]ejd5d]d\ejejgfd dd7ddAdAejd5dAdGejejgfd dd7dd^d^ejd]d^d[ejejgfd%dd7ddAdAejdHdAdBejejgfd%dd7dd^d^ejd5d^d\ejejgfd%dd7ddHdHejd5dHdGejejgfd%dd7dd5d5ejd]d5d[ejejgfd*dd7dd5dGejdHdAdBejejgfd*dd7dd]d[ejd5d^d\ejejgfd*dd7ddAdBejd5dHdGejejgfd*dd7dd^d\ejd]d5d[ejejgfd/dd7dd5d5ejdAd5dGejejgfd/dd7dd_d_ejd5d_d`ejejgfd/dd7ddAdAejd5dAdGejejgfd/dd7dd5d5ejd_d5d`ejejgfddd=dg da¢fddd=dg db¢fddd=dg dc¢fddd=dg dd¢fd dd=dg de¢fd dd=dg df¢fd dd=dg dg¢fd dd=dg dh¢fd%dd=dg di¢fd%dd=dg dj¢fd%dd=dg dk¢fd%dd=dg dl¢fd*dd=dg dm¢fd*dd=dg dn¢fd*dd=dg do¢fd*dd=dg dp¢fd/dd=dg dq¢fd/dd=dg dr¢fd/dd=dg ds¢fd/dd=dg dt¢fg(¡dudv„ ƒƒƒZej dwdg dx¢fdg dy¢fg¡dzd{„ ƒZej d|g d}¢¡ej d~ddg¡dd€„ ƒƒZej d�g d‚¢¡ej dƒddg¡ej d„g d…¢¡ej d†ddg¡ej dg d‡¢dˆejd‰ejdŠgg¡d‹dŒ„ ƒƒƒƒƒZej d„g d�¢¡ej d�g d‚¢¡ej dƒddg¡ej d†ddg¡ej dg d‡¢dˆejd‰ejdŠgdŽejd�ejd9gg¡d�d‘„ ƒƒƒƒƒZd’d“„ Zej d”dŽd�gdŽdŽgd5d5gfg d•¢g d–¢g d—¢fg d•¢dŽd�dŽejgd˜d5d5ejgfg d™¢dŽd�ejgd˜d5ejgfg¡dšd›„ ƒZdœd�„ Zej džddg¡dŸd „ ƒZd¡d¢„ Z d£d¤„ Z!d¥d¦„ Z"d§d¨„ Z#d©dª„ Z$ej d„d;d=g¡d«d¬„ ƒZ%dS )­é    )ÚdatetimeN)Ú	DataFrameÚNaTÚSeriesÚconcatc                  C   s®   t jg dd�} t| ƒ}| ¡ }d}|j| dd�}tjt|d�� | ¡  W d   ƒ n1 s\0    Y  |j| dd�}tjt|d�� | ¡  W d   ƒ n1 s 0    Y  d S )NF©Zorderedz0Cannot perform rank with non-ordered Categorical)Zobserved©Úmatch)	ÚpdÚCategoricalr   Zto_frameÚgroupbyÚpytestÚraisesÚ	TypeErrorÚrank)ÚcatZserÚdfÚmsgÚgbÚgb2© r   úe/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/groupby/methods/test_rank.pyÚ)test_rank_unordered_categorical_typeerror   s    &r   c                  C   s.  t jdgd td�} t jdgd td�}t j d¡jdddtd	�}t j d¡jdddtd	�}tt j d¡ d¡|  	|¡| 	|¡d
œƒ}| 
ddg¡j ¡ }dd„ | 
ddg¡D ƒ}t|dd�}| |j¡}t ||¡ | 
ddg¡jjdd�}dd„ | 
ddg¡D ƒ}t|dd�}| |j¡}t ||¡ d S )NZ
aaaaaaaaaaéd   ©ÚdtypeZ
bbbbbbbbbbé‚   é   r   iô  )Úsizer   )ÚvalueÚkey1Úkey2r    r!   c                 S   s   g | ]\}}|j  ¡ ‘qS r   ©r   r   ©Ú.0ÚkeyZpiecer   r   r   Ú
<listcomp>1   ó    z#test_rank_apply.<locals>.<listcomp>©ÚaxisT©Úpctc                 S   s   g | ]\}}|j jd d�‘qS )Tr*   r"   r#   r   r   r   r&   8   s   )ÚnpÚarrayÚobjectÚrandomZdefault_rngZintegersÚintr   Zstandard_normalZtaker   r   r   r   ZreindexÚindexÚtmÚassert_series_equal)Zlev1Zlev2Zlab1Zlab2r   ÚresultÚexpectedr   r   r   Útest_rank_apply!   s,    ýÿÿr6   ÚgrpsZquxZquuxÚvalsc                 C   s   g | ]}t jg d ¢|d�‘qS ))r   r   é   r   é   r   )r,   r-   ©r$   r   r   r   r   r&   C   s   ÿr&   )Úi8Úi4Úi2Úi1Úu8Zu4Úu2Úu1Úf8Úf4Úf2z
2018-01-02z
2018-01-08z
2018-01-06z
US/Pacific©ÚtzÚDc                 C   s   t | d ƒS ©Nr   ©Útype©Úxr   r   r   Ú<lambda>e   r'   rN   )Úidszties_method,ascending,pct,expÚaverageTF)ç       @rQ   ç      @rQ   ç      @)çš™™™™™Ù?rT   ç      ð?rT   çš™™™™™é?)rS   rS   rU   rS   rQ   )rV   rV   çš™™™™™É?rV   rT   Úmin)rU   rU   rR   rU   rS   )rW   rW   rU   rW   rV   )ç      @rY   rU   rY   rQ   )ç333333ã?rZ   rW   rZ   rT   Úmax)rY   rY   rR   rY   rS   )rZ   rZ   rU   rZ   rV   )rR   rR   rU   rR   rQ   )rU   rU   rW   rU   rT   Úfirst)rU   rQ   rR   rY   rS   )rW   rT   rU   rZ   rV   )rY   rS   rU   rR   rQ   )rZ   rV   rW   rU   rT   Údense)rU   rU   rY   rU   rQ   )çUUUUUUÕ?r^   rU   r^   çUUUUUUå?)rU   rU   r^   rU   r_   c                 C   sŠ   t  | t|ƒ¡}|}t|ƒt| ƒ }t|t jƒr@t j||jd�}t||dœƒ}| 	d¡j
|||d�}	t|t| ƒ dgd�}
t |	|
¡ d S )Nr   ©r%   Úvalr%   )ÚmethodÚ	ascendingr+   ra   ©Úcolumns©r,   ÚrepeatÚlenÚlistÚ
isinstanceZndarrayr-   r   r   r   r   r2   Úassert_frame_equal)r7   r8   Úties_methodrc   r+   Úexpr%   Ú	orig_valsr   r4   Úexp_dfr   r   r   Útest_rank_args@   s    Arp   rU   z#ties_method,ascending,na_option,expÚkeepç      ø?é   ç      @Útop)ç      @rv   rr   rR   rr   ç      @rw   Úbottom)rr   rr   rw   rY   rw   rt   rt   )rw   rw   rr   rR   rr   rv   rv   )rt   rt   rw   rY   rw   rr   rr   rY   rS   )rY   rY   rU   rR   rU   ç      @ry   )rU   rU   ry   rY   ry   rS   rS   )ry   ry   rU   rR   rU   rY   rY   )rS   rS   ry   rY   ry   rU   rU   rQ   rR   )rS   rS   rQ   rR   rQ   ç      @rz   )rQ   rQ   rz   rY   rz   rR   rR   )rz   rz   rQ   rR   rQ   rS   rS   )rR   rR   rz   rY   rz   rQ   rQ   )rY   rS   rU   rR   rQ   ry   rz   )rU   rQ   ry   rY   rz   rS   rR   )ry   rz   rU   rR   rQ   rY   rS   )rS   rR   ry   rY   rz   rU   rQ   )rQ   rQ   rU   rY   rU   rS   rS   )rU   rU   rS   rQ   rS   rY   rY   )rS   rS   rU   rY   rU   rQ   rQ   )rY   rY   rS   rQ   rS   rU   rU   c           
      C   sf   t  | t|ƒ¡}|t| ƒ }t||dœƒ}| d¡j|||d�}t|t| ƒ dgd�}	t ||	¡ d S )Nr`   r%   )rb   rc   Ú	na_optionra   rd   )r,   rg   rh   r   r   r   r2   rk   )
r7   r8   rl   rc   r{   rm   r%   r   r4   ro   r   r   r   Útest_infs_n_nans�   s    )
ÿr|   c                 C   s0   g | ](}t jd d t jdd dt jt jg|d�‘qS )r   r9   r:   r   )r,   r-   Únanr;   r   r   r   r&   Å   s   ÿ)rC   rD   rE   c                 C   s   t | d ƒS rI   rJ   rL   r   r   r   rN   ó   r'   z'ties_method,ascending,na_option,pct,exprT   rV   rW   rZ   r^   r_   )rQ   rQ   rz   rR   rQ   rS   rz   rz   )ç      Ð?r~   ç      ì?ç      ä?r~   ç      à?r   r   )rS   rS   rz   rU   rS   rQ   rz   rz   )r�   r�   r   ç      À?r�   r~   r   r   )rU   rU   ry   rR   rU   rS   ry   ry   )r‚   r‚   ç      è?r€   r‚   r�   rƒ   rƒ   )rY   rY   ry   rU   rY   rQ   ry   ry   )ç      Ø?r„   rƒ   r‚   r„   r~   rƒ   rƒ   )rY   rY   ç       @rR   rY   rS   r…   r…   )r„   r„   rU   r€   r„   r�   rU   rU   )rR   rR   r…   rU   rR   rQ   r…   r…   )r€   r€   rU   r‚   r€   r~   rU   rU   )rU   rQ   ry   rR   rY   rS   rz   r…   )r‚   r~   rƒ   r€   r„   r�   r   rU   )rY   rS   ry   rU   rR   rQ   rz   r…   )r„   r�   rƒ   r‚   r€   r~   r   rU   )rU   rU   rS   rY   rU   rQ   rS   rS   )r~   r~   rU   rƒ   r~   r�   rU   rU   )rY   rY   rS   rU   rY   rQ   rS   rS   )rƒ   rƒ   rU   r~   rƒ   r�   rU   rU   c                 C   sŒ   t  | t|ƒ¡}|}t|ƒt| ƒ }t|t jƒr@t j||jd�}t||dœƒ}	|	 	d¡j
||||d�}
t|t| ƒ dgd�}t |
|¡ d S )Nr   r`   r%   ©rb   rc   r{   r+   ra   rd   rf   )r7   r8   rl   rc   r{   r+   rm   r%   rn   r   r4   ro   r   r   r   Útest_rank_args_missingÂ   s     r
ÿr‡   zpct,exp)rY   rY   rY   rY   rY   )rZ   rZ   rZ   rZ   rZ   c                 C   sL   t g d¢dgd dœƒ}| d¡j| d�}t |d dgd	�}t ||¡ d S )
N)
Úarˆ   rˆ   rˆ   rˆ   Úbr‰   r‰   r‰   r‰   é   é
   r`   r%   r*   r   ra   rd   ©r   r   r   r2   rk   )r+   rm   r   r4   ro   r   r   r   Útest_rank_resets_each_groupÃ  s    ÿr�   r   )Úint64Zint32Zuint64Zuint32Úfloat64Zfloat32Úupperc                 C   s¤   |r(| d   ¡ | dd …  } |  dd¡} tdgd dgd dœƒ}|d  | ¡|d< |d j| ksfJ ‚| d	¡ ¡ }tg d
¢dgd�}|r”| d¡}t ||¡ d S )Nr   rŠ   ZUiZUIrˆ   é   r`   ra   r%   )ç      @r’   r’   r’   rd   ÚFloat64)	r�   Úreplacer   Úastyper   r   r   r2   rk   )r   r�   r   r4   ro   r   r   r   Útest_rank_avg_even_valsÏ  s    
r–   rl   )rP   rX   r[   r\   r]   rc   r{   )rq   ru   rx   r+   )Úbarr—   Úfoor—   Úbazr—   r˜   r™   c                 C   s¬   t dgd |dœƒ}|d  ¡ }| d¡}|j| |||d�}| ¡ rht dgd dtjdtjd	gdœƒ}	nt dgd g d
¢dœƒ}	|	 d¡}
|
j| |||d�}t ||¡ d S )Nr˜   é   r`   ra   r%   r†   r   r   rŠ   )r   r   r   r   rŠ   )	r   Zisnar   r   Úanyr,   r}   r2   rk   )rl   rc   r{   r+   r8   r   Úmaskr   ÚresZdf2r   Úaltr   r   r   Útest_rank_object_dtypeã  s    
$
ÿrŸ   )TÚbadrŠ   rŠ   r   c                 C   sb   t dgd |dœƒ}d}tjt|d��( | d¡j| |||d� W d   ƒ n1 sT0    Y  d S )Nr˜   rš   r`   z3na_option must be one of 'keep', 'top', or 'bottom'r   r%   r†   )r   r   r   Ú
ValueErrorr   r   )rl   rc   r{   r+   r8   r   r   r   r   r   Útest_rank_naoption_raisesÿ  s    
ÿr¢   c                  C   sˆ   d} t g d¢dtjdgdœƒ}| | ¡jjdd�}tdtjdgd	d
�}t ||¡ | | ¡jdd�}t d	dtjdgiƒ}t 	||¡ d S )NÚA)r   rŠ   r   rU   rQ   ©r£   ÚBTr*   r�   r¥   ©Úname)
r   r,   r}   r   r¥   r   r   r2   r3   rk   )Úcolumnr   r4   r5   r   r   r   Útest_rank_empty_group  s    r©   z"input_key,input_value,output_value)rŠ   rŠ   r   r   )rŠ   r   rŠ   r   )r�   rU   r�   rU   r�   ©rŠ   rŠ   r   c                 C   s>   t | |dœƒ}| d¡jddd�}t d|iƒ}t ||¡ d S )Nr¤   r£   r]   T©rb   r+   r¥   rŒ   )Z	input_keyZinput_valueZoutput_valuer   r4   r5   r   r   r   Útest_rank_zero_div#  s    r¬   c                  C   s€   t g d¢t tj¡jt tj¡jt tj¡jgttdddƒtgdœƒ} |  d¡ 	¡ }t g d¢tj
dtj
gdœƒ}t ||¡ d S )	Nrª   iÑ  rŠ   )ÚgrpÚint_colÚdatetimeliker­   )rU   rQ   rU   rU   )r®   r¯   )r   r,   ZiinforŽ   rX   r[   r   r   r   r   r}   r2   rk   ©r   r4   r5   r   r   r   Útest_rank_min_int5  s    ýùÿÿr±   Úuse_nanc                 C   sŽ   | r
t jnd}tddgddgd|gd|ggddgd�}| dg¡d jdd	d
�}| rntddt jt jgdd�}ntg d¢dd�}t ||¡ d S )Nrs   éÿÿÿÿrŠ   r   Úgroupra   rd   r]   Tr«   r�   r¦   )r^   r_   rŠ   rŠ   )r,   r}   r   r   r   r   r2   r3   )r²   Z
fill_valuer   r4   r5   r   r   r   Ú.test_rank_pct_equal_values_on_group_transitionK  s"    üù	þrµ   c                  C   sò   t tddgddgdœƒtddgdd	gd
œƒdœdd�} d}tjt|d�� | jddd�}W d   ƒ n1 sl0    Y  d}tjt|d�� |jdd�}W d   ƒ n1 sª0    Y  t | d jdd�| d jdd�gdddgd�}t ||¡ d S )Nrs   r‘   rŠ   r   )Úcol1Úcol2rš   r:   é   r9   )Úcol3Zcol4)rˆ   r‰   r(   z+DataFrame.groupby with axis=1 is deprecatedr   r   ©Úlevelr)   ú/DataFrameGroupBy.rank with axis=1 is deprecatedrˆ   r‰   )r)   Úkeys)r   r   r2   Úassert_produces_warningÚFutureWarningr   r   rk   )r   r   r   r4   r5   r   r   r   Útest_rank_multiindexd  s(    þû,*þúrÀ   c                  C   s.  t g d¢g d¢g d¢dœg d¢d�} d}tjt|d�� | jd	d	d
�}W d   ƒ n1 sZ0    Y  d}tjt|d�� |jdd�}W d   ƒ n1 s˜0    Y  t| jd jdd�| jd jdd�gd	d�}t ||¡ d}tjt|d�� |jd	d�}W d   ƒ n1 �s0    Y  | 	|¡�r*J ‚d S )N©rŠ   rs   rš   r¸   ©r   r‘   r:   r9   ©rr   rv   g      @g      @©r   rŠ   r   ©rˆ   rˆ   r‰   r‰   ©r1   ú5The 'axis' keyword in DataFrame.groupby is deprecatedr   r   rº   r¼   rŠ   r(   rˆ   r‰   z+The 'axis' keyword in DataFrameGroupBy.rank)
r   r2   r¾   r¿   r   r   r   Úlocrk   Úequals)r   r   r   r�   r5   rž   r   r   r   Útest_groupby_axis0_rank_axis1€  s     þ,*,,rÊ   c                  C   sÒ   t g d¢g d¢g d¢dœg d¢d�} d}tjt|d�� | jd	d	d
�}W d   ƒ n1 sZ0    Y  d}tjt|d�� |jdd�}W d   ƒ n1 s˜0    Y  | d	dg  tj¡}|d |d< t 	||¡ d S )NrÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   r   r   rº   z1DataFrameGroupBy.cummax with axis=1 is deprecatedrŠ   r(   r   )
r   r2   r¾   r¿   r   Zcummaxr•   r,   r�   rk   )r   r   r   Zcmaxr5   r   r   r   Útest_groupby_axis0_cummax_axis1š  s    þ,*rË   c                  C   s€   t dddtjgddœtjddd�gd d	�} |  | jd
g¡jjddd�}t	dddtjgtjddd�gd dd�}t
 ||¡ d S )NrU   rQ   rY   )r£   r   Z20170101z
US/EasternrF   r‘   rÆ   r£   T)rc   r+   r   )r1   r§   )r   r,   r}   r
   Ú	Timestampr   r1   r   r   r   r2   r3   r°   r   r   r   Útest_non_unique_index®  s    þýrÍ   c                  C   s‚   t jdddtjddgdd�} t jdddtjd	d
gdd�}tg d¢| |dœƒ}| d¡}| ¡ }| t¡ d¡ ¡ }t	 
||¡ d S )Nrˆ   r‰   ÚcTr   rŠ   r   rs   r‘   rš   )r   rŠ   r   rŠ   r   rŠ   )r¶   r·   r¹   r¶   )r
   r   r,   r}   r   r   r   r•   r.   r2   rk   )r   Úcat2r   r   r�   r5   r   r   r   Útest_rank_categorical½  s    
rÐ   c                 C   sP   t dd gidd�}|jddd�d jd| d�}tdgd|jd	�}t ||¡ d S )
NrM   r“   r   F)ZdropnarX   )rb   r{   rU   )r   r§   )r   r   r   r   r§   r2   r3   )r{   r   r4   r5   r   r   r   Útest_groupby_op_with_nullablesË  s    rÑ   )&r   Únumpyr,   r   Zpandasr
   r   r   r   r   Zpandas._testingZ_testingr2   r   r6   ÚmarkZparametrizerÌ   Z	to_periodrp   Úinfr}   r|   r‡   r�   r–   rŸ   r¢   r©   r¬   r±   rµ   rÀ   rÊ   rË   rÍ   rÐ   rÑ   r   r   r   r   Ú<module>   sà  þûûûûêü"Ü&ìþ$ÿâþ#þøøøøáü.Ð2ûûûû""û"""û"ûûûûûøûûøûûûûûûûû€ Èþ >ÿ
	ÿÿýþ
 üþ	
	
