
    OwgO                        d dl Z d dlZd dlZd dlmZ d dlZd dlmZm	Z	m
Z
mZmZmZ d dlmZ ej"                  j%                  dddg      d        Zej"                  j%                  dd	d
g      d        Zd Z G d d      Zy)    N)PerformanceWarning)	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestampzmsg,labels,level)zlabels \[4\] not found in level   a)zlabels \[7\] not found in level   bc                    t        j                  g dg dgddg      }t        g d|      }t        g d|      }t	        j
                  t        |       5  |j                  ||	       d d d        t	        j
                  t        |       5  |j                  ||	       d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)
N         r
         r   r   names
         indexmatchlevel)r   from_arraysr   r   pytestraisesKeyErrordrop)msglabelsr!   misdfs         [/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_drop.py0test_drop_raise_exception_if_labels_not_in_levelr-      s     
		I 6sCj	IB|2&A	<r	*B	xs	+ $	vU#$	xs	+ %
e$% %$ $% %s   B-B9-B69Czlabels,level)r
   r   )r   r   c                 &   t        j                  g dg dgddg      }t        g d|      }t        g d|      }|j	                  | |d	      }t        j                  ||       |j	                  | |d	      }t        j                  ||       y )
Nr   r   r   r   r   r   r   ignore)r!   errors)r   r"   r   r   r&   tmassert_series_equalassert_frame_equal)r(   r!   r)   r*   r+   
expected_sexpected_dfs          r,   test_drop_errors_ignorer6   '   s     
		I 6sCj	IB|2&A	<r	*BeH=J1j)''&h'?K"k*    c            	      l   t        t        j                  j                  d      j	                  d      g dt        j                  ddd            } | j                  g d	   j                         } t        j                  t        d
      5  | j                  ddg       d d d        y # 1 sw Y   y xY w)Nr   )r   r   r   r   c2012hr   )freqperiodscolumnsr   )r   r   r   r   not found in axisr   r   r   )r   nprandomdefault_rngstandard_normalpd
date_rangeiloccopyr#   r$   r%   r&   )r+   s    r,   9test_drop_with_non_unique_datetime_index_and_invalid_keysrJ   5   s     

		a 008mmFa8
B 
		#	#	%B	x':	; 
c
  s   B**B3c                   V   e Zd Zd Zd Zd Zd Zg dg dgZej                  j                  d eeddg       eedd	g       eedd	g      j                  d
dg       eeddg      j                  d
dg      g      d        Zej                  j                  dg dg dg      ej                  j                  dg dgdgg      d               Zej                  j                  dg dg dg      ej                  j                  dddgddgg      d               Zej                  j                  dg i  ej"                  g        eg d       eg        eg       g      d        Zd Zd Zd Zd Zd Zd Zd  Zej                  j                  d!g d"      ej                  j                  d#d$d%g      d&               Zd' Zej                  j                  d(d)d)gg      d*        Zd+ Z d, Z!d- Z"d. Z#ej                  j                  d/dd	gd
fdgd0fg      d1        Z$d2 Z%y0)3TestDataFrameDropc                    t        g dg dg dgg dg d      }d\  |j                  _        |j                  _        |j	                  d      }|j	                  d	d
      }|j                         |j                         }}|j	                  dd      }|J |j	                  d	d
d      }|J ||||fD ]8  }|j                  j                  dk(  sJ |j                  j                  dk(  r8J  t        |j                        g dk(  sJ d}t        j                  t        |      5  |j	                  dg       d d d        t        j                  t        |      5  |j	                  dgd
       d d d        |j	                  dgd      }	t        g dd      }
t        j                  |	j                  |
       |j	                  ddgd      }	t        ddgd      }
t        j                  |	j                  |
       |j	                  dgd
d      }	t        g dd      }
t        j                  |	j                  |
       |j	                  ddgd
d      }	t        d	dgd      }
t        j                  |	j                  |
       |j	                  g d      }	t        g dd      }
t        j                  |	j                  |
       y # 1 sw Y   xY w# 1 sw Y   jxY w)Nr   r   r
   r   r   r   r   r9   defr   r@   )firstsecondr   rR   r   axisT)inplacerX   rY   rU   rV   z\['g'\] not found in axisr   gr/   r0   namer   r:   rX   r0   rQ   rS   )r   r   r^   r@   r&   rI   listr#   r$   r%   r   r1   assert_index_equal)selfr+   df_dropped_bdf_dropped_edf_inplace_bdf_inplace_ereturn_valueobjr'   droppedexpecteds              r,   test_drop_namesz!TestDataFrameDrop.test_drop_namesF   s   	9-!#

 *;&rzzwws|wwsw+%'WWY	l#((d(;####((1d(C### ,lK 	0C99>>W,,,;;##x///	0 BJJ?222*]]83/ 	GGSEN	]]83/ 	#GGSEG"	# ''3%'1w7
gmmX6''3*X'6#s'2
gmmX6''3%a'9x8
goox8''3*1X'>#s(3
goox8 ''"X'.w7
gmmX63	 		# 	#s   ,K"KKK)c                 	   t        g dg dd      }t        j                  |j                  dd      |dg          t        j                  |j                  ddgd      |g           t        j                  |j                  g d	d
      |j                  dgd d f          t        j                  |j                  d
dgd      |j                  ddgd d f          t        j                  t        d      5  |j                  d       d d d        t        j                  t        d      5  |j                  dd       d d d        t        j                  t        d      5  |j                  ddg       d d d        t        j                  t        d      5  |j                  ddgd       d d d        t        j                  t        d      5  |j                  g dd       d d d        t        j                  |j                  dd      |       t        j                  |j                  d
dgd      |j                  g dd d f          t        j                  |j                  ddd      |       t        j                  |j                  ddgdd      |dg          t        t        t        t        d      t        dd      t        d                  g d      }t        j                  |j                  dd      |dg          t        j                  |j                  dd      |d          t        j                  |j                  g       |       |j                  t        g d            }t        d      |_        t        j                  |j                  d d!      |j                  d"gd d f          t        j                  |j                  d d"gd
      |j                  g d d f          t        t        j                  j!                  d      j#                  d#      t        d            }||j$                  d
kD      }|j                  ||j$                  d
kD     j&                  d$%      }|J t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   nxY w# 1 sw Y   DxY w# 1 sw Y   xY w# 1 sw Y   xY w)&Nr   r   r   r
   )r   r   r   r   )ABrn   r   rW   ro   r@   )r   r   r   r   r   r   r   z\[5\] not found in axisr   r   z\['C'\] not found in axisCz#\['C', 'D', 'F'\] not found in axis)rp   DFr/   r\   r   r_   abc)r   r   r   r@   r   r   )XYrv   rv   rowsrw   )r   r   T)r(   rY   )r   r1   r3   r&   locr#   r$   r%   r`   ziprange	set_indexr   r@   rB   rC   rD   rE   r   r   )rb   simplenu_dfr+   rj   rg   s         r,   	test_dropzTestDataFrameDrop.test_dropu   s   LAB
fkk#Ak6uF
fkk3*9kEvbzR
fkk)!k<fjj!a>PQ
fkk1a&wk?QPQFTUIAVW]]8+EF 	KKN	]]8+GH 	%KK!K$	%]]8+EF 	 KKA	 ]]8+GH 	,KKc
K+	, ]]8+QR 	1KKaK0	1 	fkk!Hk=vF
KKAxK0&**Y\2J	
 	fkk#AhkGP
KKc
8K<fcUm	

 U1XuR|T%[9:O
 	ejj1j5ucU|D
ejj9j=uSzJ
ejjne4o 67U
ejj6j:EIIseQh<OP
ejj#s!j<eiiA>NO II!!!$44W=tE{
 qk?wwbl&8&8$wG###
b(+Y	 		% 	%	  	 	, 	,	1 	1s<   <R$1R1(R>SS$R.1R;>SSS"c                 :   t        j                  g dddg      }t        g dg|      }|j                  j	                         sJ t        g dg dg d	g
      }|j                  dddgd      }|j                         }|j                  j	                         rJ |j                  dd      j                  t              }t        j                  t              5  |j                  dd      }d d d        t        j                  |       y # 1 sw Y    xY w)N))r    )b1c1)b2c2r   r:   r   )r   r   r
   ru   )r   r   r:   rQ   )r   r   r   r   )r   r   r   r
   )r@   datar   rQ   )r   r@   valuesr   rW   )r   from_tuplesr   r@   _is_lexsortedpivot_tablereset_indexr&   astypefloatr1   assert_produces_warningr   r3   )rb   lexsorted_milexsorted_dfnot_lexsorted_dfrj   results         r,   "test_drop_multiindex_not_lexsortedz4TestDataFrameDrop.test_drop_multiindex_not_lexsorted   s    "--3C:
 !)lC##11333 %(0BDV/W
 ,77Sz# 8 
 ,779#++99;;;$$Sq$188?''(:; 	8%**3Q*7F	8 	fh/	8 	8s   DDc                 L   t        g dg dg dgg dg d      }|j                  d      }|j                  d      }t        j                  ||       |j                  d	d
      }|j                  d	      }t        j                  ||       |j                  dd
      }|j                  d      }t        j                  ||       |j                  dgd      }|j                  dg      }t        j                  ||       |j                  dgd      j                  d	gd
      }|j                  dgd	g      }t        j                  ||       d}t	        j
                  t        |      5  |j                  dd       d d d        t	        j
                  t        |      5  |j                  dd       d d d        d}t	        j
                  t        |      5  |j                  d
       d d d        y # 1 sw Y   yxY w# 1 sw Y   NxY w# 1 sw Y   y xY w)Nr   rN   rO   r9   rP   rT   r   r   rQ   r   rW   ru   rR   )r(   rX   r   z2Cannot specify both 'labels' and 'index'/'columns'r   r   )r(   r   )r(   r@   z>Need to specify at least one of 'labels', 'index' or 'columns')r   r&   r1   r3   r#   r$   
ValueError)rb   r+   res1res2r'   s        r,   test_drop_api_equivalencez+TestDataFrameDrop.test_drop_api_equivalence   s   	9-!#
 wws|wwSw!
dD)wwsw#wwsw#
dD)wwcw*wwsw#
dD)wwu1w%wwcUw#
dD)wwu1w%**C5q*9wwcUSEw2
dD)B]]:S1 	+GG3cG*	+ ]]:S1 	-GG3G,	- O]]:S1 	GGGO	 		+ 	+	- 	-	 	s$   6H-H&HHHH#r   actualr   r   r   r   r   r   c                 b   t        |j                  t              rdnd }t        j                  d      }t        j                  t        |      5  |j                  d|d       d d d        t        j                  t        |      5  |j                  j                  d|d       d d d        |j                  dd|d      }t        j                  ||       |j                  j                  dd|d      }t        j                  |j                  |       y # 1 sw Y   xY w# 1 sw Y   xY w)	Nr   z"['c'] not found in axis"r   r:   r!   rX   r   r/   )rX   r!   r0   )
isinstancer   r   reescaper#   r$   r%   r&   Tr1   r3   )rb   r   r!   r'   expected_no_errs        r,   "test_raise_on_drop_duplicate_indexz4TestDataFrameDrop.test_raise_on_drop_duplicate_index   s      j9tii56]]83/ 	2KK5qK1	2]]83/ 	4HHMM#UM3	4 ++cx+P
ov6 ((--!5-R
o//8	2 	2	4 	4s   DD%D"%D.r   )r   r   r   drop_labelsr   c                     |D cg c]	  }||vs| }}t        |      j                  |      }t        j                  |t        |             y c c}w )Nr   r   r&   r1   r3   )rb   r   r   iexpected_indexframes         r,   test_drop_empty_listz&TestDataFrameDrop.test_drop_empty_list  sN     &+Ca{.B!CC&++K8
eY^%DE Ds
   	AA)r   r   r   r
   r   c                     t        j                  t        d      5  t        |      j	                  |       d d d        y # 1 sw Y   y xY w)NrA   r   r   )r#   r$   r%   r   r&   )rb   r   r   s      r,   test_drop_non_empty_listz*TestDataFrameDrop.test_drop_non_empty_list  s;     ]]8+>? 	5E"''4	5 	5 	5s   AA
empty_listlikezdatetime64[ns]dtypec                     ddgddgd}t        d      t        d      g}t        ||      }|j                         }|j                  |      }t	        j
                  ||       y )Nr   r   onetwo)column_acolumn_bz
2021-01-01r   )r	   r   rI   r&   r1   r3   )rb   r   r   r   r+   rj   r   s          r,   2test_drop_empty_listlike_non_unique_datetime_indexzDTestDataFrameDrop.test_drop_empty_listlike_non_unique_datetime_index  sa     G%@<()L*ABt5) 779(
fh/r7   c                 <   g dg dg dg}t        t        |       }t        j                  |      }t	        t
        j                  j                  d      j                  d      |      }|j                  dd	      }|j                  d
gd	      }t        j                  ||       |j                  dgd	      }|j                  dgd	      }|j                  dgd	      }t        j                  ||       |j                  dd	      }|j                  dgd	      }t        j                  ||       |j                  dgd	      }|j                  dd	      }|j                  ddd      }|j                  ddgd	      }t        j                  ||       y )N)r   topr   routine1r   routine2)r   ODr   result1result2r   )r   wxwyr   r   r   r   )r
   r   ru   r   r   rW   )r   r   r   r   )r   r   r   )r   r   r   r   r   )r   r   r   )r   r   r   )sortedrz   r   r   r   rB   rC   rD   rE   r&   r1   r3   )rb   arraystuplesr   r+   r   rj   s          r,   test_mixed_depth_dropz'TestDataFrameDrop.test_mixed_depth_drop(  s   C=(
 V%&&v.ryy,,Q/??GQVW1%77M?73
h/%q)77/0q79=="5!6Q=?
h/,1577/0q79
h/77/0q79775q7)!!477(*EFQ  
 	h/r7   c           
      Z   t        g dt        j                  dddgg dg dd      j                  g d      j	                         }|j                  d	d
      }t        ddgdgt        j                  ddt        j                  dfgg d            }t        j                  ||       y )N)r   r   r   r           g      ?g       @)r   r   r:   r:   rm   rn   ro   rp   rq   )rn   ro   rp   r:   rp   r    r   r   rq   )r   r   r   r   r   r   r?   )
r   rB   nanr|   
sort_indexr&   r   r   r1   r3   rb   r+   r   rj   s       r,   $test_drop_multiindex_other_level_nanz6TestDataFrameDrop.test_drop_multiindex_other_level_nanI  s     5&&#sC0-%	 Y'Z\ 	 C(FE(("UBFFC$89
 	fh/r7   c                    t        g dg dg dg dg dg dg dg dg d	g	g d
      }|j                  d      j                         }|j                  |dk(     }|j	                  g d      }|j                  |j                  d      j                         }||j                  j                  |j                            }|j                  |_        t        j                  ||       y )N)x-axr   g      ?)r   r   r   333333?)zz-czr:   g@)r   r   r   ffffff@)x-br   r   gffffff@)r   r   r   r   )r   r   r   g@)zy-ayr   r   )zz-br   r   g @)var1var2var3var4ru   r   r   )r   r   r   r   r    )r   groupbysizery   r|   r&   r   r   r   isinr1   r3   )rb   r+   grp_sizedrop_idxidfr   rj   s          r,   test_drop_nonuniquez%TestDataFrameDrop.test_drop_nonuniquea  s    &&&&&&&&&
 5
 ::f%**,<<A.ll34 (..2>>@rww||HNN334~~
fh/r7   c                 8   |}|j                  ddgd      }|j                  g d   }t        j                  ||       |j                  dgd      }|j                  g d   }t        j                  ||       |j                  j                  ddgd	d
      }|j                  g d   j                  }t        j                  ||       |j                  j                  dgd	d
      }|j                  g d   j                  }t        j                  ||       y )NbarquxrU   r    )r   r   r   r   r   r   rV   )r   r   r   r   r   	   r   )rX   r!   )r&   rH   r1   r3   r   )rb    multiindex_dataframe_random_datar   r   rj   s        r,   test_drop_levelz!TestDataFrameDrop.test_drop_level~  s    0UEN':::o.
fh/UG84::01
fh/uen1GD::o.00
fh/ugAX>::0133
fh/r7   c                    t        g dd      }t        j                  g d      }t        t	        j
                  d      j                  dd      t        d      |	      }||d
<   |j                  d
d      }t        d      }|j                  j                  du sJ |j                  |d
      }|j                  |dk7     }t        j                  ||       y )N)r   r   r
   r
   r   idr]   )z2016-03-23 14:00z2016-03-23 15:002016-03-23 16:00r   z2016-03-23 17:00r   r   r   abr?   tstampT)append201603231600Fr    r
   )r   rF   to_datetimer   rB   arangereshaper`   r|   r	   r   	is_uniquer&   ry   r1   r3   )rb   idxidxdtr+   tsr   rj   s          r,   "test_drop_level_nonunique_datetimez4TestDataFrameDrop.test_drop_level_nonunique_datetime  s    O$/
 ryy},,Q2DJcR8\\(4\0~&xx!!U***8,66#(#
fh/r7   c                 \   t        dd      }t        dd      }t        j                  ||d      } |dgt        |      z  |      }|j	                  |      }t        d	d      }t        j                  ||d      } |dgt        |      z  |      }	t        j                  ||	       y )
Nz
2017-10-29zEurope/Berlin)tzz2017-10-29 04:00:0015min)r=   r   r   z2017-10-29 00:15:00)r	   rF   rG   lenr&   r1   assert_equal)
rb   frame_or_seriesstartendr   r   r   expected_startexpected_idxrj   s
             r,   'test_drop_tz_aware_timestamp_across_dstz9TestDataFrameDrop.test_drop_tz_aware_timestamp_across_dst  s    ,?;-/BeSw7QC#e*$4EB5!"#8_M}}^SwG"c,.?(?|T
)r7   c                    t        j                  g dg dgddg      }t        t        j                  j                  d      j                  d      |      }|j                  d	g      }|j                  j                  d
k(  sJ y )N)r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   )r   r   r   )r   r   )r   r   )
r   r"   r   rB   rC   rD   rE   r&   r   r   )rb   r   r+   r   s       r,   test_drop_preserve_namesz*TestDataFrameDrop.test_drop_preserve_names  sq    &&!34UEN
 ryy,,Q/??GuU&"||!!^333r7   	operation)__iadd____isub____imul____ipow__rY   FTc                 p   t        dt        d      i      }|j                         }t        d      |d<   |d   }t        j                  d       5  |r|j                  dd|       n|j                  dd|      } t        ||      d       t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   rZ   )r   r{   rI   r1   r   r&   getattrr3   )rb   r   rY   r+   rj   r   s         r,   test_inplace_drop_and_operationz1TestDataFrameDrop.test_inplace_drop_and_operation  s     U1X'779(3sG''- 	0!W5WWSq'W: "GAy!!$!!"h/	0 	0 	0s   AB,,B5c                     t        j                  g dg dg      }t        g d|      }|j                  d      }t        dgt        j                  dgdgg            }t	        j
                  ||       y )	N)r   r   r   )r   jr   r   r   r   r   r   r  )r   r"   r   r&   r1   r3   )rb   r)   r+   r   rj   s        r,   $test_drop_with_non_unique_multiindexz6TestDataFrameDrop.test_drop_with_non_unique_multiindex  sd    ##_o$FGy+s#aS
(>(>u~(NO
fh/r7   indexerr   r   c                    t        j                  ddgddgg      }t        dt        t	        |            i|      }|j                  dg      }t        dddgit        j                  ddg            }t        j                  ||       y )	Nr   r   r   r   r
  r   r   )r   r   )	r   from_productr   r{   r   r&   r   r1   r3   )rb   r	  r   r+   r   rj   s         r,   *test_drop_tuple_with_non_unique_multiindexz<TestDataFrameDrop.test_drop_tuple_with_non_unique_multiindex  s     %%SzC:&>?U3s8_-S9
|,1a&M!7!7Z8P!Q
 	fh/r7   c                    t        g dg dg dgg d      }|j                  dgd      }t        dgdgdggdg      }t        j                  ||       |j                  dd      }t        j                  ||       y )N)r   r   g      @)r   r   r   ru   r   r   rW   r   r   r   s       r,    test_drop_with_duplicate_columnsz2TestDataFrameDrop.test_drop_with_duplicate_columns  s{    +{3=N
 #Q'qcA3_ug>
fh/1%
fh/r7   c                    t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      g dd      }|j                  g dd      }|j                  g dd      }|j                  d	d      }t        j                  ||       y )
Nr   r   )r   r   r:   rQ   rR   r   )r   r   r   r   rW   )r   r   r   r   r   rp   )	r   rB   rC   rD   rE   taker&   r1   r3   )rb   r+   rj   df2r   s        r,   !test_drop_with_duplicate_columns2z3TestDataFrameDrop.test_drop_with_duplicate_columns2  s    YY**1-==a@YY**1-==a@YY**1-==a@.	
 77917-ggoAg.#A&
fh/r7   c                 R   t        dg dit        dgd            }|j                  }|j                  dgdd       t	        j
                  |j                  t        g d             ||j                         z  }t	        j
                  |j                  t        g d             y )	Nr   r   objectr   ru   r   TrZ   )r   r   r   r&   r1   ra   r@   mean)rb   r+   r   s      r,   .test_drop_inplace_no_leftover_column_referencez@TestDataFrameDrop.test_drop_inplace_no_leftover_column_reference  s~    Y'uH1MNDD
At,
bjj%(*CD	QVVX
bjj%(*CDr7   c                     t        t        j                  t        d      t        d      g            }t	        j
                  t        d      5  |j                  dd       d d d        y # 1 sw Y   y xY w)Nr   r   zlabels \[5\] not found in levelr   r   r   r    )r   r   r  r{   r#   r$   r%   r&   )rb   r+   s     r,   (test_drop_level_missing_label_multiindexz:TestDataFrameDrop.test_drop_level_missing_label_multiindex  sX    Z44eAha5IJK]]8+NO 	 GGAQG	  	  	 s   A,,A5z
idx, levelNc                 *   t        dddt        j                  gdd|      j                  |      }|j	                  t        dt        j                  g      |      }t        dgdd|      j                  |      }t        j                  ||       y )Nr   r   d   r   r   r   r    )r   rF   NAr|   r&   r   r1   r3   )rb   any_numeric_ea_dtyper   r!   r+   r   rj   s          r,   test_drop_index_ea_dtypez*TestDataFrameDrop.test_drop_index_ea_dtype  s     aBEE"-5I

)C. 	 255z*%8#C (<

)C. 	 	fh/r7   c                     t        ddgddgdt        d      t        d      g      }|j                  dd      }t        dgdgdt        d      g      }t        j                  ||       y )	Nr   r   r  z
2000-01-03z
2000-01-04r   r   rW   )r   r	   r&   r1   r3   r   s       r,   &test_drop_parse_strings_datetime_indexz8TestDataFrameDrop.test_drop_parse_strings_datetime_index  so    a&1v&\*Il,CD
 A.A3aS1)L:Q9RS
fh/r7   )&__name__
__module____qualname__rk   r   r   r   r   r#   markparametrizer   r|   r   r   r   rB   arrayr   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r!   r7   r,   rL   rL   E   s   -7^3,j04%N y!D[[4Sz24Sz24Sz2<<aVD4Sz2<<aVD		
99 [[Wy)&<=[[]R!qcN;F < >F [[Wy)&<=[[]aVaV,<=5 > >5
 [[BHHRL2-."I"	

	0
	00B000:0&0,
*4 [[E [[Y60 70"0 [[Yj\(BC0 D000 E  [[\c3ZOseT]+KL	0 M	00r7   rL   )r   numpyrB   r#   pandas.errorsr   pandasrF   r   r   r   r   r   r	   pandas._testing_testingr1   r%  r&  r-   r6   rJ   rL   r(  r7   r,   <module>r.     s    	   ,    44	%	% (H)=>
+ ?
+ ]0 ]0r7   