
    OwgK(                     \    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y)    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$                  j'                  dddg      d        Zy)TestDataFrameMissingDatac                    t        |j                        }t        j                  j	                  d      j                  |      }t        j                  |d d t        d|i|j                        }t        ||j                  d      }|j                         }|j                         |j                         }}|j                  d      }	t        j                  |d   |       |j                  dd	      }
t        j                  |	d   |       t        j                  |d   |       |
J |j                  ddg
      }	|j                  ddgd      }
t        j                  |	d   |       t        j                  |d   |       |
J y )N      fooindexr   nameallhowT)r   inplace)r   subset)r   r   r   )lenr   nprandomdefault_rngstandard_normalnanr   r   dropnacopytmassert_series_equal)selffloat_frameNmatframeoriginalexpectedinplace_frame1inplace_frame2smaller_framereturn_values              ]/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_dropna.pytest_dropEmptyRowsz+TestDataFrameMissingData.test_dropEmptyRows   s^   !!"ii##A&66q9&&BQ5#,k.?.?@#[%6%6UC??$).uzz|/
uU|X6%,,,E
}U3X>
~e4h?###w?%,,wPT,U
}U3X>
~e4h?###    c                    t        |j                        }t        j                  j	                  d      j                  |      }t        j                  |d d t        d|i|j                        }d|d<   t        ||j                  d      }|j                         |j                         }}|j                         }t        j                  |d   |       |j                  d      }	t        |dd  |j                  dd  d      }
t        j                  |d   |
       t        j                  |d   |
       |	J |j                  dg	      }t        j                  |d   |       |d   dk(  j                         sJ |j                  dgd
      }	t        j                  |j                  |j                         t        j                  |j                  |j                         |	J y )Nr   r	   r
   r   barr   Tr   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   !!"ii##A&66q9&&BQ5#,k.?.?@e#[%6%6UC!&uzz|J

uU|X6!(((6SWK$5$5ab$9F
}U3S9
z%0#6###eW5
uU|X6e!&&(((!(((F
n22K4E4EF
j..0A0AB###r+   c                    t        t        j                  j                  d      j	                  d            }t        j
                  |j                  d ddf<   |j                  d      }|j                  d d g df   }|j                         }|j                  dd      }t        j                  ||       t        j                  ||       |J |j                  d      }|j                  t        t        dd	               }|j                         }|j                  dd      }t        j                  ||       t        j                  ||       |J |j                  dd
      }|j                  d d g df   }|j                         }|j                  dd
d      }t        j                  ||       t        j                  ||       |J |j                  dd      }|j                  t        dd	         }|j                         }|j                  ddd      }t        j                  ||       t        j                  ||       |J |j                  dd      }t        j                  ||       |j                  dd      }t        j                  ||       |j                  dg d      }|j                         }|j                  dg dd      }t        j                  ||       t        j                  ||       |J |j                  dd      }t        j                  ||       t        j
                  |d<   |j                  dd      }|j                  d d g df   }t        j                  ||       d}t        j                  t         |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr   )         axis)r   r9      T)r;   r   r   r7   r	   )r;   thresh)r;   r=   r   r8   r<   )r;   r   )r;   r   r   r   )r;   r   z)No axis named 3 for object type DataFramematch)r   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>   ryy,,Q/??GHA)))#66!Y,'ggizzq$z7
gx0
c8,###)))#66$uQ{+,ggizzq$z7
gx0
c8,### ))1)-66!Y,'ggizzqDzA
gx0
c8,###))1)-66%1+&ggizzqDzA
gx0
c8,###))1)-
gr*))1)-
gr* ))9)5ggizzqDzI
gr*
c2&### ))).
gr*1))).66!Y,'
gx0 :]]:S1 	II1I	 	 	s   *OOc                    t        ddt        j                  gd      }t        ddg|j                  d      }t	        d|j
                  j                         i      }|j                         }|d   j                          t        j                  |d   |       |d   }|j                  d      }t        j                  ||       t        j                  |d   |       |J |d   j                  dg       t        j                  |d   |       |d   }|j                  dgd      }t        j                  ||j                  dg             t        j                  |d   |       |J y )Nr9   r   A)r   )dtyper   Tr.   )r   r   r   rO   r   valuesr   r   r   r   drop)r   r#   r$   rH   df2serr(   s          r)   test_drop_and_dropna_cachingz5TestDataFrameMissingData.test_drop_and_dropna_caching   s>   1a.s31a&SAX__11345ggi
3
r#w1gzz$z/
sH-
r#w1###Cqc
s3x2#hxxTx2
sHMM1#$67
s3x2###r+   c                    d}t        j                  t        |      5  |j                  d       d d d        t        j                  t        d      5  |j                  ddg       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)	Nzinvalid how option: foor>   r
   r   z	^\['X'\]$rN   Xr/   )rE   rF   rG   r   KeyError)r   r   rK   s      r)   test_dropna_cornerz+TestDataFrameMissingData.test_dropna_corner   sz    ']]:S1 	*5)	* ]]8<8 	2sCj1	2 	2	* 	*	2 	2s   A2A>2A;>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  |j                  dddg       d d d        t        j                  t
        d
      5  |j                  dd       d d d        |j                         }t        j                  t
        d
      5  |j                  ddd       d d d        y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)Nr9   r   r<   r8   r	   r7         	   zsupplying multiple axesr>   r   r   )r   r;   )r   r9   T)r   r;   r   )r   r   r   rE   rF   	TypeErrorr   r   )r   rH   rJ   s      r)   test_dropna_multiple_axesz2TestDataFrameMissingData.test_dropna_multiple_axes   s   BFFAq!BFFAq!0BFFAq!	
 ]]9,EF 	.II%q!fI-	.]]9,EF 	.II%fI-	. ggi]]9,EF 	=JJ5vtJ<	= 	=	. 	.	. 	.	= 	=s$   D;EE;EEEc                    t               }t        j                  dddt        j                  j	                               }t        j                  dddt        j                  j	                               }|g|d<   |j                  d      }t        d|gi      }t        j                  ||       t        d|d t        j                  |gi      }|j                  d      }t        ||gdgddg	      }t        j                  ||       y )
Ni  r9   )tzinfor   Timer   r:   r<   )columnsr   )
r   datetimedateutiltztzutcr   r   rB   r   r   )r   rH   dt1dt2resultr$   s         r)   test_dropna_tz_aware_datetimez6TestDataFrameMissingData.test_dropna_tz_aware_datetime   s    [a8;;3D3D3FGa8;;3D3D3FGU6
"fse_-
fh/ dBFFC 89:"c3Z&!QH
fh/r+   c                     t         j                  j                  g d      }t        j                  |      }t	        dt        d      i|      }|}|j                         }t        j                  ||       y )N)r   g=
ףp=@gQ	@gQ@rN   abcr   )	pdIntervalIndexfrom_breaksCategoricalIndexr   rC   r   r   rB   )r   iicirH   r$   ri   s         r)   &test_dropna_categorical_interval_indexz?TestDataFrameMissingData.test_dropna_categorical_interval_index   s^    ))*?@  $T%[)4
fh/r+   c                    t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      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
      }g d|_        g d|_        |j                  ddgd
      }t        j                  ||       y )Nr   r	   )abcde)rN   BCD)r   r9   r   )r   r   )r9   r9   r<   rN   rz   r{   r   )r   r   )rN   rN   rz   r{   rN   r{   )r   r   r   r   r   r   r@   r   rb   r   rB   r   rH   r$   ri   s       r)   "test_dropna_with_duplicate_columnsz;TestDataFrameMissingData.test_dropna_with_duplicate_columns   s   YY**1-==a@YY**1-==a@YY**1-==a@.	
 !#9199O9?/)
3*%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      }|j	                  d      }t        j                  ||       y )Nr9   r   r<   rl   r8   r	   r}   r9   r<   ac      @g      @r   r   r   r{   r/   )r   rC   r   r   r   r   rB   r~   s       r)   test_set_single_column_subsetz6TestDataFrameMissingData.test_set_single_column_subset   si    YT%[2661~NOa&tDzc
;Aq6
 #&
fh/r+   c                     t        dg di      }t        j                  t        d      5  |j	                  dd       d d d        y # 1 sw Y   y xY w)NrN   r   z['D']r>   r|   r   )r   r;   )r   rE   rF   rW   r   )r   rH   s     r)   &test_single_column_not_present_in_axisz?TestDataFrameMissingData.test_single_column_not_present_in_axis   sF    Y'( ]]873 	*IISqI)	* 	* 	*s   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      }|j	                  t        j
                  d
dg            }t        j                  ||       y )Nr9   r   rl   r8   r	   r}   g      ?ru   r   rN   r{   r/   )r   r   r   rC   r   arrayr   rB   r~   s       r)   test_subset_is_nparrayz/TestDataFrameMissingData.test_subset_is_nparray   sp    aBFF^$u+QPQNSTC5uC5AB"((C:"67
fh/r+   c                     t        ddgddggt        j                  dd            }|j                         }|j	                  |      }t        j                  ||d	       y )
Nr9   r   r<   r8   r   )rb   r:   T)check_index_type)r   rm   
RangeIndexr   r   r   rB   )r   r;   rH   r$   ri   s        r)   test_no_nans_in_framez.TestDataFrameMissingData.test_no_nans_in_frame   sS    AA'q!1DE779%
fhFr+   c                    t        ddt        j                  g      }d}t        j                  t
        |      5  |j                  dd       d d d        t        j                  t
        |      5  |j                  dd       d d d        t        j                  t
        |      5  |j                  d d        d d d        y # 1 sw Y   xxY w# 1 sw Y   MxY w# 1 sw Y   y xY w)Nr9   r   zAYou cannot set both the how and thresh arguments at the same timer>   r   )r   r=   any)r   rm   NArE   rF   r]   r   )r   rH   rK   s      r)   "test_how_thresh_param_incompatiblez;TestDataFrameMissingData.test_how_thresh_param_incompatible  s    1bee}%Q]]9C0 	+II%I*	+ ]]9C0 	+II%I*	+ ]]9C0 	-II$tI,	- 	-	+ 	+	+ 	+	- 	-s#   C1C(CCCC&valr9   g      ?c                     t        ddd|gig d      }|j                  d      }t        ddd|gi      }t        j                  ||       |j                  dd       t        j                  ||       y )	Nru   r9   r   )r<   r   r9   r   T)ignore_index)r   r   )r   r   r   rB   )r   r   rH   ri   r$   s        r)   test_dropna_ignore_indexz1TestDataFrameMissingData.test_dropna_ignore_index  sp     aC[);-cAq#;/0
fh/
		tT	2
b(+r+   N)__name__
__module____qualname__r*   r5   rL   rT   rX   r^   rj   rs   r   r   r   r   r   r   rE   markparametrizer    r+   r)   r   r      ss    $0$6?B$02=(0 00*0*0G- [[UQH-, .,r+   r   )rc   rd   numpyr   rE   pandasrm   r   r   pandas._testing_testingr   r   r   r+   r)   <module>r      s*         N, N,r+   