o
    i(                     @   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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 sJ 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expectedinplace_frame1inplace_frame2smaller_framereturn_value r$   a/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/frame/methods/test_dropna.pytest_dropEmptyRows   s$   
z+TestDataFrameMissingData.test_dropEmptyRowsc                 C   sB  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 shJ |j	dgd}t
|d | |d dk sJ |j	dgdd	}	t
|j|j t
|j|j |	d u sJ d S )
Nr   r   r   barr	   Tr   r   )r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   assert_index_equal)r   r   r   r   r   r   
inp_frame1
inp_frame2r"   r#   exp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 sAJ |jd	d}|jttdd }| }|jd	dd}t	
|| t	
|| |d u snJ |jdd
d}|jd d g df }| }|jdd
dd}t	
|| t	
|| |d u sJ |jd	dd}|jtdd }| }|jd	ddd}t	
|| t	
|| |d u sJ |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    d S 1 sUw   Y  d S )N            axis)r   r3      T)r5   r   r   r   )r5   thresh)r5   r7   r   r6   )r5   r   )r5   r   r   r   )r5   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   dfdroppedr   inpr#   msgr$   r$   r%   test_dropnaC   sd   
$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 sMJ |d 
dg t	|d | |d }|j
dgdd}t	||
dg t	|d | |d u sJ d S )Nr3   r2   A)r
   )dtyper
   Tr(   )r   r   r   rH   r   valuesr   r   r   r   drop)r   r   r   rB   df2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 sw   Y  t jtdd |jddgd W d    d S 1 s:w   Y  d S )	Nzinvalid how option: foor8   r   r   z	^\['X'\]$rG   Xr)   )r?   r@   rA   r   KeyError)r   r   rE   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 s:w   Y  tjtd
d |jddd W d    n1 sXw   Y  | }tjtd
d |jdddd W d    d S 1 s|w   Y  d S )Nr3   r2   r6   r1   r   r0         	   zsupplying multiple axesr8   r   r   )r   r5   )r   r3   T)r   r5   r   )r   r   r   r?   r@   	TypeErrorr   r   )r   rB   rD   r$   r$   r%   test_dropna_multiple_axes   s"   
"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  r3   )tzinfor2   Timer   r4   r6   )columnsr   )
r   datetimedateutiltztzutcr   r   r<   r   r   )r   rB   dt1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@rG   abcr   )	pdIntervalIndexfrom_breaksCategoricalIndexr   r=   r   r   r<   )r   iicirB   r   r_   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< d}tjt|d	 tj|jd d d
f< W d    n1 sKw   Y  |j	g ddd}g d|_
g d|_
|j	ddgdd}t|| d S )Nr   )abcde)rG   BCDr2   )r   r3   r2   )r   r   )r3   r3   z.will attempt to set the values inplace insteadr8   r6   rG   rn   ro   r   )r   r   )rG   rG   rn   ro   rG   ro   )r   r   r   r   r   r:   r   assert_produces_warningDeprecationWarningr   rX   r<   )r   rB   rE   r   r_   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 s!w   Y  t dg di}t|| d S )Nri   r3   r2   r6   zUIn a future version of pandas all arguments of DataFrame\.dropna will be keyword-onlyr8   r3   )r   r   rr   FutureWarningr   r<   )r   rB   rE   r_   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 )Nru   ra   r1   r   rq   r3   r6   ac      @g      @r   r2   r   ro   r)   )r   r=   r   NaNr   r   r<   r   rB   r   r_   r$   r$   r%   test_set_single_column_subset   s    z6TestDataFrameMissingData.test_set_single_column_subsetc                 C   sR   t dg di}tjtdd |jddd W d    d S 1 s"w   Y  d S )NrG   ru   z['D']r8   rp   r   )r   r5   )r   r?   r@   rO   r   )r   rB   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 )Nr3   r2   ra   r1   r   rq   g      ?ri   ry   rG   ro   r)   )r   r   rz   r=   r   arrayr   r<   r{   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 )
Nr3   r2   r6   r1   r   )rX   r4   T)check_index_type)r   rb   
RangeIndexr   r   r   r<   )r   r5   rB   r   r_   r$   r$   r%   test_no_nans_in_frame  s    z.TestDataFrameMissingData.test_no_nans_in_framec                 C   s   t ddtjg}d}tjt|d |jddd W d    n1 s#w   Y  tjt|d |jddd W d    n1 sAw   Y  tjt|d |jd d d W d    d S 1 s`w   Y  d S )Nr3   r2   zAYou cannot set both the how and thresh arguments at the same timer8   r   )r   r7   any)r   rb   NAr?   r@   rT   r   )r   rB   rE   r$   r$   r%   "test_how_thresh_param_incompatible  s   "z;TestDataFrameMissingData.test_how_thresh_param_incompatibleN)__name__
__module____qualname__r&   r/   rF   rM   rP   rU   r`   rh   rt   rw   r|   r}   r   r   r   r$   r$   r$   r%   r      s     A	
	r   )rY   rZ   numpyr   r?   pandasrb   r   r   pandas._testing_testingr   r   r$   r$   r$   r%   <module>   s    