a
    oÝEb°&  ã                   @   sV   d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dl	m
Z G dd„ dƒZdS )é    N)Ú	DataFrameÚSeriesc                   @   s|   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestDataFrameMissingDatac                 C   s
  t |jƒ}tj |¡}tj|d d…< td|i|jd�}t||jdd�}| ¡ }| 	¡ | 	¡  }}|jdd�}	t
 |d |¡ |jddd�}
t
 |	d |¡ t
 |d |¡ |
d u s¶J ‚|jddgd	�}	|jddgdd
�}
t
 |	d |¡ t
 |d |¡ |
d u �sJ ‚d S )Né   Úfoo©Úindex©r   ÚnameÚall©ÚhowT)r   Úinplace)r   Úsubset)r   r   r   )Úlenr   ÚnpÚrandomÚrandnÚnanr   r   ÚdropnaÚcopyÚtmÚassert_series_equal)ÚselfÚfloat_frameÚNÚmatÚframeÚoriginalÚexpectedZinplace_frame1Zinplace_frame2Úsmaller_frameÚreturn_value© r"   úf/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/frame/methods/test_dropna.pyÚtest_dropEmptyRows   s$    
z+TestDataFrameMissingData.test_dropEmptyRowsc                 C   sF  t |jƒ}tj |¡}tj|d d…< td|i|jd�}d|d< t||jdd�}| ¡ | ¡  }}| 	¡ }t
 |d |¡ |j	dd�}	t|dd … |jdd … dd�}
t
 |d |
¡ t
 |d |
¡ |	d u sÐJ ‚|j	dgd�}t
 |d |¡ |d dk ¡ �sJ ‚|j	dgdd	�}	t
 |j|j¡ t
 |j|j¡ |	d u �sBJ ‚d S )
Nr   r   r   Úbarr	   T©r   ©r   )r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   Zassert_index_equal)r   r   r   r   r   r   Z
inp_frame1Z
inp_frame2r    r!   ÚexpZsamesize_framer"   r"   r#   Útest_dropIncompleteRows(   s*    
 z0TestDataFrameMissingData.test_dropIncompleteRowsc                 C   sº  t tj dd¡ƒ}tj|jd d…df< |jdd�}|jd d …g d¢f }| ¡ }|jddd�}t	 
||¡ t	 
||¡ |d u s‚J ‚|jd	d�}|jttddƒƒ }| ¡ }|jd	dd�}t	 
||¡ t	 
||¡ |d u sÜJ ‚|jdd
d�}|jd d …g d¢f }| ¡ }|jdd
dd�}t	 
||¡ t	 
||¡ |d u �s>J ‚|jd	dd�}|jtddƒ }| ¡ }|jd	ddd�}t	 
||¡ t	 
||¡ |d u �sšJ ‚|jddd�}t	 
||¡ |jddd�}t	 
||¡ |jd	g d¢d�}| ¡ }|jd	g d¢dd�}t	 
||¡ t	 
||¡ |d u �s"J ‚|jddd�}t	 
||¡ tj|d< |jddd�}|jd d …g d¢f }t	 
||¡ d}tjt|d�� |jdd� W d   ƒ n1 �s¬0    Y  d S )Né   é   é   é   ©Úaxis)r   r-   é   T)r/   r   r   r   )r/   Úthresh)r/   r1   r   r0   )r/   r   )r/   r   r   r   )r/   r   z)No axis named 3 for object type DataFrame©Úmatch)r   r   r   r   r   Úilocr   Úlocr   r   Úassert_frame_equalÚlistÚrangeÚpytestÚraisesÚ
ValueError)r   ÚdfZdroppedr   Úinpr!   Úmsgr"   r"   r#   Útest_dropnaC   sb    
z$TestDataFrameMissingData.test_dropnac                 C   s  t ddtjgdd�}t ddg|jdd�}td|j ¡ iƒ}| ¡ }|d  ¡  t 	|d |¡ |d }|jdd�}t 	||¡ t 	|d |¡ |d u sšJ ‚|d  
dg¡ t 	|d |¡ |d }|j
dgdd�}t 	|| 
dg¡¡ t 	|d |¡ |d u �sJ ‚d S )Nr-   r,   ÚA)r
   )Údtyper
   Tr&   )r   r   r   rA   r   Úvaluesr   r   r   r   Zdrop)r   r   r   r<   Zdf2Zserr!   r"   r"   r#   Útest_drop_and_dropna_caching„   s$    z5TestDataFrameMissingData.test_drop_and_dropna_cachingc                 C   s¾   d}t jt|d�� |jdd� W d   ƒ n1 s40    Y  d}t jt|d�� |jd d� W d   ƒ n1 sr0    Y  t jtdd��  |jddgd	� W d   ƒ n1 s°0    Y  d S )
Nzinvalid how option: foor2   r   r   zmust specify how or threshz	^\['X'\]$r@   ÚXr'   )r9   r:   r;   r   Ú	TypeErrorÚKeyError)r   r   r>   r"   r"   r#   Útest_dropna_cornerœ   s    **z+TestDataFrameMissingData.test_dropna_cornerc                 C   s  t dtjddgdtjddgtjtjtjtjgdtjdd	ggƒ}tjtd
d��" |jdddgd� W d   ƒ n1 st0    Y  tjtd
d�� |jddd� W d   ƒ n1 s°0    Y  | ¡ }tjtd
d��  |jdddd� W d   ƒ n1 sö0    Y  d S )Nr-   r,   r0   r+   r   r*   é   é   é	   zsupplying multiple axesr2   r   r   )r   r/   )r   r-   T)r   r/   r   )r   r   r   r9   r:   rE   r   r   )r   r<   r=   r"   r"   r#   Útest_dropna_multiple_axes¨   s    üÿ
0,z2TestDataFrameMissingData.test_dropna_multiple_axesc                 C   s°   t ƒ }tjdddtj ¡ d�}tjdddtj ¡ d�}|g|d< |jdd�}t d|giƒ}t ||¡ t d|d tj	|giƒ}|jdd�}t ||gdgddgd	�}t ||¡ d S )
Niß  r-   )Útzinfor,   ZTimer   r.   r0   )Úcolumnsr   )
r   ÚdatetimeÚdateutilÚtzZtzutcr   r   r6   r   r   )r   r<   Zdt1Zdt2Úresultr   r"   r"   r#   Útest_dropna_tz_aware_datetime¼   s    
z6TestDataFrameMissingData.test_dropna_tz_aware_datetimec                 C   sJ   t j g d¢¡}t  |¡}tdtdƒi|d�}|}| ¡ }t ||¡ d S )N)r   g=
×£p=@g…ëQ¸	@g…ëQ¸@r@   Úabcr   )	ÚpdZIntervalIndexZfrom_breaksZCategoricalIndexr   r7   r   r   r6   )r   ÚiiÚcir<   r   rQ   r"   r"   r#   Ú&test_dropna_categorical_interval_indexÌ   s    
z?TestDataFrameMissingData.test_dropna_categorical_interval_indexc                 C   s¶   t tj d¡tj d¡tj d¡g d¢dœƒ}tj|jdg d¢f< tj|jd< tj|jd< tj|jd d …df< |jg d	¢d
d�}g d¢|_g d¢|_|jddgd
d�}t 	||¡ d S )Nr   )ÚaÚbÚcÚdÚe)r@   ÚBÚCÚDr,   )r   r-   r,   )r   r   )r-   r-   r0   ©r@   r]   r^   r   )r   r   )r@   r@   r]   r^   r@   r^   )
r   r   r   r   r   r4   r   rM   r   r6   ©r   r<   r   rQ   r"   r"   r#   Ú"test_dropna_with_duplicate_columnsÖ   s     


üÿ

z;TestDataFrameMissingData.test_dropna_with_duplicate_columnsc                 C   sl   t dg d¢iƒ}d}tjt|d�� | d¡}W d   ƒ n1 sB0    Y  t dg d¢iƒ}t ||¡ d S )NrX   ©r-   r,   r0   zUIn a future version of pandas all arguments of DataFrame\.dropna will be keyword-onlyr2   r-   )r   r   Zassert_produces_warningÚFutureWarningr   r6   )r   r<   r>   rQ   r   r"   r"   r#   Ú test_dropna_pos_args_deprecationë   s    ÿ(z9TestDataFrameMissingData.test_dropna_pos_args_deprecationc                 C   s`   t g d¢tdƒdtjdgdœƒ}t ddgtdƒd	d
gdœddgd�}|jdd�}t ||¡ d S )Nrc   rS   r+   r   r`   r-   r0   Úacç      @g      @r   r,   r   r^   r'   )r   r7   r   ÚNaNr   r   r6   ra   r"   r"   r#   Útest_set_single_column_subset÷   s     ÿz6TestDataFrameMissingData.test_set_single_column_subsetc                 C   sP   t dg d¢iƒ}tjtdd�� |jddd� W d   ƒ n1 sB0    Y  d S )Nr@   rc   z['D']r2   r_   r   )r   r/   )r   r9   r:   rF   r   )r   r<   r"   r"   r#   Ú&test_single_column_not_present_in_axis   s    z?TestDataFrameMissingData.test_single_column_not_present_in_axisc                 C   s`   t ddtjgtdƒdtjdgdœƒ}t dgdgd	gdœƒ}|jt d
dg¡d�}t ||¡ d S )Nr-   r,   rS   r+   r   r`   g      ð?rX   rg   r@   r^   r'   )r   r   rh   r7   r   Úarrayr   r6   ra   r"   r"   r#   Útest_subset_is_nparray  s    $z/TestDataFrameMissingData.test_subset_is_nparrayc                 C   sH   t ddgddggt dd¡d�}| ¡ }|j|d�}tj||dd	� d S )
Nr-   r,   r0   r+   r   )rM   r.   T)Zcheck_index_type)r   rT   Z
RangeIndexr   r   r   r6   )r   r/   r<   r   rQ   r"   r"   r#   Útest_no_nans_in_frame  s     z.TestDataFrameMissingData.test_no_nans_in_frameN)Ú__name__Ú
__module__Ú__qualname__r$   r)   r?   rC   rG   rK   rR   rW   rb   re   ri   rj   rl   rm   r"   r"   r"   r#   r      s   A
	r   )rN   rO   Únumpyr   r9   ZpandasrT   r   r   Zpandas._testingZ_testingr   r   r"   r"   r"   r#   Ú<module>   s   