
    d'                     d    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          ZdS )    N)	DataFrameSeriesc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zej                            dddg          d             ZdS )TestDataFrameMissingDatac                 >   t          |j                  }t          j                            |          }t          j        |d d<   t          d|i|j                  }t          ||j        d          }|                                }|	                                |	                                }}|                    d          }	t          j        |d         |           |                    dd          }
t          j        |	d         |           t          j        |d         |           |
J |                    ddg	          }	|                    ddgd
          }
t          j        |	d         |           t          j        |d         |           |
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expectedinplace_frame1inplace_frame2smaller_framereturn_values              b/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/frame/methods/test_dropna.pytest_dropEmptyRowsz+TestDataFrameMissingData.test_dropEmptyRows   s   !""iooa  &BQB5#,k.?@@@#[%6UCCC??$$).uzz||//
uU|X666%,,,EE
}U3X>>>
~e4h???###w??%,,wPT,UU
}U3X>>>
~e4h???#####    c                    t          |j                  }t          j                            |          }t          j        |d d<   t          d|i|j                  }d|d<   t          ||j        d          }|                                |                                }}|	                                }t          j        |d         |           |	                    d          }	t          |dd          |j        dd          d          }
t          j        |d         |
           t          j        |d         |
           |	J |	                    dg          }t          j        |d         |           |d         dk                                    sJ |	                    dgd	          }	t          j        |j        |j                   t          j        |j        |j                   |	J 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_frames               r'   test_dropIncompleteRowsz0TestDataFrameMissingData.test_dropIncompleteRows(   s   !""iooa  &BQB5#,k.?@@@e#[%6UCCC!&uzz||J

uU|X666!(((66SWK$5abb$9FFF
}U3S999
z%0#666###eW55
uU|X666e!&&(((((!(((FF
n2K4EFFF
j.0ABBB#####r)   c                    t          t          j                            dd                    }t          j        |j        d ddf<   |                    d          }|j        d d g df         }|                                }|                    dd          }t          j
        ||           t          j
        ||           |J |                    d	          }|j        t          t          dd                             }|                                }|                    d	d          }t          j
        ||           t          j
        ||           |J |                    dd
          }|j        d d g df         }|                                }|                    dd
d          }t          j
        ||           t          j
        ||           |J |                    d	d          }|j        t          dd                   }|                                }|                    d	dd          }t          j
        ||           t          j
        ||           |J |                    dd          }t          j
        ||           |                    dd          }t          j
        ||           |                    d	g d          }|                                }|                    d	g dd          }t          j
        ||           t          j
        ||           |J |                    dd          }t          j
        ||           t          j        |d<   |                    dd          }|j        d d g df         }t          j
        ||           d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )N            axis)r   r8      T)r:   r   r   r   )r:   thresh)r:   r<   r   r;   )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   dfdroppedr"   inpr&   msgs          r'   test_dropnaz$TestDataFrameMissingData.test_dropnaC   s   ryq!,,--A)))##6!!!YYY,'ggiizzq$z77
gx000
c8,,,###)))##6$uQ{{++,ggiizzq$z77
gx000
c8,,,### ))1)--6!!!YYY,'ggiizzqDzAA
gx000
c8,,,###))1)--6%1++&ggiizzqDzAA
gx000
c8,,,###))1)--
gr***))1)--
gr*** ))999)55ggiizzqDzII
gr***
c2&&&### )))..
gr***1)))..6!!!YYY,'
gx000 :]:S111 	 	II1I	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   O77O;>O;c                 8   t          ddt          j        gd          }t          ddg|j        d          }t	          d|j                                        i          }|                                }|d                                          t          j	        |d         |           |d         }|                    d          }t          j	        ||           t          j	        |d         |           |J |d         
                    dg           t          j	        |d         |           |d         }|
                    dgd          }t          j	        ||
                    dg                     t          j	        |d         |           |J d S )Nr8   r7   A)r   )dtyper   Tr,   )r   r   r   rN   r   valuesr   r   r   r   drop)r   r!   r"   rG   df2serr&   s          r'   test_drop_and_dropna_cachingz5TestDataFrameMissingData.test_drop_and_dropna_caching   sy   1a.s3331a&SAAAX_1133455ggii
3
r#w111gzz$z//
sH---
r#w111###Cqc
s3x222#hxxTx22
sHMM1#$6$6777
s3x222#####r)   c                 4   d}t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    ddg           d d d            d S # 1 swxY w Y   d S )	Nzinvalid how option: foor=   r	   r   z	^\['X'\]$rM   Xr-   )rD   rE   rF   r   KeyError)r   r   rJ   s      r'   test_dropna_cornerz+TestDataFrameMissingData.test_dropna_corner   s   ']:S111 	* 	*5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* ]8<888 	2 	2sCj111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s#   AAA'BBBc           	         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
          5  |                    dddg           d d d            n# 1 swxY w Y   t          j        t
          d
          5  |                    dd           d d d            n# 1 swxY w Y   |                                }t          j        t
          d
          5  |                    ddd           d d d            d S # 1 swxY w Y   d S )Nr8   r7   r;   r6   r   r5         	   zsupplying multiple axesr=   r   r   )r   r:   )r   r8   T)r   r:   r   )r   r   r   rD   rE   	TypeErrorr   r   )r   rG   rI   s      r'   test_dropna_multiple_axesz2TestDataFrameMissingData.test_dropna_multiple_axes   s   BFAq!BFAq!0BFAq!	
 
 ]9,EFFF 	. 	.II%q!fI---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.]9,EFFF 	. 	.II%fI---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ggii]9,EFFF 	= 	=JJ5vtJ<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s6   B++B/2B/C55C9<C9/EEEc                 :   t                      }t          j        dddt          j                                                  }t          j        dddt          j                                                  }|g|d<   |                    d          }t          d|gi          }t          j        ||           t          d|d t          j	        |gi          }|                    d          }t          ||gdgddg	          }t          j        ||           d S )
Ni  r8   )tzinfor7   Timer   r9   r;   )columnsr   )
r   datetimedateutiltztzutcr   r   rA   r   r   )r   rG   dt1dt2resultr"   s         r'   test_dropna_tz_aware_datetimez6TestDataFrameMissingData.test_dropna_tz_aware_datetime   s   [[a8;3D3D3F3FGGGa8;3D3D3F3FGGGU6
""fse_--
fh/// dBFC 89::""c3Z&!QHHH
fh/////r)   c                    t           j                            g d          }t          j        |          }t	          dt          d          i|          }|}|                                }t          j        ||           d S )N)r   g=
ףp=@gQ	@gQ@rM   abcr
   )	pdIntervalIndexfrom_breaksCategoricalIndexr   rB   r   r   rA   )r   iicirG   r"   rh   s         r'   &test_dropna_categorical_interval_indexz?TestDataFrameMissingData.test_dropna_categorical_interval_index   sw    ))*?*?*?@@ $$T%[[)444
fh/////r)   c                 B   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<   |                    g d	d
          }g d|_        g d|_        |                    ddgd
          }t          j	        ||           d S )Nr   )abcde)rM   BCDr7   )r   r8   r7   )r   r   )r8   r8   r;   rM   ry   rz   r   )r   r   )rM   rM   ry   rz   rM   rz   )
r   r   r   r   r   r?   r   ra   r   rA   r   rG   r"   rh   s       r'   "test_dropna_with_duplicate_columnsz;TestDataFrameMissingData.test_dropna_with_duplicate_columns   s   Y__Q''Y__Q''Y__Q''...	 
 
 !#999199OOO9??///)))
3*%88
fh/////r)   c                 
   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          }t          j        ||           d S )Nr8   r7   r;   rk   r6   r   r|   r8   r;   ac      @g      @r   r7   r
   rz   r-   )r   rB   r   NaNr   r   rA   r}   s       r'   test_set_single_column_subsetz6TestDataFrameMissingData.test_set_single_column_subset   s    YYYT%[[261~NNOOa&tDzzc
;;Aq6
 
 
 #&&
fh/////r)   c                     t          dg di          }t          j        t          d          5  |                    dd           d d d            d S # 1 swxY w Y   d S )NrM   r   z['D']r=   r{   r   )r   r:   )r   rD   rE   rV   r   )r   rG   s     r'   &test_single_column_not_present_in_axisz?TestDataFrameMissingData.test_single_column_not_present_in_axis   s    YYY'(( ]87333 	* 	*IISqI)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AAAc                 $   t          ddt          j        gt          d          dt          j        dgd          }t          dgdgd	gd          }|                    t          j        d
dg                    }t          j        ||           d S )Nr8   r7   rk   r6   r   r|   g      ?rt   r   rM   rz   r-   )r   r   r   rB   r   arrayr   rA   r}   s       r'   test_subset_is_nparrayz/TestDataFrameMissingData.test_subset_is_nparray   s    aBF^$u++QPQNSSTTC5uC5AABB"(C:"6"677
fh/////r)   c                     t          ddgddggt          j        dd                    }|                                }|                    |          }t          j        ||d	           d S )
Nr8   r7   r;   r6   r   )ra   r9   T)check_index_type)r   rl   
RangeIndexr   r   r   rA   )r   r:   rG   r"   rh   s        r'   test_no_nans_in_framez.TestDataFrameMissingData.test_no_nans_in_frame   sk    AA'q!1D1DEEE7799%%
fhFFFFFFr)   c                     t          ddt          j        g          }d}t          j        t
          |          5  |                    dd           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                    dd           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                    d d            d d d            d S # 1 swxY w Y   d S )Nr8   r7   zAYou cannot set both the how and thresh arguments at the same timer=   r   )r   r<   any)r   rl   NArD   rE   r\   r   )r   rG   rJ   s      r'   "test_how_thresh_param_incompatiblez;TestDataFrameMissingData.test_how_thresh_param_incompatible  s   1be}%%Q]9C000 	+ 	+II%I***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ ]9C000 	+ 	+II%I***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ ]9C000 	- 	-II$tI,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s5   AA"%A"B((B,/B,C33C7:C7valr8   g      ?c                    t          ddd|gig d          }|                    d          }t          ddd|gi          }t          j        ||           |                    dd           t          j        ||           d S )	Nrt   r8   r7   )r;   r7   r8   r
   T)ignore_index)r   r   )r   r   r   rA   )r   r   rG   rh   r"   s        r'   test_dropna_ignore_indexz1TestDataFrameMissingData.test_dropna_ignore_index  s     aC[);;;--cAq#;/00
fh///
		tT	222
b(+++++r)   N)__name__
__module____qualname__r(   r3   rK   rS   rW   r]   ri   rr   r~   r   r   r   r   r   rD   markparametrizer    r)   r'   r   r      s       $ $ $0$ $ $6? ? ?B$ $ $02 2 2= = =(0 0 0 0 0 00 0 0*0 0 0* * *0 0 0G G G- - - [UQH--, , .-, , ,r)   r   )rb   rc   numpyr   rD   pandasrl   r   r   pandas._testing_testingr   r   r   r)   r'   <module>r      s                           N, N, N, N, N, N, N, N, N, N,r)   