o
    õ­dZb  ã                   @   s¤  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ej dddg¡dd	„ ƒZej d
d dg¡dd„ ƒZej dddg¡dd„ ƒZej dddg¡ej dedddejgdœƒeddgiedgdddfedejgdœededdgiedgdddfg¡dd„ ƒƒZdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zej d%d&ge	d'd(d)d*gd+œd&ge	d'd(d)d*gd+œd&ge	d'd(d)d*gd+œfg d,¢e	d-d.d)e	d'd(d)e	d/d0d)gg d1¢d+œd&d2ge	d-d.d)e	d'd(d)gd*d3gd+œd&d2ge	d/d0d)e	d'd(d)gd4d3gd+œfg¡d5d6„ ƒZej d7de	d8d9d)dgde	d:d9d)d;gg¡d<d=„ ƒZej d>ejd?d@gdAdejd*d3gdBde dCdDg¡ej d*d3gdEdFg¡ej dGg dH¢¡dIdJ„ ƒƒZ!dKdL„ Z"ej dMdNdd gfdNd g fdNd*d d3gfdNdOg dP¢fdQdd*gfdQd g fdQd*d*d3gfdQdOg dP¢fg¡ej dRdg d&gd2gd&d2gg¡ej dSd?d@g¡dTdU„ ƒƒƒZ#ej dVdNdd gfdNd g fdNd*d d3gfdNdOg dP¢fdQdd*gfdQd g fdQd*d*d3gfdQdOg dP¢fg¡dWdX„ ƒZ$dYdZ„ Z%d[d\„ Z&d]d^„ Z'ej d_g d`¢¡dadb„ ƒZ(ej d_g d`¢¡dcdd„ ƒZ)dedf„ Z*dgdh„ Z+ej dg di¢¡djdk„ ƒZ,ej dle-dd4d3ƒg dm¢ge-ddnƒg do¢ge-dd3ƒe-dndƒgg dp¢gd d*e-dndƒgg dp¢gg¡dqdr„ ƒZ.dsdt„ Z/dudv„ Z0dwdx„ Z1dydz„ Z2d{d|„ Z3ej d}ddg d~¢e4dƒfdd*d d4ge4d€ƒfddg d~¢e4dƒfddg d‚¢e4dƒƒfd*dg d„¢e4d…ƒfd*dd*ge4d2ƒfddd3d†ge4d‡ƒfdd3d†ge4dˆƒfg¡ej dd‰d
g¡dŠd‹„ ƒƒZ5ej 6dŒ¡ddŽ„ ƒZ7dd„ Z8dS )‘é    N)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚisnac                 C   s  |   d¡}| ¡ }| jddgg d¢f }tddgdd|_| ¡ }t ||¡ | d¡}| jddg }t ||¡ | 	¡ }| jdd	gg d¢f }tddgdd|_t ||¡ | d
¡}| j
dd	g }t ||¡ | d¡}| j
ddg }t ||¡ |d  ¡  |d  	¡  |d  d¡ tj| j| d dkdf< t|d  ¡ d ƒs¦J ‚t|d  	¡ d ƒs²J ‚t|d  d¡j
d ƒsÀJ ‚tdtjgddgddggddgd} |   d¡}| ¡ }| j
ddg  d¡}t ||¡ | j
ddg }|jddd}t ||¡ d S )NÚAé   r   )ÚBÚCÚDÚbarÚfoo©Únameé   é   éÿÿÿÿé   é   r
   é   é   ©ÚcolumnsÚany©Údropna)ÚgroupbyÚfirstÚlocr   ÚindexÚ
sort_indexÚtmÚassert_frame_equalÚnthÚlastÚilocÚnpÚnanr   r   Ú	set_index)ÚdfÚgroupedr   Úexpectedr$   r%   ÚgÚresult© r/   úb/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/groupby/test_nth.pyÚtest_first_last_nth   sD   



$
r1   Úmethodr   r%   c                 C   sŠ   t g d¢ddd|gdœƒ d¡}t|| ƒƒ }| dkrddg}nddg}tj||d jd	}tddgdd
}t d|i|d}t ||¡ d S )N©r	   r	   r   r   r	   r   r   ©ÚaÚbr5   r   r6   ©Údtyper   ©r    )	r   r   Úgetattrr'   Úarrayr8   r   r"   r#   )r2   Únulls_fixtureÚgroupsr.   ÚvaluesÚidxr,   r/   r/   r0   Útest_first_last_with_na_object@   s    
r@   r    r   c                 C   sb   t g d¢ddd|gdœƒ}| d¡}| | ¡}| dkr"|jddg n|jddg }t ||¡ d S )Nr3   r	   r   r   r4   r5   r   ©r   r   r$   r&   r"   r#   )r    r<   r*   r=   r.   r,   r/   r/   r0   Útest_nth_with_na_objectR   s
   

$rB   c                 C   s>   t  dgd gdœ¡}|jddd}t|| ƒƒ }t ||¡ d S )Nr5   ©ÚidÚvaluerD   F©Úas_index)r   Ú	from_dictr   r:   r"   r#   )r2   r*   r=   r.   r/   r/   r0   Útest_first_last_with_None\   s   rI   zdf, expectedr5   r   rC   rE   rD   r   r9   r7   c                 C   s"   t | d¡| ƒƒ }t ||¡ d S )NrD   )r:   r   r"   r#   )r2   r*   r,   r.   r/   r/   r0   Ú"test_first_last_with_None_expandedg   s   rJ   c           
      C   s&  |   ¡ }d|d< d|d< | d¡}| ¡ }|jddgg d¢f }tdd	gdd
|_| ¡ }t ||¡ | 	¡ }|jddgg d¢f }tdd	gdd
|_| ¡ }t ||¡ | 
d¡}|jddg }t ||¡ ttdƒƒ}| d¡ ttdƒ|dd}|jdks‚J ‚|jdd ¡ }	|	jdks‘J ‚d S )NTÚEr	   ÚFr   r   )r
   r   r   rK   rL   r   r   r   r   r   r   r   é
   é	   é   ÚIntCol)Údatar    r   Úint64©Úlevel)Úcopyr   r   r   r   r    r!   r"   r#   r%   r$   r&   ÚlistÚrangeÚappendr   r8   )
Údf_mixed_floatsr*   r+   r   r,   r%   r$   r?   ÚsÚfr/   r/   r0   Útest_first_last_nth_dtypes{   s.   


r\   c                  C   sˆ   t dgttjgtddœƒ} |  d¡}|  d¡j}t 	|j 
¡ |¡ t 	|j ¡ |¡ | j}t 	|j d¡|¡ t 	|j d¡|¡ d S )Nr   r7   )rQ   ÚnansrQ   r   r   )r   r   r'   r(   Úobjectr   r)   r]   r"   Úassert_series_equalr   r%   r$   )r*   r+   r,   r/   r/   r0   Útest_first_last_nth_nan_dtype›   s   
r`   c               
   C   s~   t tdƒddgtdƒddgdddgd	d
dgiƒ} |  d¡ ¡ }t g d¢gttdƒtdƒd	gƒtdgddd}t ||¡ d S )Nz2012-01-01 00:00:00r5   r6   z2012-01-02 00:00:00ÚcÚdr   ÚeÚaaaar[   r-   )r5   ra   r[   z
2012-01-01z
2012-01-02r   ©r   r    )r   r   r   r   r   r"   r#   )Útestr.   r,   r/   r/   r0   Útest_first_strings_timestamps©   s   üÿýrg   c            
   
   C   sN  t dtjgddgddggddgd} |  d¡}t | d¡| jdd	g ¡ t | d¡| jdg ¡ t | d	¡| jg  ¡ t | d
¡| jdd	g ¡ t | d¡| jdg ¡ t | d¡| jg  ¡ t 	|j
 d¡| j
jdd	g ¡ t 	|j
 d¡| j
jdg ¡ t |dg  d¡| dg jdd	g ¡ t |jddd| jdd	g ¡ t |jd
dd| jdd	g ¡ t |jddd| jd d… ¡ t |jd	dd| jd d… ¡ t ddddddœddddddœddddddœddddddœd œƒ d!d"g¡} | jdd#d$ d	¡}| jd
g }t ||¡ | jdd#d$ d%¡}| jg  }t ||¡ t tj dd&d'¡d(d)} | d }| d }| |¡ ¡ }| |¡ d*d+„ ¡}tj	||d#d, |jdks^J ‚|jdksfJ ‚||dk jd }|jd |ksyJ ‚|jd |ksƒJ ‚tjtd-d. |j|d#d/jdd0d W d   ƒ n	1 s¢w   Y  t dtjgddgddggddgd} |  d¡}|j
jdd1d}| j
jdd	g }t 	||¡ t dtjgdd%gddgddgddggddgd} |  d¡}t | d¡| jdd%g ¡ t | dg¡| jdd%g ¡ t | ddg¡| jg d2¢ ¡ t | dd
g¡| jg d3¢ ¡ t | g d4¢¡| jg d¢ ¡ t | g d5¢¡| jg d¢ ¡ t | d	g¡| jd	g ¡ t | d%dg¡| jg  ¡ tjd6d7dd8}t d|d9d:gd;} | jj| jjg}| j|d#d< g d=¢¡}t g d>¢¡}	t dd9d:g|	d?}t ||¡ d S )@Nr	   r   r   r   r   r
   r   r   r   r   éþÿÿÿéýÿÿÿr   r   r   ÚgreenÚred©r   r	   r   r   r   ÚhamÚeggsÚporkgþI|î»ø?gçoB!²¿gHk:!4Àgn‹2d’Ý?gC8fÙ“Àà?g£W”†â?gV¿Òùð,ï¿gN'ÙêrŠð?gÃGÄ”H"é¿gû­(	‰æ?)ÚcolorÚfoodÚtwoÚonerp   rq   F)rT   rG   r   rM   )éd   r   rR   r7   c                 S   s
   | j d S )Nr   )r&   )Úxr/   r/   r0   Ú<lambda>õ   s   
 ztest_nth.<locals>.<lambda>)Úcheck_nameszFor a DataFrame©Úmatch)ÚsortTÚall)r   r	   r   r   )r   r   r   r   ©r   r	   r   )r   r	   r   z4/1/2014z	6/30/2014)ÚstartÚendÚfreqr5   r6   ©r    r   rF   )r   r   rh   r   )z2014/4/1z2014/4/4z	2014/4/29z	2014/4/30z2014/5/1z2014/5/6z	2014/5/29z	2014/5/30z2014/6/2z2014/6/5z	2014/6/27z	2014/6/30re   )r   r'   r(   r   r"   r#   r$   r&   r   r_   r
   r)   ÚrandomÚrandintr   Úapplyr   ÚpytestÚraisesÚ
ValueErrorÚpdÚ
date_ranger    ÚyearÚmonthÚto_datetime)
r*   r-   r.   r,   rZ   Ú	expected2ÚvÚbusiness_datesÚkeyÚexpected_datesr/   r/   r0   Útest_nth¼   sœ   $
 (    ûûöÿ
í
ÿ$
0
    ÿr‘   c                 C   s6   |   ddg¡}| d¡}| jg d¢ }t ||¡ d S )Nr   r
   r   ©r   r   r   r   )r   r$   r&   r"   r#   ©Úthree_groupr+   r.   r,   r/   r/   r0   Útest_nth_multi_grouper/  s   
r•   z#data, expected_first, expected_lastr   z2012-02-01 14:00:00z
US/Central©Útzr	   ©rD   Útimer   )r   r
   r   z2012-01-01 13:00:00zAmerica/New_Yorkz2012-03-01 12:00:00zEurope/London©r	   r   r   r
   r   r   c                 C   sÌ   t | ƒ}|jddd ¡ }t |ƒ}g d¢}t || || ¡ |jdddd  ¡ }t ||ddg ¡ |jddd ¡ }t |ƒ}g d¢}t || || ¡ |jdddd  ¡ }t ||ddg ¡ d S )NrD   FrF   r˜   r™   )r   r   r   r"   r#   r%   )rQ   Úexpected_firstÚexpected_lastr*   r.   r,   Úcolsr/   r/   r0   Útest_first_last_tz8  s   6rž   zmethod, ts, alphaz
2013-01-01ú
US/Easternz
2013-01-02r6   c                 C   sŽ   t tdƒƒ d¡}tg d¢|tjdddddœƒ}t| d	¡| ƒƒ }ttj|d
g|j	d|t
dddgdœtddgd	dd}t ||¡ d S )NÚabcÚcategory)r	   r	   r   Ú20130101r   rŸ   )Úperiodsr—   )ÚgroupÚcategory_stringÚ
datetimetzr¤   ra   r7   z
2013-01-03r–   )r¥   r¦   r	   r   r   r9   )r   rV   Úastyper   r‡   rˆ   r:   r   ÚCategoricalr8   r   r   r"   r#   )r2   ÚtsÚalphar¥   r*   r.   r,   r/   r/   r0   Útest_first_last_tz_multi_column  s"   	ýÿ
ÿüù	r«   r>   TFÚbooleanÚInt64z
2020-01-01z
2020-02-01r   )ÚunitÚfunction)r   r%   ÚminÚmaxc           	      C   s„   t ddg| dœƒ}| d¡}tddgdd}t| d|d}t d| i|d}t|d |ƒƒ }t ||¡ | d|i¡}t ||¡ d S )	Nr	   r   r4   r5   r   r6   )r   r    r9   )	r   r   r   r   r:   r"   r_   Úaggr#   )	r>   r¯   r*   r+   r?   Úexpected_seriesÚexpected_frameÚresult_seriesÚresult_framer/   r/   r0   Ú+test_first_last_extension_array_keeps_dtypeŸ  s   
r·   c                  C   sR   t g d¢g d¢g d¢dœƒ} |  ddg¡}| d¡}| jg d¢ }t ||¡ d S )	N)r   r   r   r   r   r   r   r   r   r   r   )rs   rs   rs   rr   rs   rs   rs   rr   rr   rr   rs   )Údullr¸   Úshinyr¸   r¸   r¹   r¹   r¸   r¹   r¹   r¹   ©r   r
   r   r   r
   r   r’   rA   r“   r/   r/   r0   Ú test_nth_multi_index_as_expected¹  s   åÿ+
r»   zop, n, expected_rowsÚheadr   r|   Útailr   rG   c           	      C   sp   t ddgddgddggddgd}|jd|d	}|j| }|d ur)|| }|| }t|| ƒ|ƒ}t ||¡ d S )
Nr	   r   r   r   r   r   r
   r   rF   ©r   r   r&   r:   r"   r#   )	ÚopÚnÚexpected_rowsr   rG   r*   r-   r,   r.   r/   r/   r0   Útest_groupby_head_tailí  s   "
rÂ   zop, n, expected_colsc                 C   sj   t g d¢g d¢g d¢g d¢gg d¢d}|jg d¢dd	}|jd d …|f }t|| ƒ|ƒ}t ||¡ d S )
Nrš   )r	   r   r   )r   r   r   )r   é   rN   rº   r   )r   r   r	   r	   ©Úaxisr¾   )r¿   rÀ   Úexpected_colsr*   r-   r,   r.   r/   r/   r0   Útest_groupby_head_tail_axis_1  s    ÿrÇ   c                  C   s  t ddgddgddggddgd} | jd	dg }|  d¡}|jdd
}| d	¡}t || ¡ t ||¡ |  d¡}|jdd
}| d	¡}t || ¡ t ||¡ |  d¡}| d	¡}|jdd
}t ||¡ t || ¡ |  d¡}| d	¡}|jdd
}t ||¡ t || ¡ d S )Nr	   r   r   r   r   r   r
   r   r   ©rÀ   )r   r&   r   r¼   r$   r"   r#   r½   )r*   r,   r-   Úresult1Úresult2r/   r/   r0   Útest_group_selection_cache  s,   "







rË   c                  C   sn   t dgg d¢d} |  d¡ d¡}| jd d… }t ||¡ |  ddg¡ d¡}| jd d… }t ||¡ d S )Nr   ©r5   r6   ra   r€   r5   rM   r6   rA   ©r*   r.   r,   r/   r/   r0   Útest_nth_empty=  s   rÎ   c                  C   sŽ   t g d¢g d¢ddtjgg d¢g d¢gg d¢d} |  d	¡ d
¡}| jd
dg }t ||¡ |  d	¡jddd}| jddg }t ||¡ d S )N)r	   r6   rt   )r	   r5   é2   r	   r5   )r   ra   éÈ   )r   rb   é–   )r   r   r
   r   r   r   r   r   r   r   r   ©r   r'   r(   r   r$   r&   r"   r#   rÍ   r/   r/   r0   Útest_nth_column_orderI  s   $þrÓ   r   )Nr   r{   c                 C   sZ   t tjdtjdtjgg d¢g d¢dœƒ}| d¡jd| d}|jdd	g }t ||¡ d S )
Nr5   r6   ©r   r   r   r   rÃ   )r	   r   r   r   rN   rÌ   r   r   r	   r   rÒ   ©r   r*   r.   r,   r/   r/   r0   Útest_nth_nan_in_grouperY  s   ýÿrÖ   c                 C   s\   t tjdtjdtjgg d¢dœƒ}| d¡d jd| d}|d jddg }t ||¡ d S )	Nr5   r6   rÔ   r4   r   r   r	   r   )r   r'   r(   r   r$   r&   r"   r_   rÕ   r/   r/   r0   Útest_nth_nan_in_grouper_seriesi  s   þÿr×   c                  C   sŽ   t g d¢dt d¡g tg d¢dddœƒ} |  d¡ ¡ }t d	t d¡g tg d
¢ƒ t g d¢¡¡dœƒ}t	g d¢dd|_
t ||¡ d S )N)r   r   ÚsecondÚthirdrÙ   r   ÚNaT)r5   r6   ra   r5   r6   r¡   r7   )r¤   r™   Ú
categoriesr¤   r   )r5   ra   r5   rÌ   )r™   rÛ   )r   rØ   rÙ   r   )r   r'   Ú
datetime64r   r   r   r§   r‡   ÚCategoricalDtyper   r    r"   r#   rÍ   r/   r/   r0   Ú,test_first_categorical_and_datetime_data_natx  s    ýÿÿþÿrÞ   c                  C   s–   t g d¢g d¢g d¢g d¢dœƒ} |  ddi¡} | jdd	gd
 ¡ }t g d¢tg d¢ƒ t g d¢¡¡dœƒ}tjg d¢dd	gd|_	t
 ||¡ d S )N)r	   r	   r	   r   r   )rt   rt   rÐ   rt   rt   )ÚappleÚorangeÚmangorá   rà   )ÚjupiterÚmercuryÚmarsÚvenusrå   )r   r
   r   r   r   r¡   r   r
   )Úby)rß   rá   rá   )râ   rä   rå   )râ   rä   rã   rå   )r   r   ))r	   rt   )r	   rÐ   )r   rt   )Únames)r   r§   r   r   r   r‡   rÝ   r   Úfrom_tuplesr    r"   r#   rÍ   r/   r/   r0   Ú(test_first_multi_key_groupby_categoricalŽ  s(   üÿÿþÿÿré   )r   r%   r$   c                 C   s`   t dgƒ}t |||d|gg d¢djdd}| dkr"t|| ƒdƒ}nt|| ƒƒ }t ||¡ d S )NÚy)r   r   r   r   r   r9   r   rS   r$   r   )r   r   r:   r"   r_   )r2   r<   r,   rQ   r.   r/   r/   r0   Ú%test_groupby_last_first_nth_with_none¨  s   
þýrë   zarg, expected_rows)r   r	   r   r   rh   )r   r   r   ©r   r	   r   r   r   r   r   c                 C   s:   |j | }|  |¡}| j| }t ||¡ t ||¡ d S ©N)r$   r&   r"   r#   )Úslice_test_dfÚslice_test_groupedÚargrÁ   r.   Ú
equivalentr,   r/   r/   r0   Ú
test_slice¹  s
   


rò   c                 C   sT   |j dddd …f }|  ddtdd ƒg¡}| jg d¢ }t ||¡ t ||¡ d S )Nr   r	   rh   rì   )r$   Úslicer&   r"   r#   )rî   rï   r.   rñ   r,   r/   r/   r0   Útest_nth_indexedÍ  s
   rô   c                 C   s>   t jtdd |  d¡ W d   ƒ d S 1 sw   Y  d S )NzInvalid indexrx   g…ëQ¸	@)r„   r…   Ú	TypeErrorr$   ©rï   r/   r/   r0   Útest_invalid_argumentØ  s   "ÿr÷   c                 C   sF   t jtdd |  td d dƒ¡ W d   ƒ d S 1 sw   Y  d S )NzInvalid steprx   r   )r„   r…   r†   r$   ró   rö   r/   r/   r0   Útest_negative_stepß  s   "ÿrø   c                 C   s2   |  t ddg¡¡}| jg d¢ }t ||¡ d S )Nr   r	   rl   )r$   r'   r;   r&   r"   r#   )rî   rï   r.   r,   r/   r/   r0   Útest_np_intsæ  s   rù   c                  C   sb   t g d¢g d¢gddgg d¢d} | j| jd dd d	¡}| jd d …d	d
gf }t ||¡ d S )N)r   r   r   )rÃ   rÃ   r   Úzrê   )r   r
   r   r€   r	   rÄ   r   r   )r   r   r&   r$   r"   r#   rÍ   r/   r/   r0   Ú!test_groupby_nth_with_column_axisî  s   þúrû   z.start, stop, expected_values, expected_columnsrl   ÚABCDEÚADrN   )r   r	   r   ÚABD)r	   r   r   ÚBCEr   ÚCErK   Úcallc                    sn   t tdƒgtdƒgd}|jg d¢dd‰ ‡ fdd„‡ fd	d„d
œ| | |ƒ}t |g|gd}t ||¡ d S )Nr   rü   r   )r   r   r   r   r   r	   rÄ   c                    s   ˆ   t| |ƒ¡S rí   )r$   ró   ©r}   Ústop©Úgbr/   r0   rv     s    z2test_nth_slices_with_column_axis.<locals>.<lambda>c                    s   ˆ j | |… S rí   )r$   r  r  r/   r0   rv     s    )r  r    )r   rW   rV   r   r"   r#   )r}   r  Úexpected_valuesÚexpected_columnsr2   r*   r.   r,   r/   r  r0   Ú test_nth_slices_with_column_axisý  s   

þýýr  z<ignore:invalid value encountered in remainder:RuntimeWarningc                  C   s®   t ddgdtjgdtjgdtjggddgd} t ddggddgd}|  ddg¡jdd	}t ||¡ |  ddg¡jdd	}t ||¡ |  ddg¡jd
d	}t ||¡ d S )Nr5   rú   r6   ra   ÚXÚYr   r	   rÈ   r   ©	r   r'   r(   r   r¼   r"   r#   r½   r$   ©r*   r,   r.   r/   r/   r0   Útest_head_tail_dropna_true  s   &ÿr  c                  C   sÂ   t ddgdtjgdtjggddgd} t ddgdtjgdtjggddgd}| jddgdd	jd
d}t ||¡ | jddgdd	jd
d}t ||¡ | jddgdd	jdd}t ||¡ d S )Nr5   rú   r6   ra   r	  r
  r   Fr   r	   rÈ   r   r  r  r/   r/   r0   Útest_head_tail_dropna_false,  s   &&r  )9Únumpyr'   r„   Úpandasr‡   r   r   r   r   r   r   Úpandas._testingÚ_testingr"   r1   ÚmarkÚparametrizer@   rB   rI   r(   r^   rJ   r\   r`   rg   r‘   r•   rž   r«   r;   r‹   Úto_timedeltar·   r»   rÂ   rÇ   rË   rÎ   rÓ   rÖ   r×   rÞ   ré   rë   ró   rò   rô   r÷   rø   rù   rû   rV   r  Úfilterwarningsr  r  r/   r/   r/   r0   Ú<module>   s:    0

	

þþûþ s	
ý
ý
ýõ


ýù


þú	

þúîîþ
1þþ
üþ	4

øþ

øþ



üþ
	øþÿ
