o
    dFY                  *   @   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dZg d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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dg dejdddgejdg dejdddgejdg ddejdejdggdd Zejdg dejdg dejdddgejdddgejdg ddejdejdgdejdejd9ggdd Zdd Zejdddgddgd5d5gfg dg dg dfg ddddejgdd5d5ejgfg dddejgdd5ejgfgdd Zdd Zejdddgdd Zdd Z dd Z!dd Z"dd Z#dd Z$dS )    )datetimeN)	DataFrameNaTSeriesconcatc                  C   s   t jg dd} t| }| }d}|| }tjt|d |  W d    n1 s,w   Y  || }tjt|d |  W d    d S 1 sMw   Y  d S )NForderedz0Cannot perform rank with non-ordered Categoricalmatch)	pdCategoricalr   to_framegroupbypytestraises	TypeErrorrank)catserdfmsggbgb2 r   c/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/groupby/test_rank.py)test_rank_unordered_categorical_typeerror   s   



"r   c                  C   s  t dd} t dd}tjjdddd}tjjdddd}ttj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 )N
   d      r   i  )size)valuekey1key2r!   r"   c                 S   s   g | ]	\}}|j  qS r   r    r   .0keypiecer   r   r   
<listcomp>1   s    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    )tmrands_arraynprandomrandintr   randntaker   r    r   r   reindexindexassert_series_equal)lev1lev2lab1lab2r   resultexpectedr   r   r   test_rank_apply!   s,   
r=   grpsquxquuxvalsc                 C   s   g | ]}t jg d |dqS ))   rB      rB      dtype)r/   arrayr%   rF   r   r   r   r(   C   s    r(   )i8i4i2i1u8u4u2u1f8f4f2z
2018-01-02z
2018-01-08z
2018-01-06z
US/PacifictzDc                 C      t | d S Nr   typexr   r   r   <lambda>e       r]   )idszties_method,ascending,pct,expaverageTF)       @ra         @ra         @)皙?rd         ?rd   皙?)rc   rc   re   rc   ra   )rf   rf   皙?rf   rd   min)re   re   rb   re   rc   )rg   rg   re   rg   rf   )      @ri   re   ri   ra   )333333?rj   rg   rj   rd   max)ri   ri   rb   ri   rc   )rj   rj   re   rj   rf   )rb   rb   re   rb   ra   )re   re   rg   re   rd   first)re   ra   rb   ri   rc   )rg   rd   re   rj   rf   )ri   rc   re   rb   ra   )rj   rf   rg   re   rd   dense)re   re   ri   re   ra   )UUUUUU?rn   re   rn   UUUUUU?)re   re   rn   re   ro   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 )NrE   r&   valr&   )method	ascendingr,   rq   columnsr/   repeatlenlist
isinstancendarrayrG   rF   r   r   r   r-   assert_frame_equal)r>   rA   ties_methodrs   r,   expr&   	orig_valsr   r;   exp_dfr   r   r   test_rank_args@   s   Ar   re   z#ties_method,ascending,na_option,expkeep      ?         @top)      @r   r   rb   r         @r   bottom)r   r   r   ri   r   r   r   )r   r   r   rb   r   r   r   )r   r   r   ri   r   r   r   ri   rc   )ri   ri   re   rb   re         @r   )re   re   r   ri   r   rc   rc   )r   r   re   rb   re   ri   ri   )rc   rc   r   ri   r   re   re   ra   rb   )rc   rc   ra   rb   ra         @r   )ra   ra   r   ri   r   rb   rb   )r   r   ra   rb   ra   rc   rc   )rb   rb   r   ri   r   ra   ra   )ri   rc   re   rb   ra   r   r   )re   ra   r   ri   r   rc   rb   )r   r   re   rb   ra   ri   rc   )rc   rb   r   ri   r   re   ra   )ra   ra   re   ri   re   rc   rc   )re   re   rc   ra   rc   ri   ri   )rc   rc   re   ri   re   ra   ra   )ri   ri   rc   ra   rc   re   re   c           
      C   sf   t | t|}|t|  }t||d}|dj|||d}t|t|  dgd}	t||	 d S )Nrp   r&   )rr   rs   	na_optionrq   rt   )r/   rw   rx   r   r   r   r-   r|   )
r>   rA   r}   rs   r   r~   r&   r   r;   r   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 )rB   rC   rD   rE   )r/   rG   nanrH   r   r   r   r(      s    ")rQ   rR   rS   c                 C   rW   rX   rY   r[   r   r   r   r]      r^   z'ties_method,ascending,na_option,pct,exprd   rf   rg   rj   rn   ro   )ra   ra   r   rb   ra   rc   r   r   )      ?r         ?      ?r         ?r   r   )rc   rc   r   re   rc   ra   r   r   )r   r   r         ?r   r   r   r   )re   re   r   rb   re   rc   r   r   )r   r         ?r   r   r   r   r   )ri   ri   r   re   ri   ra   r   r   )      ?r   r   r   r   r   r   r   )ri   ri          @rb   ri   rc   r   r   )r   r   re   r   r   r   re   re   )rb   rb   r   re   rb   ra   r   r   )r   r   re   r   r   r   re   re   )re   ra   r   rb   ri   rc   r   r   )r   r   r   r   r   r   r   re   )ri   rc   r   re   rb   ra   r   r   )r   r   r   r   r   r   r   re   )re   re   rc   ri   re   ra   rc   rc   )r   r   re   r   r   r   re   re   )ri   ri   rc   re   ri   ra   rc   rc   )r   r   re   r   r   r   re   re   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 )NrE   rp   r&   rr   rs   r   r,   rq   rt   rv   )r>   rA   r}   rs   r   r,   r~   r&   r   r   r;   r   r   r   r   test_rank_args_missing   s    r
r   zpct,exp)ri   ri   ri   ri   ri   )rj   rj   rj   rj   rj   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   rp   r&   r+   rB   rq   rt   r   r   r   r-   r|   )r,   r~   r   r;   r   r   r   r   test_rank_resets_each_group  s   r   rF   )int64int32uint64uint32float64float32upperc                 C   s   |r| d   | dd   } | dd} tdgd dgd d}|d | |d< |d j| ks3J |d	 }tg d
dgd}|rJ|d}t|| d S )Nr   r   UiUIr      rp   rq   r&   )      @r   r   r   rt   Float64)	r   replacer   astyperF   r   r   r-   r|   )rF   r   r   r;   r   r   r   r   test_rank_avg_even_vals  s   
r   r}   )r`   rh   rk   rl   rm   rs   r   )r   r   r   r,   )barr   foor   bazr   r   r   c                 C   s   t dgd |d}|d  }|d}|j| |||d}| r4t 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      rp   rq   r&   r   r   rB   r   )r   r   rB   r   r   )	r   isnar   r   anyr/   r   r-   r|   )r}   rs   r   r,   rA   r   maskr   resdf2r   altr   r   r   test_rank_object_dtype  s   
$
r   )Tbadr   r   rB   c                 C   sd   t dgd |d}d}tjt|d |dj| |||d W d    d S 1 s+w   Y  d S )Nr   r   rp   z3na_option must be one of 'keep', 'top', or 'bottom'r	   r&   r   )r   r   r   
ValueErrorr   r   )r}   rs   r   r,   rA   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   re   ra   r   BTr+   r   r   name)
r   r/   r   r   r   r   r   r-   r6   r|   )columnr   r;   r<   r   r   r   test_rank_empty_group  s   r   z"input_key,input_value,output_value)r   r   rB   rB   )r   rB   r   rB   )r   re   r   re   r   r   r   rB   c                 C   s>   t | |d}|djddd}t d|i}t|| d S )Nr   r   rm   Trr   r,   r   r   )	input_keyinput_valueoutput_valuer   r;   r<   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   )re   ra   re   re   )r   r   )r   r/   iinfor   rh   rk   r   r   r   r   NaNr-   r|   r   r;   r<   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
}| r7tddt jt jgdd}ntg ddd}t|| d S )Nr   r   rB   grouprq   rt   rm   Tr   r   r   )rn   ro   r   r   )r/   r   r   r   r   r   r-   r6   )r   
fill_valuer   r;   r<   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} | jddd}|jdd}t | d jdd| d jddgdddgd}t|| d S )Nr   r   r   rB   )col1col2r   rD      rC   )col3col4)r   r   r)   r   levelr*   r   r   )r*   keys)r   r   r   r   r-   r|   )r   r   r;   r<   r   r   r   test_rank_multiindexd  s    r   c                  C   s   t g dg dg ddg dd} | jddd}|jd	d
}t| jd jd	d
| jd jd	d
gdd
}t|| |jdd
}||rHJ d S )Nr   r   r   r   rB   r   rD   rC   r   r   g      @g      @r   r   rB   r   r   r   r   r5   r   r   r   r)   r   r   )r   r   r   r   locr-   r|   equals)r   r   r   r<   r   r   r   r   test_groupby_axis0_rank_axis1|  s   ,r   c                  C   sn   t g dg dg ddg dd} | jddd}|jd	d
}| dd	g tj}|d	 |d< t|| d S )Nr   r   r   r   r   r   r   r   r   r)   rB   )r   r   cummaxr   r/   r   r-   r|   )r   r   cmaxr<   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 )Nre   ra   ri   )r   r    20170101z
US/EasternrT   r   r   r   T)rs   r,   r    )r5   r   )r   r/   r   r   	Timestampr   r5   r    r   r   r-   r6   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   rB   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r/   r   r   r   r   r   objectr-   r|   )r   cat2r   r   r   r<   r   r   r   test_rank_categorical  s   
r   )%r   numpyr/   r   pandasr   r   r   r   r   pandas._testing_testingr-   r   r=   markparametrizer   	to_periodr   infr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   st   "&$#.2	"" "&"'"(*"029@GNUel{}                      &  (  .  0  6  7  8  9  >
	
 
		
