
    bMh#                        d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZ d dlmZ ej        dd            Zej        dd	            Z G d
 d          Z G d d          ZdS )    )annotations)datetimeN)	DataFrameIndexSeries	Timestamp
date_rangereturndict[str, list[int | str]]c                 Z    t          t          d                    t          d          dS )N   ab..ab)listrange     g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/methods/test_replace.pymix_abr      s"    eAhhd6ll333r   dict[str, list[float | str]]c                 x    t          t          d                    t          d          ddt          j        dgdS )Nr   r   r   r   dr   r   c)r   r   npnanr   r   r   mix_abcr      s/    eAhhd6ll#sBFC9PQQQr   c                  h   e Zd Zd Zej                            dddgej        dgddej        ej        gdgdz  d	gz   g d
dfddgddgg dg dg ddfddgddgg dg dg d
dfg          ej                            dddg          ej                            dddg          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%ej        d&d'd&ej        d(g          d)             Zej                            d*g d+          d,             Zej                            d-d.d/gd0d1d2d3d4gfg d5d6ej        id1ej        ej        gfg          d7             Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Z d? Z!d@ Z"dA Z#dB Z$ej                            dCg dD          dE             Z%dF Z&dG Z'dH Z(dI Z)dJ Z*dK Z+dL Z,ej                            dM e-dNg dOi          dPdQ e-dNg dRi          f e-dNg dOiej.        S          dPdQ e-dNg dRiej.        S          f e-dNg dOiej/        S          dPdQ e-dNg dRiej/        S          f e-dTg dUi          dd e-dTg dVi          f e-dWg dXi          dYdQ e-dWg dZi          f e-d[ e0 e1d\d]d^           e1d\d_d^           e1d\d]d^          g          i           e1d\d]d^           e1d\d_d^           e-d[ e0 e1d\d_d^          gdz            i          f e- e1d`dadb          gdcgdd          dcde e- e1d`dadb          gdegdd          f e-df e1dgdhdP          gi           e1dgdhdP           e1didhdP           e-df e1didhdP          gi          f e- e2djddkl          dQej        dmgdn           e3dodkp           e3dqdkp           e- ej4         e3djdkp           e3dqdkp           e3drdkp          g          5                    ds          dQej        dmgdn          f e-dPdtgdmdugg          dtd] e-d]dvgdmdugg          f e-dPdtgdmdugg          dPd] e-d]dvgdmdugg          f e-dPdtgdmdugg          dtdv e-d]dvgdmdugg          f e-dPdtgdmdugg          dPdv e-d]dvgdmdugg          fg          dw             Z6dx Z7dy Z8dz Z9d{ Z:d| Z;d} Z<d~ Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd ZEd ZFd ZGd ZHd ZId ZJej                            ddQdg dd]ej        d_gg ddfej        dg dg dg ddfd1dg dd]ej        d_gg ddfdQdmgdg dd]ej        d_gg ddfdPdmgdg dd]ej        d_gg ddfddg dd]ej        d_gg ddfdd0gdg dd]ej        d_gg ddfg          d             ZKej                            ddPdPd2ddgdmdmggfdPdmd2ddPgdmdggfg          d             ZLej                            dg dOg ddd]dd_dg dOg ddfg dOg ddddddg dOg ddfg          d             ZMej                            d e3d           ejN        dP           ej/        dP           ejO        dP           ejP        dP          g          d             ZQd ZRd ZSej                            dCg d          ej                            dej        ej        g          d                         ZTej                            dej        d]g          d             ZUej                            d ejV        d           ejW        dQd]          g          d             ZXd ZYd ZZd Z[d Z\d Z]d Z^ej                            ddPgdtgdQgdQgfdPgdPgdQgdQgfdtgdtgdQgdgfdtgdPgdQgdgfg          ej                            de_e`eja        g          d                         Zbej                            ddmej        dug          d             Zcd ZddS )TestDataFrameReplacec                   t           j        |j        |j        d d         df<   t           j        |j        |j        dd          df<   |                                }|                    t           j        dd          }|J t          j        ||                    d                     |}t           j        |j	        dd|j
                            d          f<   t           j        |j	        d	d |j
                            d          f<   |                    t           j        d          }|                                }|d                             t                    |d<   |                    d
          }t          j        ||           |                                }|                    t           j        gdgd          }|J t          j        ||                    d                     d S )N   Ar   Tinplace   foovalue)r   r   locindexcopyreplacetmassert_frame_equalfillnailoccolumnsget_locastypeobject)selfdatetime_framefloat_string_frametsframereturn_valuemfresultexpecteds           r   test_replace_inplacez)TestDataFrameReplace.test_replace_inplace   s   <>F>/3S89=?V>/4c9: %%''rvq$??###
g~'<'<Q'?'?@@@  356"bj((///013bj((---.#++BFA66%**,,"5/0088???++
fh/// %%''x!dCC###
g~'<'<Q'?'?@@@@@r   zto_replace,values,expected\s*\.\s*ze|f|gcrapr   r      hrE   rC   lor   
\s*(\.)\s*z(e|f|g)\1\1\1_crapr   r   ..rM   )e_crapf_crapg_craprE   )rE   rN   rG   rH   erC   fgrE   r'   TFuse_value_regex_argsc                :   t          t          d          t          d          t          d          d          }|r|                    |||          }n|                    ||d|          }|r|J |}t          |          }t          j        ||           d S )Nr   efghhelor   )r,   regexr'   TrY   r'   )r   r   r0   r1   r2   )r9   
to_replacevaluesr@   r'   rU   dfr?   s           r   test_regex_replace_list_objz0TestDataFrameReplace.test_regex_replace_list_obj8   s    T T&\\V4<<PPQQ 	QZZfJZPPFFZZ
F$ZPPF 	>>>FX&&
fh/////r   c                r   t          |          }ddg}t          j        dg}t          t	          d                    t          d          t          d          d}t          |          }|                    ||d	          }t          |d         dd
t          j        t          j        gg dd          }t          j        ||           ddg}ddg}|                    ||d	          }t          |d         g dd          }t          j        ||           g d}g d}|                    ||d	          }t          |d         g dd          }t          j        ||           g d}g d}|                    ||          }t          |d         g dd          }t          j        ||           d S )NrB   r   rC   r   r   halor   TrY   r   rF   rI   (a|b)rJ   rK   a_crapb_craprM   rM   r   rI   r   z(b)rJ   rC   rK   rC   re   rM   rM   rY   r,   )r   r   r   r   r   r0   r1   r2   )	r9   r   dfmixto_replace_resr\   mix2dfmix2resexpecs	            r   test_regex_replace_list_mixedz2TestDataFrameReplace.test_regex_replace_list_mixedp   s   &!! &t,&&!%((^^$v,,T&\\JJ4nn^V4n@@#Yc26262,,, 
 
 	c5))) (2:&mmNF$m??s2R2R2RSSTT
c5))) 766///mmNF$m??s2P2P2PQQRR
c5)))666///mm.m??s2P2P2PQQRR
c5)))))r   c                   t          |          }ddg}t          j        dg}|                                }|                    ||dd          }|J t          |d         ddt          j        t          j        gd          }t          j        ||           dd	g}d
dg}|                                }|                    ||dd          }|J t          |d         g dd          }t          j        ||           g d}g d}|                                }|                    ||dd          }|J t          |d         g dd          }t          j        ||           g d}g d}|                                }|                    ||d          }|J t          |d         g dd          }t          j        ||           d S )NrB   r   rC   Tr'   rY   r   r   rI   rb   rJ   rK   rc   rf   rg   rh   rY   r,   r'   )r   r   r   r/   r0   r1   r2   )r9   r   rj   rk   r\   rn   r=   ro   s           r   %test_regex_replace_list_mixed_inplacez:TestDataFrameReplace.test_regex_replace_list_mixed_inplace   s	   &!! &t,&&!jjll{{>64t{TT###s632OPPQQ
c5))) (2:&jjll{{>64t{TT###s2R2R2RSSTT
c5))) 766///jjll{{>64t{TT###s2P2P2PQQRR
c5)))666///jjll{{vt{TT###s2P2P2PQQRR
c5)))))r   c                   t          |          }|                    ddidt          j        id          }|                                }|                    ddidt          j        idd          }|J t          |d         ddt          j        t          j        g|d         d          }t          j        ||           t          j        ||           |                    dd	idd
id          }|                                }|                    dd	idd
idd          }|J t          |d         g d|d         d          }t          j        ||           t          j        ||           |                    dd	idd
i          }|                                }|                    dd	idd
id          }|J t          |d         g d|d         d          }t          j        ||           t          j        ||           t          |d         t          j        dddg|d         d          }|                    ddt          j        id          }|                                }|                    ddt          j        idd          }|J t          j        ||           t          j        ||           |                    ddt          j        id          }|                                }|                    ddt          j        id          }|J t          |d         t          j        dddg|d         d          }t          j        ||           t          j        ||           d S )Nr   rB   Tra   rr   r   r   r   rI   z\1ty)r   r   .tyrv   ri   rs   .rZ   r   r0   r   r   r/   r1   r2   )r9   r   rj   rn   res2r=   ro   s          r   test_regex_replace_dict_mixedz2TestDataFrameReplace.test_regex_replace_dict_mixed   s   '"" mmS+.bfTmJJzz||||+bft4 $ 
 
 ####,c3%?gclSS
 
 	c5)))
dE*** mmS-03.mMMzz||||- 3.$d $ 
 
 ####,%=%=%=GCLQQ
 
 	c5)))
dE***mm3"6sGnmMMzz||||&sGnd $ 
 
 ####,%=%=%=GCLQQ
 
 	c5)))
dE*** #,bfc3%<73<PP
 
 mmC#rvdm;;zz||||C#rvdD|QQ###
c5)))
dE***mmC#rvdm;;zz||||#c26]D|QQ####,bfc3%<73<PP
 
 	c5)))
dE*****r   c                   t          |          }|                    ddt          j        iid          }|                                }|                                }|                    ddt          j        iidd          }|J |                    ddt          j        ii          }|                    ddt          j        iid          }|J t          |d         ddt          j        t          j        g|d         d	          }t          j        ||           t          j        ||           t          j        ||           t          j        ||           d S )
Nr   rB   Tra   rr   rZ   r   r   r   rx   )	r9   r   rj   rn   ry   res4r=   res3ro   s	            r   test_regex_replace_dict_nestedz3TestDataFrameReplace.test_regex_replace_dict_nested  sU   '""mmS;"78mEEzz||zz||||;'($d $ 
 
 ###}}C+rv)>#?}@@||3bf0E*FPT|UU####,c3%?gclSS
 
 	c5)))
dE***
dE***
dE*****r   c                    |}t          dg di|          }|                    ddid          }t          dg di|          }t          j        ||           d S )	Nfirst)abcbcacabdtyper   rw   Tra   )z.bczbc.zc.br   r0   r1   r2   )r9   any_string_dtyper   r]   r?   r@   s         r   2test_regex_replace_dict_nested_non_first_characterzGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_character  su     !6!6!67uEEES#Jd33g'<'<'<=UKKK
fh/////r   c                F   t          t          g dt                    dd          }t          g ddd          }d}t          j        t
          |          5  |                    dd	d
di          }d d d            n# 1 swxY w Y   t          j        ||           d S )N)QTr   r   r   r      )Typetmp)r      r   r   r   !Downcasting behavior in `replace`matchr   r   r   )r   r   )r   r   r8   r1   assert_produces_warningFutureWarningr0   r2   )r9   r]   r@   msgr?   s        r   %test_regex_replace_dict_nested_gh4115z:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115#  s    555VDDDQOO
 
 oooa@@AA1'SAAA 	< 	<ZZqq)9)9 :;;F	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	fh/////s   BBBc                   t          |          }t          |d         t          j        gdz  t          j        t          j        t          j        dgd          }|r|d                             d          |d<   d}|rd nt          }t          j        ||          5  |                    d	d
gt          j        d          }d d d            n# 1 swxY w Y   |                                }|                                }	t          j        ||          5  |                    d	d
gt          j        dd          }
d d d            n# 1 swxY w Y   |
J t          j        ||          5  |	                    d	d
gt          j        d          }
d d d            n# 1 swxY w Y   |
J t          j	        ||           t          j	        ||           t          j	        |	|           d S )Nr   r   r   r   r   strr   r   rB   za|bTra   rZ   rs   )
r   r   r   r7   r   r1   r   r0   r/   r2   )r9   r   using_infer_stringr]   ro   r   warnrn   ry   r}   r=   s              r   !test_regex_replace_list_to_scalarz6TestDataFrameReplace.test_regex_replace_list_to_scalar.  s   wS\fX\fbfbfc2 
 
  	2s**511E#J1)<tt}'C888 	G 	G**k5126*FFC	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gwwyywwyy'C888 	 	<<e$bfD$ (  L	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ###'C888 	 	<<"E*"&$ (  L	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ###
c5)))
dE***
dE*****s6   %CCC&EEE-%FF"%F"c                   t          |          }|                    ddd          }|                                }|                    dddd          }|J |                                }|                    ddd          }|J t          |d         g d|d	         d
          }t          j        ||           t          j        ||           t          j        ||           d S )NrB   r   Tra   rr   rs   r   )r   r   r   r   r   r   )r   r0   r/   r1   r2   r9   r   r]   rn   ry   r=   r}   ro   s           r   !test_regex_replace_str_to_numericz6TestDataFrameReplace.test_regex_replace_str_to_numericM  s    wjjatj44wwyy||KD|MM###wwyy||+Q|MM###3C3C3C'RU,WWXX
c5)))
dE***
dE*****r   c                   t          |          }|                    ddgdd          }|                                }|                    ddgddd          }|J |                                }|                    ddgdd          }|J t          |d         g d	ddt          j        d
gd          }t          j        ||           t          j        ||           t          j        ||           d S )NrB   r   r   Tra   rZ   rs   r   )r   r   r   r   r   r   )r   r0   r/   r   r   r1   r2   r   s           r   (test_regex_replace_regex_list_to_numericz=TestDataFrameReplace.test_regex_replace_regex_list_to_numeric\  s   wjj+s+Qdj;;wwyy||[#$6t|TT###wwyy||;*<At|TT####,^^^3263:OPP
 
 	c5)))
dE***
dE*****r   c                Z   t          |          }t          ddi          }t          dt          j        i          }|                    ||d          }|                                }|                    ||dd          }|J |                                }|                    ||d          }|J t          |d         ddt          j        t          j        g|d         d	          }	t          j        ||	           t          j        ||	           t          j        ||	           d S )
Nr   rB   Tra   rr   rs   r   r   r   )r   r   r   r   r0   r/   r1   r2   )
r9   r   r]   s1s2rn   ry   r=   r}   ro   s
             r   $test_regex_replace_series_of_regexesz9TestDataFrameReplace.test_regex_replace_series_of_regexesl  s   wS+&''S"&M""jjRtj,,wwyy||BD|EE###wwyy||"B|EE####,c3%?gclSS
 
 	c5)))
dE***
dE*****r   c                    t          |          }t          g d|d         |d         d          }|                    dd          }t          j        ||           |j        j        t          j        k    sJ d S )N)r   r   r   rD   r   r   r   r   r   )r   r0   r1   r2   r   r   r   object_)r9   r   r]   ro   rn   s        r   /test_regex_replace_numeric_to_object_conversionzDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversion~  sv    wWS\PSUUVVjjC  
c5)))u{bj((((((r   r[    )r   ,)r   r   c                    t          g dg dg dd          }|                    |          }t          g ddt          j        dgg dd          }t	          j        ||           d S )	N)z1,000r   3)r   r   r   r   col1col2col3ra   )1000r   r   r   r   r   r0   r   r   r1   r2   )r9   r[   r]   r?   r@   s        r   +test_joint_simple_replace_and_regex_replacez@TestDataFrameReplace.test_joint_simple_replace_and_regex_replace  s    
 +++&' 
 
 *--***bfc*' 
 
 	fh/////r   metachar)z[]z()z\dz\wz\sc                    t          d|dgi          }|                    d|dii          }t          dddgi          }t          j        ||           d S )Nr   elseparenr   )r9   r   r]   r?   r@   s        r   test_replace_regex_metacharz0TestDataFrameReplace.test_replace_regex_metachar  sd    h/011S8W"5677cGV#4566
fh/////r   zdata,to_replace,expectedxaxxbxr   r   r   xcxxdx)r   r   r   ^\s*$c                    |} |||          }|                     |d          } |||          }t          j        ||           d S )Nr   Tra   r0   r1   assert_equal)	r9   datar[   r@   frame_or_seriesr   r   objr?   s	            r   test_regex_replace_string_typesz4TestDataFrameReplace.test_regex_replace_string_types  s^     !od%000Zt44"?85999
)))))r   c                   t           j        |j        |j        d d         df<   t           j        |j        |j        dd          df<   |                    t           j        d          }t          j        ||                    d                     t          j        |                    dt           j                  |           t           j        |j        |j        d d         df<   t           j        |j        |j        dd          df<   d|j        |j        d d         df<   t          ddg          }t          j        ||                    dd	                     t          d
t          j
        d          fdt          j
        d          fg          }|                    d
t           j                  }t          t           j        t          j
        d          fdt          j
        d          fg          }t          j        ||           d S )Nr#   r$   r%       חBr   r   r.      -2015010120150102)r   r   r-   r.   r0   r1   r2   r3   r   pdto_datetime)r9   r:   zero_filledr]   df1expected_dfs         r   test_replacez!TestDataFrameReplace.test_replace  s   <>F>/3S89=?V>/4c9:$,,RVT::
k>+@+@+F+FGGG
k11$??PPP<>F>/3S89=?V>/4c9:<@>/3S89 c3Z(((
b"**Q"2"2333 2>*--.bnZ6P6P0QR
 
 jjbf%%fbnZ001C
9S9S3TU
 
 	c;/////r   c                   t          d          t          d          t          d          d}t          |          }ddg}t          j        dg}|                    ||          }t          dd	t          j        t          j        gg d
g dd          }t          j        ||           ddg}ddg}|                    ||          }t          g dg dg dd          }t          j        ||           d S )Nr   rW   rX   r   rw   rQ   rC   r   r   rR   rF   rS   rM   rL   )rQ   rC   rT   rE   )rE   rQ   rG   rH   )r   r   r   r   r0   r1   r2   )r9   r   dfobjrk   r\   rn   ro   s          r   test_replace_listz&TestDataFrameReplace.test_replace_list  s   LLtF||$v,,GG# &&!mmNF333/,,,,,, 
 
 	c5))) !mmNF33+++,,,))) 
 
 	c5)))))r   c                   t          ddgg t          j        dgg          }t          d|i          }t	          j        ||          }|}|                    g t          j                  }t	          j        ||           d}t          j	        t          |                    d                    5  |                    t          j        g i           d d d            n# 1 swxY w Y   t          j	        t          |                    d	                    5  |                    t          j        d
dgi           d d d            d S # 1 swxY w Y   d S )Nr   r   r   colzwNumPy boolean array indexing assignment cannot assign {size} input values to the 1 output values where the mask is truer   )sizer   r   dummyalt)r   r   r   r   r1   get_objr0   r   pytestraises
ValueErrorformat)r9   r   serr   r@   r?   r   s          r   test_replace_with_empty_listz1TestDataFrameReplace.test_replace_with_empty_list  s   sCj"bfqc233%%jo..R((
)))I 	 ]:SZZQZ-?-?@@@ 	& 	&KK%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&]:SZZQZ-?-?@@@ 	4 	4KK'5!12333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s$   /"CC!$C!$EEEc                   t          ddddddd          }|                    dddd          }t          ddddddd          }t          j        ||           |                    d|                                          }t          j        ||           t          ddddddd          }t          ddd          }|                    |ddd          }t          ddddddd          }t          j        ||           |                    ||                                          }t          j        ||           d S )	N        r   r          @r   )zeroone      ?      ?)r   r0   r1   r2   meanr   )r9   r]   r?   r@   ss        r   test_replace_series_dictz-TestDataFrameReplace.test_replace_series_dict  sm   c 2 21;M;MNNOOAC8899Ca&8&8sQTAUAUVVWW
fh///Arwwyy))
fh/// c 2 21;M;MNNOOC,,--AC8899Ca&8&8sQTAUAUVVWW
fh///Arwwyy))
fh/////r   c                B   t          g dg dg          }dddd}d}t          j        t          |          5  |                    |          }d d d            n# 1 swxY w Y   t          t          j        gdz            }|j        }t          j	        ||           d S )N)r)   barbah)r   r)   r   r   r   rD   "Downcasting behavior in `replace` r   )
r   r1   r   r   r0   r   r   int64dtypesassert_series_equal)r9   r]   mr   repro   rn   s          r   test_replace_convertz)TestDataFrameReplace.test_replace_convert  s    ---/D/D/DEFFa**2'SAAA 	  	 **Q--C	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 zA~&&j
uc*****s   AA"Ac                z   |}t           j        |j        dd|j                            d          f<   t           j        |j        dd |j                            d          f<   |                    t           j        d          }|                                }|d                             t                    |d<   |	                    d          }t          j        ||           |                                }|d                             t                    |d<   t          j        |                    dt           j                  |           |                    t           j        d          }|                                }|d                             t                    |d<   |	                    d          }t          j        ||           |                                }|d                             t                    |d<   t          j        |                    dt           j                  |           d S )	Nr#   r(   r)   r*   r$   ir+   r   )r   r   r4   r5   r6   r0   r/   r7   r8   r3   r1   r2   )r9   r;   r>   r?   r@   	expected2s         r   test_replace_mixedz'TestDataFrameReplace.test_replace_mixed   s   356"bj((///013bj((---.#++BFC88%**,,"5/0088???--
fh///&++--	$U+226::	%
fnnS"&999EEE#++BFD99%**,,"5/0088???..
fh///&++--	$U+226::	%
fnnT26::IFFFFFr   c                   t          t          ddgd          t          ddgd          d          }t          t          ddgd          t          d	dgd          d          }|                    dd	          }t          j        ||           |                    dd	d
          }|J t          j        ||           d S )Nr   r   float64r   r   r   r   r$   r   r   Tr&   r   r   r0   r1   r2   )r9   r]   r@   r?   r=   s        r   &test_replace_mixed_int_block_upcastingz;TestDataFrameReplace.test_replace_mixed_int_block_upcasting7  s    S#Ji888QF'222 
 
 S#Ji888S!HI666 
 
 As##
fh///zz!S$z77###
b(+++++r   c                t   t          t          ddgd          t          ddgd          t          ddgd          d	          }t          t          ddgd          t          d
dgd          t          ddgd          d	          }|                    dd
          }t          j        ||           d S )Nr   r   r   r   r   r   r   r   r$   r   Cr   r   r9   r]   r@   r?   s       r   &test_replace_mixed_int_block_splittingz;TestDataFrameReplace.test_replace_mixed_int_block_splittingL  s    S#Ji888QF'222QF'222 
 
 S#Ji888S!HI666QF'222 
 
 As##
fh/////r   c                   t          t          ddgd          t          ddgd          d          }t          t          dd	gd
          t          ddgd          d          }|                    dd	          }t          j        ||           t          t          d	dgd
          t          dd	gd
          d          }|                    ddgd	dg          }t          j        ||           d S )Nr   r   r   r   r   r   r   r   r)   r8   r   r   r   )r9   r   r]   r@   r?   s        r   test_replace_mixed2z(TestDataFrameReplace.test_replace_mixed2_  s%   S#Ji888QF'222 
 
 QJh777QF'222 
 
 Au%%
fh///UEN(;;;QJh777 
 
 QFUEN33
fh/////r   c                   t          t          ddgd          t          ddgd          d          }|                    d|                                                                          }|                                                    d          }|                                }|j        d         |j        d<   |j        d         |j        d	<   t          j	        ||           d S )
NrD   r   r   r   r   r   r   r   r   )r   r   )
r   r   r0   r   to_dictr/   r7   r4   r1   r2   )r9   r]   r?   r@   r   s        r   test_replace_mixed3z(TestDataFrameReplace.test_replace_mixed3y  s    !Qw///faV76S6S6STT
 
 Arwwyy0022337799##I..GGIIfQidfQid
fh/////r   c                   t          dddt          j        gg dd          }|d                             d          |d<   |                    dt          j                  }t          j        |d         |d                    d S )	Nr   r   rD   )somestringshereher   r   Int64r   )r   r   r   r7   r0   r1   r   r9   r]   rn   s      r   1test_replace_nullable_int_with_string_doesnt_castzFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_cast  sx    aArv.5V5V5VWWXXS'..))3jjRV$$
s3xC11111r   r   )booleanr  Float64c                    t          g d|          }t          g d|d          }|                    dd          }t          g d|d          }t          j        ||           d S )N)r   r   r   r   )r$   r   xr   r  X)r$   r   r  r   r   r0   r1   r2   )r9   r   nullable_serr]   r?   r@   s         r   !test_replace_with_nullable_columnz6TestDataFrameReplace.test_replace_with_nullable_column  sx     iiiu555___<@@AAC%%???FFGG
fh/////r   c                "   t          dt          dd          i          }t          dg di          }|                    ddddi          }t          j        ||           |                    ddd          }t          j        ||           d S )Nr   r   r#   r   r   rD   r   r   r   )r   r   r   r   r0   r1   r2   r   s       r   test_replace_simple_nested_dictz4TestDataFrameReplace.test_replace_simple_nested_dict  s    uQ{{+,,e%5%5%5677U$4$4566
h/// ,,--
h/////r   c                &   t          dt          dd          i          }t          dg di          }|                    dddd          }t          j        ||           |                    dddddi          }t          j        ||           d S )	Nr   r   r#   r  r   r   r   )r   r   r  r   s       r   6test_replace_simple_nested_dict_with_nonexistent_valuezKTestDataFrameReplace.test_replace_simple_nested_dict_with_nonexistent_value  s    uQ{{+,,e%5%5%56775566
h///U$=$=>??
h/////r   c                    t          ddd gi                              ddi          }|                    t          j        d i          }t          ddd git
                    }t          j        ||           d S )Nr,   *   r  r   )r   r7   r0   r   NAr8   r1   r2   r9   r]   r?   r@   s       r   test_replace_NA_with_Nonez.TestDataFrameReplace.test_replace_NA_with_None  sv    "d,--44gw5GHHRUDM**gDz2&AAA
fh/////r   c                    t          t          j        t          j        g          }|                    t          j        d t          j        d i          }t          d d g          }t          j        ||           d S N)r   r   NaTr0   r   r   r1   r2   r"  s       r   test_replace_NAT_with_Nonez/TestDataFrameReplace.test_replace_NAT_with_None  s`    '((RVT264899dD\**
fh/////r   c                   t          g dd          }t          t          g dd          |d          }|                    dd i          }t          t          g dd	          |d          }t          j        ||           d S )
N)r   r   r   r   categoryr   )r#   r   rD   r   r   )idr   rD   )      @g      @Nr   r8   r  )r9   
cat_seriesr]   r?   r@   s        r   (test_replace_with_None_keeps_categoricalz=TestDataFrameReplace.test_replace_with_None_keeps_categorical  s    000
CCC
\\\;;;! 
 
 QI&&222(CCC! 
 
 	fh/////r   c                *   |j         d         }|j         d         }t          j        |j         d<   d|j         d<   |                    t          j        di          }|j                            t          j        di          j        }t          j        ||           |                    t          j        dddi          }|                                }d|j         d<   d|j         d<   |}t          j        ||           ||j         d<   ||j         d<   d S )Nr  r   r   r   r   r[   r   )r4   r   r   r0   r   r1   r2   r/   )r9   r:   
orig_valueorig2r?   r@   r<   s          r   test_replace_value_is_nonez/TestDataFrameReplace.test_replace_value_is_none  s   #(.
#D)$&FD!$%D!''BFA;'??!#++{+CCE
fh///''BFAq$3G'HH %%''T!T
h///$.D!$)D!!!r   c                   |                                                     t          j                  }t          j        |j        |j        d d         df<   t          j        |j        |j        dd          df<   |                    t          j        d          }t          j	        ||
                    d                     t          j	        |                    dt          j                  |           t          j        |j        |j        d d         df<   t          j        |j        |j        dd          df<   t          j        |j        |j        d d         df<   d}t          j        t          |          5  |
                    d	          }t          j	        ||
                    d	                     d d d            d S # 1 swxY w Y   d S )
Nr#   r$   r%   r   r   z,DataFrame.fillna with 'method' is deprecatedr   bfill)method)r/   r7   r   float32r   r-   r.   r0   r1   r2   r3   r   r   )r9   r:   r<   r   r   r?   s         r   test_replace_for_new_dtypesz0TestDataFrameReplace.test_replace_for_new_dtypes  s    %%''..rz::.0fGM"1"%s*+/1vGM"##&+,oobfd33
k7>>$+?+?@@@
k11$??III.0fGM"1"%s*+/1vGM"##&+,.0fGM"1"%s*+<'SAAA 	J 	J^^7^33F!&'...*H*HIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js   9A GG
G
z"frame, to_replace, value, expectedintsr   r   rD   r   r   )r   r   rD   r   boolsTFT)TTTcomplex)              ?               @              @r>  )y                r?  r@  
datetime64i  r#      r   i     r(   r)   )dtr   r   rD  h  
   i  20130101
US/Easternperiodstzr   r   20130102rK  2013010420130103nsr   r   r+  c                   d }t          |t                    r|j        dk    rt          }d}t	          j        ||          5  |                    ||          }d d d            n# 1 swxY w Y   t	          j        ||           d S )NrE  r   r   )
isinstancer   yearr   r1   r   r0   r2   )r9   framer[   r,   r@   r   r   r?   s           r   test_replace_dtypesz(TestDataFrameReplace.test_replace_dtypes  s    X j(++ 	!
40G0G D2'C888 	6 	6]]:u55F	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6
fh/////s   A%%A),A)c                  	
 t           j        ddd	dddd
t          t           j        dt           j        gg dg dd          }|                    	
          }	
fd|                                D             }t          j        |t          |                     |                    g dg d	          }t          t           j        d
t           j        gg d	g dd          }t          j        ||           dddd
t          t           j        dt           j        gg dg dd          }|                    t           j        
          }
fd|                                D             }t          j        |t          |                     t           j        ddg	g d
|                    	
          }|                                }t          	
          D ]!\  }}|                    ||d          }|J "t          j        ||           d}t          j        t          |          5  |                    	
dd                     d d d            d S # 1 swxY w Y   d S )Nr   r   r   r  missingr   r   r#   r   asdffdc                \    i | ](\  }}||                     |         |                   )S r   r0   ).0kvto_repr\   s      r   
<dictcomp>zLTestDataFrameReplace.test_replace_input_formats_listlike.<locals>.<dictcomp>o  s5    NNN41aAqyyF1I66NNNr   )r#   r   r   r#   c                d    i | ],\  }}||                     t          j        |                   -S r   )r0   r   r   )r^  r_  r`  r\   s      r   rb  zLTestDataFrameReplace.test_replace_input_formats_listlike.<locals>.<dictcomp>~  s3    KKK1Aqyy33KKKr   )r  rW  Tr&   z:Replacement lists must match in length\. Expecting 3 got 2r   r   )r   r   r   infr0   itemsr1   r2   r/   zipr   r   r   )r9   r]   filledr@   r?   r   r,   r=   r   ra  r\   s            @@r   #test_replace_input_formats_listlikez8TestDataFrameReplace.test_replace_input_formats_listlikeg  s   vAB//r	2261bf%III<N<N<NOO
 
 FF++NNNNN288::NNN
fi&9&9:::IIIyyy1161bf%III<N<N<NOO
 
 	fh/// r	2261bf%III<N<N<NOO
 
 BFF++KKKK

KKK
fi&9&9::: &!R$$$FF++7799ff-- 	( 	(JC#++C+EEL''''
fh///K]:S111 	+ 	+JJvvabbz***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   4I  I$'I$c                   t          t          j        dt          j        gg dg dd          }t          j        ddd|                    d          }fd|                                D             }t          j        |t          |                     d}t          j	        t          |          5  |                    t          j        ddg           d d d            n# 1 swxY w Y   t          j        ddg|                    d	          }|                                }D ]}|                    |d	d
          }|J t          j        ||           d S )Nr   rX  rY  r   r   c                P    i | ]"\  }}||                     |         d           #S )r   r]  )r^  r_  r`  ra  s      r   rb  zJTestDataFrameReplace.test_replace_input_formats_scalar.<locals>.<dictcomp>  s1    FFF41aAqyyA..FFFr   z.value argument must be scalar, dict, or Seriesr   r  Tr&   )r   r   r   re  r0   rf  r1   r2   r   r   	TypeErrorr/   )	r9   r]   rh  r@   r   r?   r   r=   ra  s	           @r   !test_replace_input_formats_scalarz6TestDataFrameReplace.test_replace_input_formats_scalar  s   61bf%III<N<N<NOO
 

 vAB//FA&&FFFF288::FFF
fi&9&9:::>]9C000 	0 	0JJv2///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 &!RFB''7799 	( 	(C#++CT+BBL''''
fh/////s   5$C%%C),C)c                    d S r%  r   )r9   s    r   test_replace_limitz'TestDataFrameReplace.test_replace_limit  s    r   c                ,   t          dddddd|          }dd	d
ddd}t          ddd
d	dd          }d}t          j        t          |          5  |                    |          }d d d            n# 1 swxY w Y   t          j        ||           d S NStrongly AgreeAgreeNeutralDisagreeStrongly Disagree)r   r   r   rD   r   r   r   r   rD   r#   r   )rs  ru  rt  rr  rv  r   r   r   r1   r   r   r0   r   r9   r   answerweightsr@   r   r?   s          r   test_replace_dict_no_regexz/TestDataFrameReplace.test_replace_dict_no_regex  s   #&  #	
 	
 	
 !"
 
 aA!a88992'SAAA 	- 	-^^G,,F	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-
vx00000s   A44A8;A8c                F   t          dddddd|          }t          dd	d
ddd          }t          ddd
d	dd          }d}t          j        t          |          5  |                    |          }d d d            n# 1 swxY w Y   t          j        ||           d S rq  rw  rx  s          r   test_replace_series_no_regexz1TestDataFrameReplace.test_replace_series_no_regex  s   #&  #	
 	
 	
 "#%& 
 
 aA!a88992'SAAA 	- 	-^^G,,F	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-
vx00000s   BBBc                   t          dt          j        dgi          }|                    t          j        dddi          }|                    dt          j        fddg          }|                    dt          j        gddg          }t          dddgi          }t	          j        ||           t	          j        ||           t	          j        ||           d S )Nr$   r   r   r   r0  r[   r,   )r   r   r   r0   r1   r2   )r9   r]   res1ry   r}   r@   s         r   6test_replace_dict_tuple_list_ordering_remains_the_samezKTestDataFrameReplace.test_replace_dict_tuple_list_ordering_remains_the_same  s    bfa[)**zzbfaD%9z::zza[q	zBBzza[q	zBBcAt9-..
dD)))
dD)))
dH-----r   c                    t          g dg dg dg dd          }|                    ddi          }t          j        ||           d S )N)r   r   r   rD   )0vrr  r  )r  r  r  bt)vor  r  r  )folT_oppT_DirT_Enhz\Dr   r   r  s      r   )test_replace_doesnt_replace_without_regexz>TestDataFrameReplace.test_replace_doesnt_replace_without_regex  sm    #||.........	 
 
 jj%$$
b#&&&&&r   c                    t          ddgt          d          d          }|                    dd          }t          ddg|j        d          }t	          j        ||           d S )NTFabr   r   )r   r   r0   r   r1   r2   r"  s       r   test_replace_bool_with_stringz2TestDataFrameReplace.test_replace_bool_with_string  sh    dE]d<<==D#&&C<bd;;<<
fh/////r   c                    t          t          j                            d                              d          dk              }|                    dd          }t          j        ||           d S )Nr   r   r   r   rZ  fdsa)r   r   randomdefault_rngr0   r1   r2   r9   r]   r?   s      r   (test_replace_pure_bool_with_string_no_opz=TestDataFrameReplace.test_replace_pure_bool_with_string_no_op  s^    ry,,Q//66v>>DEEFF++
b&)))))r   c                2   t          t          j                            d                              d          dk              }|                    dd          }t          t          j        dt                              }t          j        ||           d S )Nr   r  r   FTr   )	r   r   r  r  r0   onesboolr1   r2   r"  s       r   test_replace_bool_with_boolz0TestDataFrameReplace.test_replace_bool_with_bool  sz    ry,,Q//66v>>DEEE4((RWV488899
fh/////r   c                    t          ddgddgd          }|                    ddd          }t          ddgddgd          }t          j        ||           d S )NTFr   r   asdbyes)rZ  Tr   r"  s       r   %test_replace_with_dict_with_bool_keysz:TestDataFrameReplace.test_replace_with_dict_with_bool_keys  sn    D%=eT];;<<V599::%UENCCDD
fh/////r   c                    t          ddgddgd          }|                    ddi          }t          j        ||           |d                             ddi          }t          j        ||d                    d S )	Nr   r   rD   r   )Y0Y1replace_stringtestr  )r   r0   r1   r2   r   r  s      r   !test_replace_dict_strings_vs_intsz6TestDataFrameReplace.test_replace_dict_strings_vs_ints  s    q!fQF3344-v677
fb)))D!!#3V"<==
vr$x00000r   c                    t          dddgi          }|                    t          j        t          j         gt          j                  }|}t          j        ||           d S )Nr   T)r   r0   r   re  r   r1   r2   )r9   r]   rrQ   s       r   test_replace_truthyz(TestDataFrameReplace.test_replace_truthy  sV    dD\*++JJ("&11
a#####r   c                   t          dt          t          dd                    i          }|                    dt	          t          t          dd          t          dd                              i          }|                    t	          t          t          dd          t          dd                                        }t          j        ||           d S )Nr   r   r#   r      )r   r   r   r0   dictrg  r1   r2   r"  s       r   -test_nested_dict_overlapping_keys_replace_intzBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_int  s     T%1++../00S$s5A;;a'D'D"E"EFGG::d3uQ{{E!QKK#@#@AABB
fh/////r   c           	        t          j        dd          }|                    t                    }t          j        dd                              t                    }t	          d|i          }|                    t          t          ||                              }|                    dt          t          ||                    i          }t          j	        ||           d S )Nr   r#   r   r  r   )
r   aranger7   r   r   r0   r  rg  r1   r2   )r9   r   astrbstrr]   r?   r@   s          r   -test_nested_dict_overlapping_keys_replace_strzBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_str$  s    IaOOxx}}yA%%c**T{##DT41122::sDT4$9$9:;;
fh/////r   c                v   t          dg di          }|                    ddddi          }t          dg dit                    }t          j        ||           t          dg di          }|                    dddd	i          }t          dg dit                    }t          j        ||           d S )
Nr   r<  YN)TF)r  r  r  r   )r   r   r   r  r   r0   r8   r1   r2   )r9   r]   rn   expects       r   test_replace_swapping_bugz.TestDataFrameReplace.test_replace_swapping_bug.  s    000122jj#c#66788C1@@@
c6***YYY'((jj#33//011C1@@@
c6*****r   c                2   dt          j        ddd          t          j        ddd          t          j        ddd          t          j        dd	d          t          j        ddd          t          j        ddd          t          j        d
dd          dit          g ddg          }t          |j        j                  t          d                                                   k    sJ t          dfd|j        j        D             i          }|j        j        d         dk    sJ d}t          j
        t          |          5  |                              }d d d            n# 1 swxY w Y   t          j        ||           d S )Nfnamei     M)rS  monthfreqr   i  r#   r   i  	   out_augmented_AUG_2011.jsonout_augmented_JAN_2011.jsonout_augmented_MAY_2012.jsonout_augmented_SUBSIDY_WEEK.jsonout_augmented_AUG_2012.jsonout_augmented_MAY_2011.jsonout_augmented_SEP_2013.jsonr  r  r  r  r  r  r  r5   c                ,    g | ]}d          |         S r  r   r^  r_  r   s     r   
<listcomp>z<TestDataFrameReplace.test_replace_period.<locals>.<listcomp>V  !    'O'O'O!'
1'O'O'Or   r   z	Period[M]r   r   )r   Periodr   setr  r\   keysr   r4   r1   r   r   r0   r2   r9   r]   r@   r   r?   r   s        @r   test_replace_periodz(TestDataFrameReplace.test_replace_period9  s   /1yd!RU/V/V/V/1yd!RU/V/V/V/1yd!RU/V/V/V359QS4 4 4 02yd!RU/V/V/V/1yd!RU/V/V/V/1yd!RU/V/V/V
 

    I
 
 
 28?##s1W:??+<+<'='=====g'O'O'O'Orx'O'O'OPQQ#A&+55552'SAAA 	# 	#ZZ]]F	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
fh/////s   E77E;>E;c           
        dt          d          t          d          t          d          t          d          t          d          t          d          t          d          d	it          g d
dg          }t          |j        j                  t          d                                                   k    sJ t          dfd|j        j        D             i          }d}t          j        t          |          5  |	                              }d d d            n# 1 swxY w Y   t          j
        ||           d S )Nr  z2011-08z2011-01z2012-05z2011-04z2012-08z2011-05z2013-09r  r  r  c                ,    g | ]}d          |         S r  r   r  s     r   r  z>TestDataFrameReplace.test_replace_datetime.<locals>.<listcomp>w  r  r   r   r   )r   r   r  r  r\   r  r1   r   r   r0   r2   r  s        @r   test_replace_datetimez*TestDataFrameReplace.test_replace_datetime]  s   /8/C/C/8/C/C/8/C/C3<Y3G3G/8/C/C/8/C/C/8/C/C 

    I
 
 
 28?##s1W:??+<+<'='=====g'O'O'O'Orx'O'O'OPQQ2'SAAA 	# 	#ZZ]]F	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
fh/////s   D''D+.D+c                   t          t          ddd          dt          j        dgd          }|                    t          j        d          }t          t          ddd          t          g d	d
          d          }t          j        ||           |                    d          }t          j        ||           |                    dt          j                  }t          t          ddd          t          j        t          j        dgd          }t          j        ||           |                    t          dd          t          dd                    }t          t          dd          t          dd          t          dd          gdt          j        dgd          }|d         j
                            d          |d<   t          j        ||           |                                }t          j        |j        d<   |                    dt          j        it          dd                    }t          j        ||           |                                }t          j        |j        d<   |                    dt          j        it          dd                    }t          t          dd          t          dd                              d          t          dd          gdt          j        dgd          }|d         j
                            d          |d<   t          j        ||           |                                }t          j        |j        d<   |                    dt          j        it          d                    }t          t          dd          t          d          t          dd          gdt          j        dgd          }t          j        ||           d S )NrG  rD   rH  rI  r   r   r   r   r   r   r   r   r   rL  rM  rN  rO  r$   rP  r/  z
US/Pacific)r   r	   r   r   r0   r   r1   r2   r3   r   rD  as_unitr/   r4   r   r&  
tz_convertr"  s       r   test_replace_datetimetzz,TestDataFrameReplace.test_replace_datetimetz}  s    
A,GGG^ 
 
 BFA&&
A,GGGIIIY777 
 
 	fh///1
fh///Arv&&
A,GGGfbfa( 
 
 	fh///j\222j\222
 
  j\:::j\:::j\:::
 ^ 	
 	
 !(0066
fh///FDbfy/U/U/UVV
fh/// FDbfy/U/U/UVV j\:::j\:::EElSSj\:::
 ^ 	
 	
 !(0066
fh///FDbfy/D/DEE j\:::j))j\:::
 ^ 	
 	
 	fh/////r   c           	        t          |          }t          j        ||                    i                      t          j        ||                    t	          g t
                                         t          j        ||                    di i                     t          j        ||                    t	          di i                               d S )Nr   r   )r   r1   r2   r0   r   r8   )r9   r   r]   s      r    test_replace_with_empty_dictlikez5TestDataFrameReplace.test_replace_with_empty_dictlike  s    w
b"**R..111
b"**VBf-E-E-E"F"FGGG
b"**c2Y"7"7888
b"**VS"I->->"?"?@@@@@r   zto_replace, method, expectedr5  )r   r   r   r   r  )r+        @r  ffillpad)r   r   r   )r   r   )r   r   r   )r   r   r   c                0   t          g ddt          j        dgg dd          }d}t          j        t
          |          5  |                    |d |          }d d d            n# 1 swxY w Y   t          |          }t          j        ||           d S )	Nr  r#   r   r   r   z7The 'method' keyword in DataFrame.replace is deprecatedr   )r[   r,   r6  )r   r   r   r1   r   r   r0   r2   )r9   r[   r6  r@   r]   r   r?   s          r   test_replace_methodz(TestDataFrameReplace.test_replace_method  s    D YYYa^///RRSSG'SAAA 	R 	RZZ:T&ZQQF	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	RX&&
fh/////s   A''A+.A+zreplace_dict, final_datac                N   t          ddgddggddgd          }t          j        |          }t          j        |d d df         ddg	          }|d         dk    rddgnddg}t          j        |d d df         |	          }t          ||d
          }d}t          j        t          |          5  |                    |d          }	d d d            n# 1 swxY w Y   t          j	        |	|           d}
t          j        t          |
          5  t          j	        ||           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   |J t          j	        ||           d S )Nr   r   r   r   r)  )r5   r   r   rD   )
categoriesr   z#with CategoricalDtype is deprecatedr   zHAttributes of DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentTr&   )r   r   arrayr   Categoricalr1   r   r   r0   r2   r   r   AssertionError)r9   replace_dict
final_datar]   r   ex_catr   r@   msg2r?   r   r=   s               r   "test_categorical_replace_with_dictz7TestDataFrameReplace.test_categorical_replace_with_dict  s    AA'#s:NNNXj))
N:aaad+A???',11!Q1vN:aaad+???11--..4'TBBB 	1 	1ZZa00F	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1
fh/// 	 ]>555 	0 	0!"h///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 'TBBB 	E 	E::lAt:DDL	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E###
b(+++++s6   4CCCD66D:=D:FFFzdf, to_replace, expr   r#   r  )r   r   r  )r#   r  r   )456r  r  7)r  r  r  c                    t          |          }t          |          }|                    |          }t          j        ||           d S r%  r   )r9   r]   r[   expr@   r?   s         r   test_replace_commutativez-TestDataFrameReplace.test_replace_commutative$  sD    ( r]]S>>J''
fh/////r   replacer20170827c                   t          dgt                    }d}t          j        t          |          5  |                    ||d          }d d d            n# 1 swxY w Y   t          |g          }t          j        ||           d S )Nr   r   r   r   r   )r   r8   r1   r   r   r0   r2   )r9   r  r]   r   r?   r@   s         r   test_replace_replacer_dtypez0TestDataFrameReplace.test_replace_replacer_dtype>  s     uF+++2'SAAA 	@ 	@ZZhX > >??F	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@hZ((
fh/////s   AA!Ac                    t          dg did          }|                    dd          }t          dg did          }t          j        ||           d S )Ngrp)r   r   rD   r   r#   r  r   r   rF  )rF  r   rD   r   r#   r   r"  s       r   !test_replace_after_convert_dtypesz6TestDataFrameReplace.test_replace_after_convert_dtypesQ  sg    /w???Ar""e%5%5%56gFFF
fh/////r   c                4   t          g dg dd          }d}d}t          j        t          |          5  t	          j        t          |          5  |                    d            d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)r   zb r   )zd ze zf )r   twozZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*zSDataFrame.replace without 'value' and with non-dict-like 'to_replace' is deprecatedr   c                *    |                                  S r%  )strip)r  s    r   <lambda>zFTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>f  s    QWWYY r   )r   r   r   rl  r1   r   r   r0   )r9   r]   r   r  s       r   test_replace_invalid_to_replacez4TestDataFrameReplace.test_replace_invalid_to_replaceX  s7    ///8J8J8JKKLL0 	
) 	 ]9C000 	0 	0+MFFF 0 0

..///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s5   BA5)B5A9	9B<A9	=BBB)floatr   r   r  r  r,   c                    t          t          j        d          |          }|                    d t          j         t          j        g|          }t          j        ||           d S )Nr   r   r  )r   r   eyer0   re  r1   r2   )r9   r   r,   r]   r?   s        r   "test_replace_no_replacement_dtypesz7TestDataFrameReplace.test_replace_no_replacement_dtypesh  sY     rvayy...rvgrv'>eLL
fb)))))r   replacementc                $   t          g dg dg dd          }t          d          |_        t          g dg d|ddgd          }t          d          |_        |d                             d	|          |d<   t	          j        ||           d S )
Nr:  r  )r   r  r  )r$   A1r   AABr  r  r   r   )r   r   r5   r0   r1   r2   )r9   r  r?   r@   s       r   #test_replace_with_duplicate_columnsz8TestDataFrameReplace.test_replace_with_duplicate_columnsp  s     ))))))LLMMe))999KA3FGG
 
  ;;Sk))![99s
fh/////r   z2020-01c                    t          d|gdz  i          }t          j        ||          }|                                }|                    dd          }t          j        ||           d S )NPerrD   r   r   )r   r1   r   r/   r0   r   )r9   r   r,   r   r@   r?   s         r   test_replace_ea_ignore_floatz1TestDataFrameReplace.test_replace_ea_ignore_float  se     !,--jo..88::S#&&
&)))))r   c                h   g dg dg dg dg dd}t          |                              ddd	          }|d
         j                            g dd          |d
<   |d         j                            g dd          |d<   g dg dg dg dg dd}t          |                              ddd	          }|d
         j                            g dd          |d
<   |d         j                            g dd          |d<   d}t	          j        t          |          5  |                    dd          }|                    dd          }|                    dd          }ddd           n# 1 swxY w Y   |                    dddd          }t	          j        ||           dS )zt
        Test for #23305: to ensure category dtypes are maintained
        after replace with direct values
        )r   r   rD   r   )r   r   r   r   )g      ?g      @g      @g      @)cat1cat2cat3cat4)obj1obj2obj3obj4)r   r   r   col4col5r   r)  )r   r  r   T)orderedr  )r   r   r   z)r  catXr  r  )obj9r  r  r  OThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtyper   r   r  r  r  r  r  Nr   r   r   )r   r   r  )	r   r7   catreorder_categoriesr1   r   r   r0   r2   r9   
input_dictinput_dfexpected_dictr@   r   r?   s          r    test_replace_value_category_typez5TestDataFrameReplace.test_replace_value_category_type  s    !LL((((((444444
 

 *---4444
 
 $F+/BB   $ C 
 
 $F+/BB,,,d C 
 
 !LL((((((444444
 
 -0007744
 
 $F+/BB   $ C 
 
 $F+/BB,,,d C 
 
$ 	 'SAAA 	6 	6''S11H''77H%%ff55F	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6
 ERRSS
fh/////s   *AE99E= E=c                   dgdgdgd}t          |                              dddd          }dgdgd	gd}t          |                              dddd          }d
}t          j        t          |          5  |                    ddd	d          }ddd           n# 1 swxY w Y   t          j        ||           dS )zf
        Test to ensure category dtypes are maintained
        after replace with dict values
        r   r  r  r   r  r)  r  r  r  r  r   )r   r  r  N)r   r7   r1   r   r   r0   r2   r  s          r   test_replace_dict_category_typez4TestDataFrameReplace.test_replace_dict_category_type  sJ     #efXxHH
*---44ZHH
 

 #&6(KK-00077ZHH
 
$ 	 'SAAA 	R 	R%%C&P&PQQF	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	fh/////s   >B$$B(+B(c                    t          g d          }t          j        d          }|                    |did          }t          g d          }t	          j        ||           d S )Nr   z^a$r  Tra   )r  r   r   )r   recompiler0   r1   r2   )r9   r]   rY   r?   r@   s        r    test_replace_with_compiled_regexz5TestDataFrameReplace.test_replace_with_compiled_regex  se    ''
5!!UCL55___--
fh/////r   c                .   t          dt          j        dd          t          j        dd          gi          }|                    dt          j        dd          dii          }t          dddgit                    }t          j        ||           d S )Nr   r   r   r  r   )r   r   Intervalr0   r8   r1   r2   r"  s       r   test_replace_intervalsz+TestDataFrameReplace.test_replace_intervals  s    bk!Q//Q1B1BCDEES2;q!#4#4c":;<<cC:.f===
fh/////r   c                    dddddi}t          dt          j        d          i          }|                    |          }t          dt          j        d          i          }t	          j        ||           d S )Npositiver   r   )u   正面u   中立u   负面rD   )r   r   r  r0   r1   r2   )r9   columns_values_mapr   r?   r@   s        r   test_replace_unicodez)TestDataFrameReplace.test_replace_unicode  sv    (Q!q*Q*QRRWQZZ011/00j"'!**566
fh/////r   c                     |dg                               d          }|                                }|                    d t          j        i          }t          j        ||           d S )NrH   z|S)r7   r/   r0   r   r   r1   r   )r9   r   r   r@   s       r   test_replace_bytesz'TestDataFrameReplace.test_replace_bytes  s]    ose$$++D1188::kk4.))
X&&&&&r   z!data, to_replace, value, expectedr   boxc                     ||          } ||          }|                      ||          |          }t          j        ||           d S r%  r   )	r9   r   r[   r,   r@   r3  r   r   r?   s	            r   !test_replace_list_with_mixed_typez6TestDataFrameReplace.test_replace_list_with_mixed_type  sU     od##"?8,,SS__e44
)))))r   valc                4   t          dd|gi          }|                    |d           }t          ddd git                    }t          j        ||           t          dd|gi          }|                    |d i          }t          j        ||           d S )Nr   r   r   r  )r9   r6  r]   r?   r@   s        r   %test_replace_value_none_dtype_numericz:TestDataFrameReplace.test_replace_value_none_dtype_numeric  s     aX''C&&cAt9-V<<<
fh///aX''S$K((
fh/////r   c                    t          ddt          j        gi          }t          ddt          j        giddg          }|                    dd          }t	          j        ||           d S )Nr   nilzanything elser   r   r   )r   r   r!  r0   r1   r2   )r9   r   r@   r?   s       r   test_replace_with_nil_naz-TestDataFrameReplace.test_replace_with_nil_na  sh    uben-..cORU#;<QFKKKUO44
h/////r   N)e__name__
__module____qualname__rA   r   markparametrizer   r   r^   rp   rt   rz   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  r  r#  r'  r-  r3  r8  r   int32int16r   r   r	   r   DatetimeIndexr  rU  ri  rm  ro  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  int8r7  r   r  r  r  r  r  r  r+  r  r#  r%  r)  r,  r0  r2  r   tupler  r5  r8  r;  r   r   r   r!   r!      s       A A A2 [$
 h' sBFBF3 A-000  
+*%///<<<222  %'"///000000 1!	
$ $J [Yu66[3dE]CC0 0 DC 76K$ $N0"'* '* '*R&* &* &*PC+ C+ C+J+ + +*0 0 0	0 	0 	0+ + +>+ + ++ + + + + +$) ) ) [BF,,BBF.C.CD 0 0 0& [Z)J)J)JKK0 0 LK0 ["U^3S11E5>B]]Xru-RUBE/BC	
 	* 	* 	*0 0 06* * *>4 4 4&0 0 0(	+ 	+ 	+G G G., , ,*0 0 0&0 0 04
0 
0 
02 2 2 [W&E&E&EFF0 0 GF0	0 	0 	00 0 00 0 00 0 00 0 0&* * *(J J J& [,Y			*++Q99fiii=P3Q3QR	6999-RX>>>	6999-RX>>>	 	6999-RX>>>	6999-RX>>>	 	7$7$7$7899	7$6$6$6788	 	9lll344	9lll344	 	$ee (q" 5 5 (q" 5 5 (q" 5 5' '
 
 q"%%q"%%	<q"0E0E/F/J)K)KLMM$ 	((4R"8"8!95'JJKK	((4R"8"8!95'JJKK	 	4((4Q"7"7!89::r1%%r1%%	4((4Q"7"7!89::	 	'Z
A,OOO^   	*666	*666	-R- )	* F F F )	* F F F )	* F F F  "'$--^	 	 0 	As8aX.//	As8aX.//	 	As8aX.//	As8aX.//	 	As8aX.//	As8aX.//	 	As8aX.//	As8aX.//	Cg	
j jV0 0Wj jV0&+ &+ &+P0 0 00  1 1 101 1 14	. 	. 	.
' 
' 
'0 0 0* * *
0 0 00 0 01 1 1$ $ $0 0 00 0 0	+ 	+ 	+"0 "0 "0H0 0 0@R0 R0 R0hA A A [&yyy261~OOOTTUiioooOOOLL
 '!RVQoooVVWAiiq"&!n???KK Aiiq"&!n???KK iiq"&!n???KK c
iiq"&!n???KK/	
 @0 0A @0 ["

aVaV,	-aa0@0@Aq6Aq6BR/ST , ,	 ,8 [ #III66!"""III66 #OOO<<#.."OOO<<	
 	0 	0 	0 [Ij!!BGAJJBHQKKBJqMMBJqMM	
	 	0 0	 	00 0 00 0 0  [W&W&W&WXX[Wrvruo66* * 76 YX* []RVQK880 0 980 [Wyry';';[R[A=N=N&OPP* * QP*70 70 70r0 0 0>0 0 00 0 00 0 0' ' ' [+S3%!qc"S1#sQC USEA3&UQC!se$		
  [UT5"($;<<* * =< * [UQ$455	0 	0 65	00 0 0 0 0r   r!   c            
      D   e Zd Zej                            d ed           ed          d ed           e ed                    dg          ej                            ddej	        fdg          ej                            d	d
dg          ej                            dd
dg          ej                            dd
dg          d                                                             Z
ej                            ddd
g          d             Zd Zd Zd ZdS )TestDataFrameReplaceRegexr   r   rW   r   r   zto_replace,valuerB   )rI   z\1\1\1compile_regexTFregex_kwargr'   c                \   t          |          }|                                }|rt          j        |          }|r|}	d }nd}	|                    ||||	          }
|r|
J |}
|t
          j        u rt
          j        }nd}||j        |d         dk    df<   t          j	        |
|           d S )NTrr   z...r   rw   )
r   r/   r'  r(  r0   r   r   r-   r1   r2   )r9   r   r[   r,   rH  rI  r'   r]   r@   rY   r?   expected_replace_vals               r   test_regex_replace_scalarz3TestDataFrameReplaceRegex.test_regex_replace_scalar'  s      t__7799 	0J//J 	EJJEJweLL 	>>>FBF??#%6  #( 2FXc]c)3./
fh/////r   rY   c                *   t          dgdgd          }t          dgdgd          }d}t          j        t          |          5  |                    dd|          }d d d            n# 1 swxY w Y   t          j        ||           t          dgdgd          }t          dgdgd          }t          j        t          |          5  |                    dd|          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr  r   r   r   r   )r[   r,   rY   1)r   r1   r   r   r0   r2   )	r9   rY   r   expected_df1r   
result_df1df2expected_df2
result_df2s	            r   test_replace_regex_dtype_framez8TestDataFrameReplaceRegex.test_replace_regex_dtype_frameQ  s    se3%0011 s!!5!5661'SAAA 	K 	K1EJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K
j,777se3%0011 s#!7!788'SAAA 	K 	K1EJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K
j,77777s$   A++A/2A/C33C7:C7c                    t          g dg dd          }|                    dt          j        d          }t          dt          j        dgt          j        ddgd          }t	          j        ||           d S )Nr  )r   r   r   r   r   r  r   r   r"  s       r   +test_replace_with_value_also_being_replacedzETestDataFrameReplaceRegex.test_replace_with_value_also_being_replaceda  sx    YYYYYY7788bf--..Arvq>AGGHH
fh/////r   c                    t          g dg ddd          }|                                }|                    ddgdd g	          }t          j        ||           d S )
N)r   r  Nthree)r   Nr  rX  r   r)  r   rw   def_r  )r   r/   r0   r1   r2   r   s       r   'test_replace_categorical_no_replacementzATestDataFrameReplaceRegex.test_replace_categorical_no_replacementh  s|    222222  
 
 
 7799U|C;GG
fh/////r   c                d   t          dgdd          }|r t          |j        j                  dk    sJ nt          |j        j                  dk    sJ |                    dddd	           |r!t          |j        j                  dk    sJ d S t          |j        j                  dk    sJ d S )
Nr   r   r   r   r   r   r   T)r[   r,   r'   rY   )r   len_mgrblocksr0   )r9   r   r]   s      r   test_replace_object_splittingz7TestDataFrameReplaceRegex.test_replace_object_splittingv  s    cU--.. 	,rw~&&!+++++rw~&&!++++


hb$d
KKK 	,rw~&&!++++++rw~&&!++++++r   N)r<  r=  r>  r   r?  r@  r   r   r   r   rL  rT  rV  r[  r`  r   r   r   rG  rG  &  s       [$v,,TT&\\22$v,,TT%%((^^44	
  [k2624NO  [_tUm<<[]T5M::[Yu660 0 76 ;: =<  0: [Wudm448 8 5480 0 00 0 0, , , , ,r   rG  )r
   r   )r
   r   )
__future__r   r   r'  numpyr   r   pandasr   r   r   r   r   r	   pandas._testing_testingr1   fixturer   r   r!   rG  r   r   r   <module>rg     sb   " " " " " "       				                             4 4 4 4 R R R RE0 E0 E0 E0 E0 E0 E0 E0P0[, [, [, [, [, [, [, [, [, [,r   