a
    oÝEbÇ-  ã                   @   sä  d dl Zd dlZd dlZd dlmZ ej 	ddddgddggddgddgdd	gd
œfdddgdej
gddggg d¢g d¢g d¢d
œfg¡dd„ ƒZej 	ddddgddggddgddgdd	gd
œfdddgdej
gddgej
dggg d¢g d¢g d¢d
œfg¡dd„ ƒZej 	ddddgddgddgd	dgdœfdddej
gg d¢g d¢g d¢dœfg¡dd„ ƒZej 	ddddd ej
gejd!d!gdd gd"�fdddd ej
gejg d#¢dd ej
gd"�fg¡d$d%„ ƒZej 	d&dejd'd(gdd gd)d*�fdejg d+¢dd ej
gd)d*�fg¡d,d-„ ƒZej 	d.d/¡d0d1„ ƒZej 	d2de d d3¡dg d4¢ie d d!¡fded5ƒdg d4¢ied6ƒfdejjg d7¢d8d9gd:�dg d4¢iejjg d;¢d8d9gd:�fde d d3¡dg d<¢ie d d3¡fded5ƒdg d<¢ied5ƒfdejjg d7¢d8d9gd:�dg d<¢iejjg d7¢d8d9gd:�fg¡d=d>„ ƒZej 	ddddgddggddgddgd	d	gd
œfdddgdej
gddggg d¢g d?¢g d@¢d
œfg¡dAdB„ ƒZejjej 	dCe dD¡e dE¡fe dF¡e dG¡fe dD¡e dE¡fg¡ej 	dHddId!gfdg dJ¢fg¡dKdL„ ƒƒƒZej 	dMejdddd ej
gg dN¢dOœdPg dQ¢idd ej
gdRdS�ejdddd ej
gg dN¢dOœdPg dT¢iddUdS�ejdg dV¢g dN¢dOœdPg dQ¢iddWdS�ejdg dV¢g dN¢dOœdPg dQ¢iddXdS�g¡dYdZ„ ƒZd[d\„ ZdS )]é    Nzdropna, tuples, outputsTÚAÚBç      *@ç…ëQ¸Î^@ç     À^@ç      ð?©ÚcÚdÚeF)r   çš™™™™™(@r   )r   ç      m@r   )r   ç      (@r   c           	      C   s–   g d¢d|dddgg d¢g d¢g}t j|g d¢d	�}|jd
dg| d� ¡ }t jj|tdƒd�}| sx|jddtj	gdd�}t j||d�}t
 ||¡ d S )N©r   r   é   r   r   r   r   r   r   ©r   r   r   é{   é   ©r   r   r   r   r   ©ÚaÚbr	   r
   r   ©Úcolumnsr   r   ©ÚdropnaÚab©Únamesr   ©Úlevel©Úindex©ÚpdÚ	DataFrameÚgroupbyÚsumÚ
MultiIndexÚfrom_tuplesÚlistÚ
set_levelsÚnpÚnanÚtmÚassert_frame_equal)	r   ÚtuplesÚoutputsÚnulls_fixtureÚdf_listÚdfÚgroupedÚmiÚexpected© r8   úh/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/groupby/test_groupby_dropna.pyÚ:test_groupby_dropna_multi_index_dataframe_nan_in_one_group   s    ür:   r   )r   gš™™™™™*@r   r   )r   g     @m@r   r   )r   r   r   r   c           
   	   C   s°   g d¢d|dddgg d¢|dddd	gd|ddd	gg}t j|g d
¢d�}|jddg| d� ¡ }t jj|tdƒd�}| s’| ddtj	gddtj	gg¡}t j||d�}	t
 ||	¡ d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r#   )
r   r0   r1   r2   Znulls_fixture2r3   r4   r5   r6   r7   r8   r8   r9   Ú;test_groupby_dropna_multi_index_dataframe_nan_in_two_groups3   s    ûr;   zdropna, idx, outputs)r   r	   r
   )r   r   r   )r   r   r   )r   r   r   c                 C   sj   g d¢g d¢g d¢g d¢g}t j|g d¢d�}|jd| d� ¡ }t j|t j|d	dd
�d�}t ||¡ d S )N)r   r   r   r   )Nr   r   r   )r   r   r   r   )r   r   r   r   )r   r   r	   r
   r   r   r   Úobject)ÚdtypeÚnamer!   )r$   r%   r&   r'   ÚIndexr.   r/   )r   Úidxr1   r3   r4   r5   r7   r8   r8   r9   Ú*test_groupby_dropna_normal_index_dataframe_   s    ürA   zdropna, idx, expectedr   r   é   r!   )rB   rB   rB   c                 C   s4   t jg d¢|d�}|jd| d� ¡ }t ||¡ d S )N)r   é   rB   rB   r!   r   )r    r   )r$   ÚSeriesr&   r'   r.   Úassert_series_equal)r   r@   r7   ÚserÚresultr8   r8   r9   Ú test_groupby_dropna_series_level~   s    rH   zdropna, expectedç     @j@ç     àu@ú	Max Speed©r"   r>   )rI   rJ   ç      4@c                 C   sD   t jg d¢g d¢dd�}|jdddtjg| d� ¡ }t ||¡ d S )N)g     `x@rJ   g      >@rM   )ÚFalconrN   ÚParrotrO   rK   rL   r   r   r   )r$   rD   r&   r,   r-   Úmeanr.   rE   )r   r7   rF   rG   r8   r8   r9   Útest_groupby_dropna_series_by�   s    ýrQ   r   )FTc                 C   s:   t  g d¢g d¢dœ¡}|jd| d�}|jj| ks6J ‚d S )N©r   r   r   N©r   rC   rB   N©r   r   r   r   )r$   r%   r&   Zgrouperr   )r   r4   Úgbr8   r8   r9   Útest_grouper_dropna_propagation¥   s    rV   z/dropna,input_index,expected_data,expected_indexé   )rC   rC   r   ÚabcdÚabc)©r   ÚR©r   r   ©rC   r[   )rC   r   ÚnumÚcolr   )rZ   r\   r]   )rC   rC   r   r   c                 C   sª   t jg d¢g d¢dœ|d�}|jd| d�}| t¡}t j||d�}t ||¡ |dg  t¡}t j||d�}t ||¡ |d  t¡}t j|d |dd�}t ||¡ d S )	NrR   rS   rT   r!   r   r   r   rL   )	r$   r%   r&   Z	transformÚlenr.   r/   rD   rE   )r   Zinput_indexZexpected_dataZexpected_indexr4   rU   rG   r7   r8   r8   r9   Ú+test_groupby_dataframe_slice_then_transform­   s    "
ra   )r   r   r   )r   r   r   c           	      C   sž   g d¢g d¢g d¢g d¢g}t j|g d¢d�}ttddœ}|jd	d
g| d� |¡}t jj|tdƒd�}| s€|j	ddt
jgd
d�}t j||d�}t ||¡ d S )Nr   )r   Nr   r   r   r   r   r   r   Úminr   r   r   r   r   r   r   r   r   r!   )r$   r%   r'   Úmaxr&   Úaggr(   r)   r*   r+   r,   r-   r.   r/   )	r   r0   r1   r3   r4   Zagg_dictr5   r6   r7   r8   r8   r9   Ú-test_groupby_dropna_multi_index_dataframe_aggß   s    üre   zdatetime1, datetime2z
2020-01-01z
2020-02-01z-2 daysz-1 dayszdropna, valuesr   )r   rB   é   c           
   	   C   s~   t  g d¢||||||gdœ¡}| r.||g}n||tjg}|jd| d� dti¡}t jd|it j|dd�d�}	t 	||	¡ d S )N)r   rC   rB   rW   é   rf   )ÚvaluesÚdtri   r   rh   )r>   r!   )
r$   r%   r,   r-   r&   rd   r'   r?   r.   r/   )
r   rh   Z	datetime1Z	datetime2Zunique_nulls_fixtureZunique_nulls_fixture2r4   Zindexesr5   r7   r8   r8   r9   Ú&test_groupby_dropna_datetime_like_data	  s"    úþÿ
rj   z#dropna, data, selected_data, levels)é
   rk   é   é   )Úgroupsrh   rh   )r   r   r   r   Zdropna_false_has_nan)Úid)r   r   r   Zdropna_true_has_nan)r   r   r   r	   Zdropna_false_no_nanZdropna_true_no_nanc           
      C   s„   t  |¡}|jd| d�}| dd„ ¡}tt|d |d ƒƒ}t jj|dd gd�}| sf|rf|j|dd�}t j||d�}	t	 
||	¡ d S )	Nrn   r   c                 S   s   t  dtt| ƒƒi¡S )Nrh   )r$   r%   Úranger`   )Úgrpr8   r8   r9   Ú<lambda>X  ó    z@test_groupby_apply_with_dropna_for_multi_index.<locals>.<lambda>rh   r   r   r!   )r$   r%   r&   ÚapplyÚtupleÚzipr(   r)   r+   r.   r/   )
r   ÚdataZselected_dataZlevelsr4   rU   rG   Z	mi_tuplesr6   r7   r8   r8   r9   Ú.test_groupby_apply_with_dropna_for_multi_index0  s    &
rx   c               	   C   sà   dt jddt jgg d¢dœ} t | ¡}|jddd�}|j}t j}dt jdd	g|d
�dt jdg|d
�t jt jddg|d
�i}t| 	¡ | 	¡ ƒD ]\}}t
 ||¡ qŒt  t| ¡ ƒd	 ¡s¼J ‚t| ¡ ƒdd	… ddgksÜJ ‚d S )NÚg1Úg2)r   r   rC   rB   rW   )Úgroupr   r{   Fr   r   rC   )r=   rB   r   rW   )r,   r-   r$   r%   r&   ÚindicesZintpÚarrayrv   rh   r.   Zassert_numpy_array_equalÚisnanr*   Úkeys)rw   r4   r5   rG   r=   r7   Zresult_valuesZexpected_valuesr8   r8   r9   Útest_groupby_nan_includede  s    
ýr€   ) Únumpyr,   ZpytestZpandasr$   Zpandas._testingZ_testingr.   ÚmarkZparametrizer-   r:   r;   rA   rD   rH   rQ   rV   Z
RangeIndexr*   r(   r)   ra   re   Zarm_slowÚ	TimestampZ	TimedeltaZPeriodrj   Úparamrx   r€   r8   r8   r8   r9   Ú<module>   s8  ýýýúþ
ýýýúþ
 
ýýþþ
$ýþþ
þþþ


"ÿ
ÿú
"ÿ
ÿúñþ
ýýýúþ
ýþ 

û
û
ú
úéþ#
