
    MhN                        S SK Jr  S SKJr  S SKrS SKrS SKrS SKJr  S SK	r
S SK	JrJrJrJrJr  S SKJr  \R&                  SS j5       r\R&                  SS j5       r " S S	5      r " S
 S5      rg)    )annotations)datetimeN)using_pyarrow_string_dtype)	DataFrameIndexSeries	Timestamp
date_rangec                 B    [        [        S5      5      [        S5      S.$ )N   ab..ab)listrange     Y/var/www/html/env/lib/python3.13/site-packages/pandas/tests/frame/methods/test_replace.pymix_abr      s    eAhd6l33r   c                 h    [        [        S5      5      [        S5      SS[        R                  S/S.$ )Nr   r   r   r   dr   r   c)r   r   npnanr   r   r   mix_abcr      s(    eAhd6l#sBFFC9PQQr   c                     \ rS rSr\R
                  R                  \" 5       SS9S 5       r\R
                  R                  SSS/\
R                  S/S	S
\
R                  \
R                  /S/S-  S/-   / SQS.4SS/SS// SQ/ SQ/ SQS.4SS/SS// SQ/ SQ/ SQS.4/5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      S 5       5       5       rS rS rS rS  rS! r\R
                  R                  \" 5       SS9S" 5       r\R
                  R                  \" 5       SS9S# 5       r\R
                  R                  \" 5       SS9S$ 5       r\R
                  R                  \" 5       SS9S% 5       rS& rS' r\R
                  R                  S(\
R                  S)S*.S)\
R                  S+./5      S, 5       r\R
                  R                  S-/ S.Q5      S/ 5       r\R
                  R                  S0S1S2/S3S4S5.S6S7/4/ S8QS9\R6                  0S4\R6                  \R6                  /4/5      S: 5       rS; rS< rS= rS> r \R
                  R                  \" 5       SS9S? 5       r!\R
                  R                  \" 5       SS9S@ 5       r"SA r#SB r$SC r%SD r&SE r'\R
                  R                  SF/ SGQ5      SH 5       r(SI r)SJ r*SK r+SL r,SM r-SN r.SO r/\R
                  R                  SP\0" SQ/ SRQ05      SSST\0" SQ/ SUQ05      4\0" SQ/ SRQ0\
Rb                  SV9SSST\0" SQ/ SUQ0\
Rb                  SV94\0" SQ/ SRQ0\
Rd                  SV9SSST\0" SQ/ SUQ0\
Rd                  SV94\0" SW/ SXQ05      SS\0" SW/ SYQ05      4\0" SZ/ S[Q05      S\ST\0" SZ/ S]Q05      4\0" S^\3" \4" S_S`Sa5      \4" S_SbSa5      \4" S_S`Sa5      /5      05      \4" S_S`Sa5      \4" S_SbSa5      \0" S^\3" \4" S_SbSa5      /S-  5      05      4\0" \4" ScSdSe5      /Sf/Sg.5      SfSh\0" \4" ScSdSe5      /Sh/Sg.5      4\0" Si\4" SjSkSS5      /05      \4" SjSkSS5      \4" SlSkSS5      \0" Si\4" SlSkSS5      /05      4\0" \5" SmSSnSo9ST\
R                  Sp/Sq.5      \6" SrSnSs9\6" StSnSs9\0" \Rn                  " \6" SmSnSs9\6" StSnSs9\6" SuSnSs9/5      Rq                  Sv5      ST\
R                  Sp/Sq.5      4\0" SSSw/SpSx//5      SwS`\0" S`Sy/SpSx//5      4\0" SSSw/SpSx//5      SSS`\0" S`Sy/SpSx//5      4\0" SSSw/SpSx//5      SwSy\0" S`Sy/SpSx//5      4\0" SSSw/SpSx//5      SSSy\0" S`Sy/SpSx//5      4/5      Sz 5       r9S{ r:\R
                  R                  \" 5       SS9S| 5       r;S} r<\R
                  R                  \" 5       SS9S~ 5       r=\R
                  R                  \" 5       SS9S 5       r>S r?S r@S rAS rBS rCS rDS rES rFS rGS rH\R
                  R                  \" 5       SS9S 5       rI\R
                  R                  \" 5       SS9S 5       rJ\R
                  R                  \" 5       SS9S 5       rKS rLS rM\R
                  R                  SSTS/ SQS`\
R                  Sb// SQS.4\
R                  S/ SQ/ SQ/ SQS.4S4S/ SQS`\
R                  Sb// SQS.4STSp/S/ SQS`\
R                  Sb// SQS.4SSSp/S/ SQS`\
R                  Sb// SQS.4SS/ SQS`\
R                  Sb// SQS.4S
S3/S/ SQS`\
R                  Sb// SQS.4/5      S 5       rN\R
                  R                  SSSSSS5.SS/SpSp//4SSSpS5.SSS/SpS//4/5      S 5       rO\R
                  R                  S/ SRQ/ SQS.S`SSbS./ SRQ/ SQS.4/ SRQ/ SQS.SSSS./ SRQ/ SQS.4/5      S 5       rP\R
                  R                  \" 5       SS9\R
                  R                  S\6" S5      \
R                  " SS5      \
Rd                  " SS5      \
R                  " SS5      \
R                  " SS5      /5      S 5       5       rTS rUS rV\R
                  R                  SF/ SQ5      \R
                  R                  S\
R                  \R6                  /5      S 5       5       rW\R
                  R                  S\
R                  S`/5      S 5       rX\R
                  R                  S\R                  " S5      \R                  " STS`5      /5      S 5       r[S r\S r]S r^S r_S r`S ra\R
                  R                  SSS/Sw/ST/ST/4SS/SS/ST/ST/4Sw/Sw/ST/S/4Sw/SS/ST/S/4/5      \R
                  R                  S\b\c\
R                  /5      S 5       5       re\R
                  R                  SSp\
R                  Sx/5      S 5       rfS rgSrhg)TestDataFrameReplace    can't set float into stringreasonc                   [         R                  UR                  UR                  S S S4'   [         R                  UR                  UR                  SS  S4'   UR	                  5       nUR                  [         R                  SSS9nUb   e[        R                  " X1R                  S5      5        Un[         R                  UR                  SS2UR                  R                  S5      4'   [         R                  UR                  S	S 2UR                  R                  S5      4'   UR                  [         R                  S5      nUR                  SS
9n[        R                  " Xg5        UR	                  5       nUR                  [         R                  /S/SS9nUb   e[        R                  " X1R                  S5      5        g )N   Ar   Tinplace   foovalue)r   r   locindexcopyreplacetmassert_frame_equalfillnailoccolumnsget_loc)selfdatetime_framefloat_string_frametsframereturn_valuemfresultexpecteds           r   test_replace_inplace)TestDataFrameReplace.test_replace_inplace!   sz    =?FF>//3S89=?VV>//4c9: %%'rvvq$?###
g'<'<Q'?@  3566"bjj((//013bjj((--.#++BFFA6%,,1,5
f/ %%'x!dC###
g'<'<Q'?@r   zto_replace,values,expected\s*\.\s*ze|f|gcrapr   r      hrF   rD   lor   
\s*(\.)\s*z(e|f|g)\1\1\1_crapr   r   ..rN   )e_crapf_crapg_craprF   )rF   rO   rH   rI   erD   fgrF   r)   TFuse_value_regex_argsc                   [        [        S5      [        S5      [        S5      S.5      nU(       a  UR                  X!US9nOUR                  XSUS9nU(       a  Ub   eUn[        U5      n[        R                  " Xs5        g )Nr   efghhelor   )r.   regexr)   TrZ   r)   )r   r   r2   r3   r4   )r9   
to_replacevaluesr@   r)   rV   dfr?   s           r   test_regex_replace_list_obj0TestDataFrameReplace.test_regex_replace_list_obj;   su    T T&\V4<PQZZfZPFZZ
$ZPF>!>FX&
f/r   c                   [        U5      nSS/n[        R                  S/n[        [	        S5      5      [        S5      [        S5      S.n[        U5      nUR                  X4SS	9n[        US   SS
[        R                  [        R                  // SQS.5      n[        R                  " Xx5        SS/nSS/nUR                  X4SS	9n[        US   / SQS.5      n[        R                  " Xx5        / SQn/ SQnUR                  X4SS	9n[        US   / SQS.5      n[        R                  " Xx5        / SQn/ SQnUR                  X4S9n[        US   / SQS.5      n[        R                  " Xx5        g )NrC   r   rD   r   r   halor   TrZ   r   rG   rJ   (a|b)rK   rL   a_crapb_craprN   rN   r   rJ   r   z(b)rK   rD   rL   rD   rg   rN   rN   rZ   r.   )r   r   r   r   r   r2   r3   r4   )	r9   r   dfmixto_replace_resr]   mix2dfmix2resexpecs	            r   test_regex_replace_list_mixed2TestDataFrameReplace.test_regex_replace_list_mixeds   s`   &! &t,&&&!%(^$v,T&\J4nn^4n@#Yc2662662,
 	c) (2:&mmN$m?s2RST
c) 7/mmN$m?s2PQR
c)6/mm.m?s2PQR
c)r   c                (   [        U5      nSS/n[        R                  S/nUR                  5       nUR	                  X4SSS9nUb   e[        US   SS[        R                  [        R                  /S.5      n[
        R                  " XW5        SS	/nS
S/nUR                  5       nUR	                  X4SSS9nUb   e[        US   / SQS.5      n[
        R                  " XW5        / SQn/ SQnUR                  5       nUR	                  X4SSS9nUb   e[        US   / SQS.5      n[
        R                  " XW5        / SQn/ SQnUR                  5       nUR	                  X4SS9nUb   e[        US   / SQS.5      n[
        R                  " XW5        g )NrC   r   rD   Tr)   rZ   r   r   rJ   rd   rK   rL   re   rh   ri   rj   rZ   r.   r)   )r   r   r   r1   r2   r3   r4   )r9   r   rl   rm   r]   rp   r=   rq   s           r   %test_regex_replace_list_mixed_inplace:TestDataFrameReplace.test_regex_replace_list_mixed_inplace   s   &! &t,&&&!jjl{{>4t{T###s632OPQ
c) (2:&jjl{{>4t{T###s2RST
c) 7/jjl{{>4t{T###s2PQR
c)6/jjl{{t{T###s2PQR
c)r   c                F   [        U5      nUR                  SS0S[        R                  0SS9nUR	                  5       nUR                  SS0S[        R                  0SSS9nUb   e[        US   SS[        R                  [        R                  /US   S.5      n[
        R                  " X65        [
        R                  " XF5        UR                  SS	0SS
0SS9nUR	                  5       nUR                  SS	0SS
0SSS9nUb   e[        US   / SQUS   S.5      n[
        R                  " X65        [
        R                  " XF5        UR                  SS	0SS
0S9nUR	                  5       nUR                  SS	0SS
0SS9nUb   e[        US   / SQUS   S.5      n[
        R                  " X65        [
        R                  " XF5        [        US   [        R                  SSS/US   S.5      nUR                  SS[        R                  0SS9nUR	                  5       nUR                  SS[        R                  0SSS9nUb   e[
        R                  " X65        [
        R                  " XF5        UR                  SS[        R                  0SS9nUR	                  5       nUR                  SS[        R                  0SS9nUb   e[        US   [        R                  SSS/US   S.5      n[
        R                  " X65        [
        R                  " XF5        g )Nr   rC   Trc   ru   r   r   r   rJ   z\1ty)r   r   .tyrz   rk   rv   .r[   r   r2   r   r   r1   r3   r4   )r9   r   rl   rp   res2r=   rq   s          r   test_regex_replace_dict_mixed2TestDataFrameReplace.test_regex_replace_dict_mixed   s   '" mmS+.bffTmJzz|||+bfft4 $ 
 ####,c3%?gclS
 	c)
d* mmS-03.mMzz|||- 3.$d $ 
 ####,%=GCLQ
 	c)
d*mm3"6sGnmMzz|||&sGnd $ 
 ####,%=GCLQ
 	c)
d* #,bffc3%<73<P
 mmC#rvvdm;zz|||C#rvvdD|Q###
c)
d*mmC#rvvdm;zz|||#c266]D|Q####,bffc3%<73<P
 	c)
d*r   c                   [        U5      nUR                  SS[        R                  00SS9nUR	                  5       nUR	                  5       nUR                  SS[        R                  00SSS9nUb   eUR                  SS[        R                  00S9nUR                  SS[        R                  00SS9nUb   e[        US   SS[        R                  [        R                  /US   S	.5      n[
        R                  " X85        [
        R                  " XH5        [
        R                  " Xx5        [
        R                  " XX5        g )
Nr   rC   Trc   ru   r[   r   r   r   r|   )	r9   r   rl   rp   r}   res4r=   res3rq   s	            r   test_regex_replace_dict_nested3TestDataFrameReplace.test_regex_replace_dict_nested	  s*   '"mmS;"78mEzz|zz|||;'($d $ 
 ###}}C+rvv)>#?}@||3bff0E*FPT|U####,c3%?gclS
 	c)
d*
d*
d*r   c                V   Un[        S/ SQ0US9nU(       aJ  US:X  aD  [        R                  " [        SS9   UR	                  SS0S	S
9nS S S 5        [        S/ SQ05      nO UR	                  SS0S	S
9n[        S/ SQ0US9n[        R
                  " WU5        g ! , (       d  f       NV= f)Nfirst)abcbcacabdtypeobjectDowncastingmatchr   r{   Trc   )z.bczbc.zc.br   r3   assert_produces_warningFutureWarningr2   r4   )r9   any_string_dtypeusing_infer_stringr   r^   r?   r@   s          r   2test_regex_replace_dict_nested_non_first_characterGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_character  s     !!67uE"2h">++MOS#Jd; P '+@!ABH ZZc
$Z7F '+@!AOH
fh/ POs   B
B(c                   [        / SQSS.5      n[        / SQSS.5      nSn[        R                  " [        US9   UR	                  SSS	S
.05      nS S S 5        [        R
                  " WU5        g ! , (       d  f       N&= f)N)QTr   r   r      )Typetmp)r      r   r   r   !Downcasting behavior in `replace`r   r   r   r   )r   r   r   )r9   r^   r@   msgr?   s        r   %test_regex_replace_dict_nested_gh4115:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115.  sp      9!DEoa@A1''SAZZqq)9 :;F B
fh/ BAs   A33
Bc                   [        U5      n[        US   [        R                  " [        R                  /S-  5      [        R                  [        R                  [        R                  S/S.5      nSn[        R
                  " [        US9   UR                  SS/[        R                  S	S
9nS S S 5        UR                  5       nUR                  5       n[        R
                  " [        US9   UR                  SS/[        R                  S	S	S9nS S S 5        Wb   e[        R
                  " [        US9   UR                  SS/[        R                  S	S9nS S S 5        Ub   e[        R                  " WU5        [        R                  " Xc5        [        R                  " Xs5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nz= f)Nr   r   r   r   r   r   rC   za|bTrc   r[   rv   )
r   r   arrayr   r3   r   r   r2   r1   r4   )	r9   r   r^   rq   r   rp   r}   r   r=   s	            r   !test_regex_replace_list_to_scalar6TestDataFrameReplace.test_regex_replace_list_to_scalar9  s|    wS\XXrvvhl+ffbffbffc2
 2''SA**k51266*FC Bwwywwy''SA<<e$bffD$ ( L B ###''SA<<"E*"&&$ ( L B ###
c5)
d*
d*! BA BA
 BAs$   "F,0#F>9"G,
F;>
G
Gc                   [        U5      nUR                  SSSS9nUR                  5       nUR                  SSSSS9nUb   eUR                  5       nUR                  SSSS9nUb   e[        US   / SQUS	   S
.5      n[        R                  " X75        [        R                  " XG5        [        R                  " Xg5        g )NrC   r   Trc   ru   rv   r   )r   r   r   r   r   r   )r   r2   r1   r3   r4   r9   r   r^   rp   r}   r=   r   rq   s           r   !test_regex_replace_str_to_numeric6TestDataFrameReplace.test_regex_replace_str_to_numericX  s    
 wjjatj4wwy||KD|M###wwy||+Q|M###3C'RU,WX
c)
d*
d*r   c                   [        U5      nUR                  SS/SSS9nUR                  5       nUR                  SS/SSSS9nUb   eUR                  5       nUR                  SS/SSS9nUb   e[        US   / S	QSS[        R                  S
/S.5      n[
        R                  " X75        [
        R                  " XG5        [
        R                  " Xg5        g )NrC   r   r   Trc   r[   rv   r   )r   r   r   r   r   r   )r   r2   r1   r   r   r3   r4   r   s           r   (test_regex_replace_regex_list_to_numeric=TestDataFrameReplace.test_regex_replace_regex_list_to_numericj  s     wjj+s+Qdj;wwy||[#$6t|T###wwy||;*<At|T####,^32663:OP
 	c)
d*
d*r   c                   [        U5      n[        SS05      n[        S[        R                  05      nUR	                  X4SS9nUR                  5       nUR	                  X4SSS9nUb   eUR                  5       nUR	                  X4SS9nUb   e[        US   SS[        R                  [        R                  /US   S	.5      n	[        R                  " XY5        [        R                  " Xi5        [        R                  " X5        g )
Nr   rC   Trc   ru   rv   r   r   r   )r   r   r   r   r2   r1   r3   r4   )
r9   r   r^   s1s2rp   r}   r=   r   rq   s
             r   $test_regex_replace_series_of_regexes9TestDataFrameReplace.test_regex_replace_series_of_regexes}  s    wS+&'S"&&M"jjtj,wwy||BD|E###wwy||"|E####,c3%?gclS
 	c)
d*
d*r   c                    [        U5      n[        / SQUS   US   S.5      nUR                  SS5      n[        R                  " XC5        UR                  R
                  [        R                  :X  d   eg )N)r   r   r   rE   r   r   r   r   r   )r   r2   r3   r4   r   r   r   object_)r9   r   r^   rq   rp   s        r   /test_regex_replace_numeric_to_object_conversionDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversion  s^    wWS\PSUVjjC 
c)uu{{bjj(((r   r\    )r   ,)r   r   c                    [        / SQ/ SQ/ SQS.5      nUR                  US9n[        / SQS[        R                  S// SQS.5      n[        R
                  " X45        g )	N)z1,000r   3)r   r   r   r   col1col2col3rc   )1000r   r   r   r   r   r2   r   r   r3   r4   )r9   r\   r^   r?   r@   s        r   +test_joint_simple_replace_and_regex_replace@TestDataFrameReplace.test_joint_simple_replace_and_regex_replace  sa    
 +&'
 *-*bffc*'
 	f/r   metachar)z[]z()z\dz\wz\sc                    [        SUS/05      nUR                  SUS005      n[        SSS/05      n[        R                  " X45        g )Nr   elseparenr   r2   r3   r4   )r9   r   r^   r?   r@   s        r   test_replace_regex_metachar0TestDataFrameReplace.test_replace_regex_metachar  sP    h/01S8W"567cGV#456
f/r   zdata,to_replace,expectedxaxxbxr   r   r   xcxxdx)r   r   r   ^\s*$c                   UnU" XS9n	U(       a  US:X  a  [        U5      S:  aK  [        U	[        5      (       a6  UR                  R	                  [
        R                  R                  SS95        [        R                  " [        SS9   U	R                  USS	9n
S
nS S S 5        OU	R                  USS	9n
U" X8S9n[        R                  " W
U5        g ! , (       d  f       N,= f)Nr   r   r   z=object input array that gets downcasted raises on second passr"   r   r   Trc   zstring[pyarrow_numpy])len
isinstancer   node
add_markerpytestmarkxfailr3   r   r   r2   assert_equal)r9   datar\   r@   frame_or_seriesr   r   requestr   objr?   s              r   test_regex_replace_string_types4TestDataFrameReplace.test_regex_replace_string_types  s    $ !d0"2h">:"z#y'A'A''KK%% & &  ++MOZt</ PO [[4[8F"89
) POs   	C
C!c                b   [         R                  UR                  UR                  S S S4'   [         R                  UR                  UR                  SS  S4'   UR	                  [         R                  S5      n[
        R                  " X!R                  S5      5        [
        R                  " UR	                  S[         R                  5      U5        [         R                  UR                  UR                  S S S4'   [         R                  UR                  UR                  SS  S4'   SUR                  UR                  S S S4'   [        SS/S9n[
        R                  " X3R	                  SS	5      5        [        S
[        R                  " S5      4S[        R                  " S5      4/5      nUR	                  S
[         R                  5      n[        [         R                  [        R                  " S5      4S[        R                  " S5      4/5      n[
        R                  " XE5        g )Nr%   r&   r'       חBr   r   r0      -2015010120150102)r   r   r/   r0   r2   r3   r4   r5   r   pdto_datetime)r9   r:   zero_filledr^   df1expected_dfs         r   test_replace!TestDataFrameReplace.test_replace  s   <>FF>//3S89=?VV>//4c9:$,,RVVT:
k+@+@+FG
k11$?P<>FF>//3S89=?VV>//4c9:<@>//3S89 c3Z(
b**Q"23 2>>*-.bnnZ6P0QR
 jjbff%ffbnnZ01C
9S3TU
 	c/r   c                   [        S5      [        S5      [        S5      S.n[        U5      nSS/n[        R                  S/nUR	                  X45      n[        SS	[        R                  [        R                  // S
Q/ SQS.5      n[
        R                  " XV5        SS/nSS/nUR	                  X45      n[        / SQ/ SQ/ SQS.5      n[
        R                  " XV5        g )Nr   rX   rY   r   r{   rR   rD   r   r   rS   rG   rT   rN   rM   )rR   rD   rU   rF   )rF   rR   rH   rI   )r   r   r   r   r2   r3   r4   )r9   r   dfobjrm   r]   rp   rq   s          r   test_replace_list&TestDataFrameReplace.test_replace_list  s    LtF|$v,G# &&&!mmN33/,,
 	c) !mmN3+,)
 	c)r   c                   [        SS// [        R                  S//5      n[        SU05      n[        R
                  " X15      nUnUR                  / [        R                  5      n[        R                  " XT5        Sn[        R                  " [        UR                  SS9S9   UR                  [        R                  / 05        S S S 5        [        R                  " [        UR                  S	S9S9   UR                  [        R                  S
S/05        S S S 5        g ! , (       d  f       Na= f! , (       d  f       g = f)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   r3   get_objr2   r   r   raises
ValueErrorformat)r9   r   serr   r@   r?   r   s          r   test_replace_with_empty_list1TestDataFrameReplace.test_replace_with_empty_list  s    sCj"bffqc23%jj.R(
)I 	 ]]:SZZQZ-?@KK% A]]:SZZQZ-?@KK'5!123 A@ A@@@s   $"D!4$D2!
D/2
E c                B   [        SSS.SSS.S.5      nUR                  SSSS.5      n[        SSS.SSS.S.5      n[        R                  " X#5        UR                  SUR	                  5       5      n[        R                  " X#5        [        SSS.SSS.S.5      n[        SSS.5      nUR                  USSS.5      n[        SSS.SSS.S.5      n[        R                  " X#5        UR                  XAR	                  5       5      n[        R                  " X#5        g )	N        r   r          @r   )zeroone      ?      ?)r   r2   r3   r4   meanr   )r9   r^   r?   r@   ss        r   test_replace_series_dict-TestDataFrameReplace.test_replace_series_dict%  s   c 21;MNOAC89Ca&8sQTAUVW
f/Arwwy)
f/ c 21;MNOC,-AC89Ca&8sQTAUVW
f/Awwy)
f/r   c                <   [        / SQ/ SQ/5      nSSSS.nSn[        R                  " [        US9   UR	                  U5      nS S S 5        [        [        R                  /S-  5      nWR                  n[        R                  " XV5        g ! , (       d  f       NN= f)N)r+   barbah)r  r+   r	  r   r   rE   "Downcasting behavior in `replace` r   )
r   r3   r   r   r2   r   r   int64dtypesassert_series_equal)r9   r^   mr   reprq   rp   s          r   test_replace_convert)TestDataFrameReplace.test_replace_convert9  s~    
 -/DEFa*2''SA**Q-C BzA~&jj
u*	 BAs   B
Bc                   Un[         R                  UR                  SS2UR                  R	                  S5      4'   [         R                  UR                  SS 2UR                  R	                  S5      4'   UR                  [         R                  S5      nUR                  SS9n[        R                  " X45        [        R                  " UR                  S[         R                  5      U5        UR                  [         R                  S5      nUR                  SS9n[        R                  " X45        [        R                  " UR                  S[         R                  5      U5        g )	Nr%   r*   r+   r,   r&   ir-   r   )	r   r   r6   r7   r8   r2   r5   r3   r4   )r9   r;   r>   r?   r@   s        r   test_replace_mixed'TestDataFrameReplace.test_replace_mixedG  s	     3566"bjj((//013bjj((--.#++BFFC8%,,3,7
f/
fnnS"&&9;MN#++BFFD9%,,4,8
f/
fnnT266:<NOr   c                4   [        [        SS/SS9[        SS/SS9S.5      n[        [        SS/SS9[        S	S/SS9S.5      nUR                  SS	5      n[        R                  " X25        UR                  SS	S
S9nUb   e[        R                  " X5        g )Nr  r   float64r   r   r   r  r&   r   r  Tr(   r   r   r2   r3   r4   )r9   r^   r@   r?   r=   s        r   &test_replace_mixed_int_block_upcasting;TestDataFrameReplace.test_replace_mixed_int_block_upcastingY  s    S#Ji8QF'2
 S#Ji8S!HI6
 As#
f/zz!S$z7###
b+r   c           	        [        [        SS/SS9[        SS/SS9[        SS/SS9S	.5      n[        [        SS/SS9[        S
S/SS9[        SS/SS9S	.5      nUR                  SS
5      n[        R                  " X25        g )Nr  r   r  r   r   r   r  r   r&   r   Cr  r  r9   r^   r@   r?   s       r   &test_replace_mixed_int_block_splitting;TestDataFrameReplace.test_replace_mixed_int_block_splittingn  s    S#Ji8QF'2QF'2
 S#Ji8S!HI6QF'2
 As#
f/r   c                   [        [        SS/SS9[        SS/SS9S.5      n[        [        SS	/S
S9[        SS/SS9S.5      nUR                  SS	5      n[        R                  " XC5        [        [        S	S/5      [        SS	/S
S9S.5      nU(       a9  [        R
                  " [        SS9   UR                  SS/S	S/5      nS S S 5        OUR                  SS/S	S/5      n[        R                  " XC5        g ! , (       d  f       N%= f)Nr  r   r  r   r   r   r  r  r+   r   r   r  r   r   )r   r   r2   r3   r4   r   r   )r9   r   r^   r@   r?   s        r   test_replace_mixed2(TestDataFrameReplace.test_replace_mixed2  s   S#Ji8QF'2
 QJh7QF'2
 Au%
f/UEN+QJh7
 ++MOQFUEN; PO ZZA7F
f/	 POs   0C==
Dc                   [        [        SS/SS9[        SS/SS9S.5      nUR                  SUR                  5       R	                  5       5      nUR                  5       R                  S5      nUR                  5       nUR                  S   UR                  S'   UR                  S   UR                  S	'   [        R                  " X#5        g )
NrE   r   r  r   r  r  r   r   r   )r   r   )
r   r   r2   r  to_dictr1   astyper6   r3   r4   )r9   r^   r?   r@   r  s        r   test_replace_mixed3(TestDataFrameReplace.test_replace_mixed3  s    !Qw/faV76ST
 Arwwy0023779##I.GGIffQidffQid
f/r   c                    [        SSS[        R                  // SQS.5      nUS   R                  S5      US'   UR	                  S[        R                  5      n[
        R                  " US   US   5        g )	Nr   r   rE   )somestringshereher   r   Int64r   )r   r   r   r'  r2   r3   r  r9   r^   rp   s      r   1test_replace_nullable_int_with_string_doesnt_castFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_cast  sa    aArvv.5VWXS'..)3jjRVV$
s3xC1r   r   )booleanr/  Float64c                    [        / SQUS9n[        / SQUS.5      nUR                  SS5      n[        / SQUS.5      n[        R                  " XE5        g )N)r   r   r   r   )r&   r   xr  r6  X)r&   r   r7  r   r   r2   r3   r4   )r9   r   nullable_serr^   r?   r@   s         r   !test_replace_with_nullable_column6TestDataFrameReplace.test_replace_with_nullable_column  sL     iu5_<@AC%?FG
f/r   c                    [        S[        SS5      05      n[        S/ SQ05      nUR                  SSSS.05      n[        R                  " X#5        UR                  SSS.5      n[        R                  " X#5        g )Nr   r   r%   r   r   rE   r   r   r   )r   r   r   r   r2   r3   r4   r  s       r   test_replace_simple_nested_dict4TestDataFrameReplace.test_replace_simple_nested_dict  sp    uQ{+,e%567U$456
h/ ,-
h/r   c                    [        S[        SS5      05      n[        S/ SQ05      nUR                  SSSS.5      n[        R                  " X#5        UR                  SSSSS.05      n[        R                  " X#5        g )	Nr   r   r%   r=  r   r   r   )r   r   r>  r  s       r   6test_replace_simple_nested_dict_with_nonexistent_valueKTestDataFrameReplace.test_replace_simple_nested_dict_with_nonexistent_value  sr    uQ{+,e%56756
h/U$=>?
h/r   c                    [        SSS /05      R                  SS05      nUR                  [        R                  S 05      n[        SSS /0[
        S9n[        R                  " X#5        g )Nr.   *   r/  r   )r   r'  r2   r   NAr   r3   r4   r9   r^   r?   r@   s       r   test_replace_NA_with_None.TestDataFrameReplace.test_replace_NA_with_None  s^    "d,-44gw5GHRUUDM*gDz2&A
f/r   c                    [        [        R                  [        R                  /5      nUR                  [        R                  S [        R
                  S 05      n[        S S /5      n[        R                  " X#5        g N)r   r   NaTr2   r   r   r3   r4   rH  s       r   test_replace_NAT_with_None/TestDataFrameReplace.test_replace_NAT_with_None  sT    '(RVVT266489dD\*
f/r   c                    [        / SQSS9n[        [        / SQSS9US.5      nUR                  SS 05      n[        [        / SQS	S9US.5      n[        R                  " X45        g )
N)r   r   r   r   categoryr   )r%   r   rE   r   r  )idr   rE   )      @g      @Nr   r   r8  )r9   
cat_seriesr^   r?   r@   s        r   (test_replace_with_None_keeps_categorical=TestDataFrameReplace.test_replace_with_None_keeps_categorical  sl    0
C
\;!
 QI&2(C!
 	f/r   c                n   UR                   S   nUR                   S   n[        R                  UR                   S'   SUR                   S'   UR                  [        R                  S0S9nUR                  R                  [        R                  S0S9R                  n[
        R                  " XE5        UR                  [        R                  SSS0S9nUR                  5       nSUR                   S'   SUR                   S'   Un[
        R                  " XT5        X!R                   S'   X1R                   S'   g )Nr%  r   r   r   r   r\   r   )r6   r   r   r2   r   r3   r4   r1   )r9   r:   
orig_valueorig2r?   r@   r<   s          r   test_replace_value_is_none/TestDataFrameReplace.test_replace_value_is_none  s   #((.
##D)$&FFD!$%D!''BFFA;'?!##++{+CEE
f/''BFFAq$3G'H %%'T!T
h/$.D!$)D!r   c                   UR                  5       R                  [        R                  5      n[        R                  UR
                  UR                  S S S4'   [        R                  UR
                  UR                  SS  S4'   UR                  [        R                  S5      n[        R                  " X2R                  S5      5        [        R                  " UR                  S[        R                  5      U5        [        R                  UR
                  UR                  S S S4'   [        R                  UR
                  UR                  SS  S4'   [        R                  UR
                  UR                  S S S4'   Sn[        R                  " [        US9   UR                  SS	9n[        R                  " XRR                  SS	95        S S S 5        g ! , (       d  f       g = f)
Nr%   r&   r'   r   r   z,DataFrame.fillna with 'method' is deprecatedr   bfill)method)r1   r'  r   float32r   r/   r0   r2   r3   r4   r5   r   r   )r9   r:   r<   r   r   r?   s         r   test_replace_for_new_dtypes0TestDataFrameReplace.test_replace_for_new_dtypes  s`    %%'..rzz:.0ffGMM"1%s*+/1vvGMM"#&+,oobffd3
k>>$+?@
k11$?I.0ffGMM"1%s*+/1vvGMM"#&+,.0ffGMM"1%s*+<''SA^^7^3F!!&...*HI BAAs   3G
G)z"frame, to_replace, value, expectedintsr   r   rE   r   r   )r   r   rE   r   boolsTFT)TTTcomplex)              ?               @              @ri  )y                rj  rk  
datetime64i  r%      r   i     r*   r+   )dtstrr  ro  h  
   i  20130101
US/Easternperiodstzr   r  20130102rw  2013010420130103nsr  r   rS  c                   S n[        U[        5      (       a  UR                  S:X  a  [        nSn[        R
                  " XVS9   UR                  X#5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nrq  r
  r   )r   r   yearr   r3   r   r2   r4   )r9   framer\   r.   r@   warnr   r?   s           r   test_replace_dtypes(TestDataFrameReplace.test_replace_dtypes  sf    X j(++
40G D2''8]]:5F 9
fh/ 98s   A66
Bc           
     :   [         R                  SSS.nSSSS.n[        [         R                  S[         R                  // SQ/ SQS.5      nUR	                  X5      nUR                  5        VVs0 s H  u  pVXVR	                  X   X%   5      _M     nnn[        R                  " U[        U5      5        UR	                  / SQ/ SQ5      n[        [         R                  S	[         R                  // SQ/ SQS.5      n[        R                  " X5        SSSS.n[        [         R                  S[         R                  // SQ/ SQS.5      nUR	                  [         R                  U5      nUR                  5        VVs0 s H'  u  pVXVR	                  [         R                  X%   5      _M)     nnn[        R                  " U[        U5      5        [         R                  SS/n/ S
QnUR	                  X5      nUR                  5       n[        X5       H  u  pUR	                  XSS9nUc  M   e   [        R                  " X5        Sn[        R                  " [        US9   UR	                  XSS  5        S S S 5        g s  snnf s  snnf ! , (       d  f       g = f)Nr   r   r  rB  missingr   r   r%   r   asdffd)r%   r   r   r%   )rB  r  Tr(   z:Replacement lists must match in length\. Expecting 3 got 2r   r   )r   r   r   infr2   itemsr3   r4   r1   zipr   r   r   )r9   to_repr]   r^   filledkvr@   r?   r  r.   r=   r   s                r   #test_replace_input_formats_listlike8TestDataFrameReplace.test_replace_input_formats_listlike  s   vvAB/r	2661bff%I<NO
 F+CE88:N:41AyyFI66:N
fi&9:Iy1661bff%I<NO
 	f/ r	2661bff%I<NO
 BFFF+@B
K
Ayy33
K
fi&9: &&!R$F+779f-JC#++C+EL''' . 	f/K]]:S1JJvabz* 21; O L 21s   1"J ?.J"J
Jc           	        [        [        R                  S[        R                  // SQ/ SQS.5      n[        R                  SSS.nUR	                  US5      nUR                  5        VVs0 s H  u  pEXER	                  X$   S5      _M     nnn[        R                  " U[        U5      5        Sn[        R                  " [        US9   UR	                  U[        R                  SS/5        S S S 5        [        R                  SS/nUR	                  US5      nUR                  5       nU H  n	UR	                  U	SS	S
9n
U
c  M   e   [        R                  " X5        g s  snnf ! , (       d  f       N= f)Nr   r  r  r  r   z.value argument must be scalar, dict, or Seriesr   rB  Tr(   )r   r   r   r  r2   r  r3   r4   r   r   	TypeErrorr1   )r9   r^   r  r  r  r  r@   r   r?   r  r=   s              r   !test_replace_input_formats_scalar6TestDataFrameReplace.test_replace_input_formats_scalar  s3    661bff%I<NO

 vvAB/FA&;=88:F:41AyyA..:F
fi&9:>]]9C0JJv2/ 1 &&!RFB'779C#++CT+BL'''  	f/ G 10s   , E!
$E''
E5c                    g rL  r   )r9   s    r   test_replace_limit'TestDataFrameReplace.test_replace_limit  s    r   c                   [        SSSSSS.5      nSSS	S
SS.n[        S
SS	SSS.5      nSn[        R                  " [        US9   UR	                  U5      nS S S 5        [        R
                  " WU5        g ! , (       d  f       N&= fNStrongly AgreeAgreeNeutralDisagreeStrongly Disagree)r   r   r   rE   r   r   r   rE   r%   r   )r  r  r  r  r  r
  r   r   r3   r   r   r2   r  r9   answerweightsr@   r   r?   s         r   test_replace_dict_no_regex/TestDataFrameReplace.test_replace_dict_no_regex  s     #&
 !"
 aA!a892''SA^^G,F B
vx0 BAs   A88
Bc                $   [        SSSSSS.5      n[        SSS	S
SS.5      n[        S
SS	SSS.5      nSn[        R                  " [        US9   UR	                  U5      nS S S 5        [        R
                  " WU5        g ! , (       d  f       N&= fr  r  r  s         r   test_replace_series_no_regex1TestDataFrameReplace.test_replace_series_no_regex  s     #&
 "#%&
 aA!a892''SA^^G,F B
vx0 BAs   B
Bc                   [        S[        R                  S/05      nUR                  [        R                  SSS0S9nUR                  S[        R                  4SS/S9nUR                  S[        R                  /SS/S9n[        SSS/05      n[        R
                  " X#5        [        R
                  " X45        [        R
                  " XE5        g )Nr&   r   r   r   rY  r\   r.   )r   r   r   r2   r3   r4   )r9   r^   res1r}   r   r@   s         r   6test_replace_dict_tuple_list_ordering_remains_the_sameKTestDataFrameReplace.test_replace_dict_tuple_list_ordering_remains_the_same
  s    bffa[)*zzbffaD%9z:zza[q	zBzza[q	zBcAt9-.
d)
d)
d-r   c                    [        / SQ/ SQ/ SQ/ SQS.5      nUR                  SS05      n[        R                  " X5        g )N)r   r   r   rE   )0vrr  r  )r  r  r  bt)vor  r  r  )folT_oppT_DirT_Enhz\Dr   r   r0  s      r   )test_replace_doesnt_replace_without_regex>TestDataFrameReplace.test_replace_doesnt_replace_without_regex  s?    #...	
 jj%$
b&r   c                    [        SS/[        S5      S.5      nUR                  SS5      n[        SS/UR                  S.5      n[        R
                  " X#5        g )NTFabr   r   )r   r   r2   r   r3   r4   rH  s       r   test_replace_bool_with_string2TestDataFrameReplace.test_replace_bool_with_string!  sN    dE]d<=D#&C<bdd;<
f/r   c                    [        [        R                  R                  S5      R                  S5      S:  5      nUR	                  SS5      n[
        R                  " X5        g )Nr   r   r   r  r  fdsa)r   r   randomdefault_rngr2   r3   r4   r9   r^   r?   s      r   (test_replace_pure_bool_with_string_no_op=TestDataFrameReplace.test_replace_pure_bool_with_string_no_op'  sI    ryy,,Q/66v>DEFF+
b)r   c                   [        [        R                  R                  S5      R                  S5      S:  5      nUR	                  SS5      n[        [        R
                  " S[        S95      n[        R                  " X#5        g )Nr   r  r  FTr   )	r   r   r  r  r2   onesboolr3   r4   rH  s       r   test_replace_bool_with_bool0TestDataFrameReplace.test_replace_bool_with_bool,  s^    ryy,,Q/66v>DEE4(RWWV489
f/r   c                    [        SS/SS/S.5      nUR                  SSS.5      n[        SS/SS/S.5      n[        R                  " X#5        g )NTFr   r   asdbyes)r  Tr   rH  s       r   %test_replace_with_dict_with_bool_keys:TestDataFrameReplace.test_replace_with_dict_with_bool_keys2  sQ    D%=eT];<V59:%UENCD
f/r   c                    [        SS/SS/S.5      nUR                  SS05      n[        R                  " X!5        US   R                  SS05      n[        R                  " X!S   5        g )	Nr   r   rE   r   )Y0Y1replace_stringtestr  )r   r2   r3   r4   r  r  s      r   !test_replace_dict_strings_vs_ints6TestDataFrameReplace.test_replace_dict_strings_vs_ints8  sg    q!fQF34-v67
f)D!!#3V"<=
v$x0r   c                    [        SSS/05      nUR                  [        R                  [        R                  * /[        R                  5      nUn[
        R                  " X#5        g )Nr   T)r   r2   r   r  r   r3   r4   )r9   r^   rrR   s       r   test_replace_truthy(TestDataFrameReplace.test_replace_truthyB  sK    dD\*+JJ("&&1
a#r   c                T   [        S[        [        SS5      5      05      nUR                  S[	        [        [        SS5      [        SS5      5      5      05      nUR                  [	        [        [        SS5      [        SS5      5      5      5      n[        R                  " X#5        g )Nr   r   r%   r      )r   r   r   r2   dictr  r3   r4   rH  s       r   -test_nested_dict_overlapping_keys_replace_intBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_intH  s}     T%1+./0S$s5A;a'D"EFG::d3uQ{E!QK#@AB
f/r   c           	        [         R                  " SS5      nUR                  [        5      n[         R                  " SS5      R                  [        5      n[	        SU05      nUR                  [        [        X#5      5      5      nUR                  S[        [        X#5      5      05      n[        R                  " XV5        g )Nr   r%   r   r  r   )
r   aranger'  rp  r   r2   r  r  r3   r4   )r9   r   astrbstrr^   r?   r@   s          r   -test_nested_dict_overlapping_keys_replace_strBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_strQ  s    IIaOxx}yyA%%c*T{#DT12::sDT$9:;
f/r   c                ,   [        S/ SQ05      nUR                  SSSS.05      n[        S/ SQ05      n[        R                  " X45        [        S/ SQ05      nUR                  SSSS.05      n[        S/ SQ05      n[        R                  " X45        g )	Nr   rg  YN)TF)r  r  r  )r   r   r   r  r   )r9   r   r^   rp   expects        r   test_replace_swapping_bug.TestDataFrameReplace.test_replace_swapping_bug[  s     012jj#c#678C12
c*Y'(jj#33/01C12
c*r   c                <   S[         R                  " SSSS9[         R                  " SSSS9[         R                  " SSSS9[         R                  " SS	SS9[         R                  " SSSS9[         R                  " SSSS9[         R                  " S
SSS9S.0n[        / SQS/S9n[        UR                  R
                  5      [        US   R                  5       5      :X  d   e[        SUR                  R
                   Vs/ s H
  o1S   U   PM     sn05      nUR                  R                  S   S:X  d   eSn[        R                  " [        US9   UR                  U5      nS S S 5        [        R                  " WU5        g s  snf ! , (       d  f       N+= f)Nfnamei     M)r~  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  r7   r   z	Period[M]r
  r   )r   Periodr   setr  r]   keysr  r6   r3   r   r   r2   r4   r9   r   r^   r  r@   r   r?   s          r   test_replace_period(TestDataFrameReplace.test_replace_periodi  sd   
 /1yyd!RU/V/1yyd!RU/V/1yyd!RU/V3599QS4 02yyd!RU/V/1yyd!RU/V/1yyd!RU/V

  I
 288??#s1W:??+<'====grxx'O!'
1'OPQ##A&+5552''SAZZ]F B
fh/ (P BAs   F
F
Fc           
     d   S[        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      S	.0n[        / S
QS/S9n[        UR                  R                  5      [        US   R                  5       5      :X  d   e[        SUR                  R                   Vs/ s H
  o1S   U   PM     sn05      nSn[        R                  " [        US9   UR                  U5      nS S S 5        [        R                  " WU5        g s  snf ! , (       d  f       N+= f)Nr  z2011-08z2011-01z2012-05z2011-04z2012-08z2011-05z2013-09r  r  r  r
  r   )r	   r   r  r  r]   r   r3   r   r   r2   r4   r  s          r   test_replace_datetime*TestDataFrameReplace.test_replace_datetime  s   
 /8/C/8/C/8/C3<Y3G/8/C/8/C/8/C

  I
 288??#s1W:??+<'====grxx'O!'
1'OPQ2''SAZZ]F B
fh/	 (PAAs   6D
*D!!
D/c           	     (   [        [        SSSS9S[        R                  S/S.5      nUR	                  [        R                  S5      n[        [        SSSS9[        / S	QS
S9S.5      n[        R                  " X#5        UR                  S5      n[        R                  " X#5        UR	                  S[        R                  5      n[        [        SSSS9[        R                  [        R                  S/S.5      n[        R                  " X#5        UR	                  [        SSS9[        SSS95      n[        [        SSS9[        SSS9[        SSS9/S[        R                  S/S.5      nUS   R                  R                  S5      US'   [        R                  " X#5        UR                  5       n[        R                  UR                  S'   UR	                  S[        R                  0[        SSS95      n[        R                  " X#5        UR                  5       n[        R                  UR                  S'   UR	                  S[        R                  0[        SSS95      n[        [        SSS9[        SSS9R!                  S5      [        SSS9/S[        R                  S/S.5      nUS   R                  R                  S5      US'   [        R                  " X#5        UR                  5       n[        R                  UR                  S'   UR	                  S[        R                  0[        S5      5      n[        [        SSS9[        S5      [        SSS9/S[        R                  S/S.5      n[        R                  " X#5        g )Nrs  rE   rt  ru  r   r   r  r   r   r   r   r  r   rx  ry  rz  r{  r&   r|  rX  z
US/Pacific)r   r
   r   r   r2   r   r3   r4   r5   r	   ro  as_unitr1   r6   r   rM  
tz_convertrH  s       r   test_replace_datetimetz,TestDataFrameReplace.test_replace_datetimetz  s    
A,G^
 BFFA&
A,GIY7
 	f/1
f/Arvv&
A,Gffbffa(
 	f/j\2j\2
  j\:j\:j\:
 ^	
 !((006
f/FFDbffy/UV
f/ FFDbffy/UV j\:j\:EElSj\:
 ^	
 !((006
f/FFDbffy/DE j\:j)j\:
 ^	
 	f/r   c           
     t   [        U5      n[        R                  " X"R                  0 5      5        [        R                  " X"R                  [	        / [
        S95      5        [        R                  " X"R                  S0 05      5        [        R                  " X"R                  [	        S0 05      5      5        g )Nr   r   )r   r3   r4   r2   r   r   )r9   r   r^   s      r    test_replace_with_empty_dictlike5TestDataFrameReplace.test_replace_with_empty_dictlike  s{    w
b**R.1
b**VBf-E"FG
b**c2Y"78
b**VS"I->"?@r   zto_replace, method, expectedr_  )r   r   r   r  r  )rS        @r  ffillpad)r   r   r   )r   r   )r   r   r   )r   r   r   c                   [        / SQS[        R                  S// SQS.5      nSn[        R                  " [
        US9   UR                  US US9nS S S 5        [        U5      n[        R                  " WU5        g ! , (       d  f       N1= f)	Nr  r%   r   r   r  z7The 'method' keyword in DataFrame.replace is deprecatedr   )r\   r.   r`  )r   r   r   r3   r   r   r2   r4   )r9   r\   r`  r@   r^   r   r?   s          r   test_replace_method(TestDataFrameReplace.test_replace_method  ss    D Ya^/RSG''SAZZ:T&ZQF BX&
fh/ BAs    A==
Bzreplace_dict, final_datac                   [        SS/SS//SS/SS9n[        R                  " U5      n[        R                  " US S 2S4   SS/S	9nUS   S:X  a  SS/OSS/n[        R                  " US S 2S4   US	9n[        XFS
.5      nSn[
        R                  " [        US9   UR                  US5      n	S S S 5        [
        R                  " W	U5        Sn
[        R                  " [        U
S9   [
        R                  " X75        S S S 5        [
        R                  " [        US9   UR                  USSS9nS S S 5        Wb   e[
        R                  " X75        g ! , (       d  f       N= f! , (       d  f       Nn= f! , (       d  f       NL= f)Nr   r   r   r   rQ  )r7   r   r   rE   )
categoriesr   z#with CategoricalDtype is deprecatedr   zHAttributes of DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentTr(   )r   r   r   r   Categoricalr3   r   r   r2   r4   r   r   AssertionError)r9   replace_dict
final_datar^   r   ex_catr   r@   msg2r?   r   r=   s               r   "test_categorical_replace_with_dict7TestDataFrameReplace.test_categorical_replace_with_dict:  sZ    AA'#s:NXXj)
NN:ad+A?',1!Q1vNN:ad+?1-.4''TBZZa0F C
fh/ 	 ]]>5!!"/ 6 ''TB::lAt:DL C###
b+ CB 65 CBs$   E*E)"E:
E&)
E7:
Fzdf, to_replace, expr   r%   r  )r   r   r  )r%   r  r   )456r"  r#  7)r"  r#  r$  c                ~    [        U5      n[        U5      nUR                  U5      n[        R                  " XT5        g rL  r   )r9   r^   r\   expr@   r?   s         r   test_replace_commutative-TestDataFrameReplace.test_replace_commutativeZ  s2    ( r]S>J'
f/r   replacer20170827c                    [        S/5      nSn[        R                  " [        US9   UR	                  XS.5      nS S S 5        [        U/5      n[        R
                  " WU5        g ! , (       d  f       N2= f)Nr   r
  r   r   r   )r9   r)  r^   r   r?   r@   s         r   test_replace_replacer_dtype0TestDataFrameReplace.test_replace_replacer_dtypet  sb     u2''SAZZh >?F BhZ(
fh/ BAs   A((
A6c                    [        S/ SQ0SS9nUR                  SS5      n[        S/ SQ0SS9n[        R                  " X#5        g )Ngrp)r   r   rE   r   r%   r/  r   r   rr  )rr  r   rE   r   r%   r   rH  s       r   !test_replace_after_convert_dtypes6TestDataFrameReplace.test_replace_after_convert_dtypes  sC    /w?Ar"e%56gF
f/r   c                    [        / SQ/ SQS.5      nSnSn[        R                  " [        US9   [        R
                  " [        US9   UR                  S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)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                "    U R                  5       $ rL  )strip)r6  s    r   <lambda>FTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>  s
    QWWYr   )r   r   r   r  r3   r   r   r2   )r9   r^   r   r  s       r   test_replace_invalid_to_replace4TestDataFrameReplace.test_replace_invalid_to_replace  st     /8JKL0 	
) 	 ]]9C0++MF

./ G 10FF 10s#   A?
A.A?.
A<	8A??
B)floatr  r  r/  r3  r.   c                    [        [        R                  " S5      US9nUR                  S [        R                  * [        R                  /US9n[
        R                  " XC5        g )Nr   r   r  )r   r   eyer2   r  r3   r4   )r9   r   r.   r^   r?   s        r   "test_replace_no_replacement_dtypes7TestDataFrameReplace.test_replace_no_replacement_dtypes  sI     rvvay.rvvgrvv'>eL
f)r   replacementc                    [        / SQ/ SQ/ SQS.5      n[        S5      Ul        [        / SQ/ SQUSS/S.5      n[        S5      Ul        US   R                  S	U5      US'   [        R
                  " X#5        g )
Nre  r   )r   r  r  )r&   A1r   AABr  r  r   r   )r   r   r7   r2   r3   r4   )r9   r?  r?   r@   s       r   #test_replace_with_duplicate_columns8TestDataFrameReplace.test_replace_with_duplicate_columns  sq     ))LMe9KA3FG
  ;Sk))![9s
f/r   z2020-01c                    [        SU/S-  05      n[        R                  " X15      nUR                  5       nUR	                  SS5      n[        R
                  " XE5        g )NPerrE   r  r   )r   r3   r   r1   r2   r   )r9   r   r.   r   r@   r?   s         r   test_replace_ea_ignore_float1TestDataFrameReplace.test_replace_ea_ignore_float  sN     !,-jj.88:S#&
)r   c                   / SQ/ SQ/ SQ/ SQ/ SQS.n[        US9R                  SSS	.5      nUS
   R                  R                  / SQSS9US
'   US   R                  R                  / SQSS9US'   / SQ/ SQ/ SQ/ SQ/ SQS.n[        US9R                  SSS	.5      nUS
   R                  R                  / SQSS9US
'   US   R                  R                  / SQSS9US'   Sn[        R
                  " [        US9   UR                  SS5      nUR                  SS5      nUR                  SS5      nSSS5        [        R                  " WU5        g! , (       d  f       N&= f)z\
Test for #23305: to ensure category dtypes are maintained
after replace with direct values
)r   r   rE   r   )r   r   r   r   )g      ?g      @g      @g      @)cat1cat2cat3cat4)obj1obj2obj3obj4)r   r   r   col4col5r   rQ  )r   rR  r   T)orderedrR  )r   r   r   z)rJ  catXrL  rM  )obj9rO  rP  rQ  OThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtyper   r   rV  rN  rX  rK  rW  N)	r   r'  catreorder_categoriesr3   r   r   r2   r4   r9   
input_dictinput_dfexpected_dictr@   r   r?   s          r    test_replace_value_category_type5TestDataFrameReplace.test_replace_value_category_type  s    !((44

 *-444
 $F+//BB $ C 
 $F+//BB,d C 
 !((44
 -0774
 $F+//BB $ C 
 $F+//BB,d C 
$ 	 ''SA''S1H''7H%%ff5F B
 	fh/ BAs   >7E
E#c                Z   S/S/S/S.n[        US9R                  SSSS.5      nS/S/S	/S.n[        US9R                  SSSS.5      nS
n[        R                  " [        US9   UR                  SSS	S.5      nSSS5        [        R                  " WU5        g! , (       d  f       N&= f)zN
Test to ensure category dtypes are maintained
after replace with dict values
r   rN  rJ  r   rT  rQ  rV  rX  rW  rY  r   )r   rN  rJ  N)r   r'  r3   r   r   r2   r4   r\  s          r   test_replace_dict_category_type4TestDataFrameReplace.test_replace_dict_category_type  s      #efXxH
*-44ZH

 #&6(K-077ZH
$ 	 ''SA%%C&PQF B 	fh/ BAs   &B
B*c                    [        / SQ5      n[        R                  " S5      nUR                  US0SS9n[        / SQ5      n[        R
                  " X45        g )Nr   z^a$rV  Trc   )rV  r   r   )r   recompiler2   r3   r4   )r9   r^   rZ   r?   r@   s        r    test_replace_with_compiled_regex5TestDataFrameReplace.test_replace_with_compiled_regex  sH    '

5!UCL5_-
f/r   c                   [        S[        R                  " SS5      [        R                  " SS5      /05      nU(       a  [        OS n[        R
                  " USS9   UR                  S[        R                  " SS5      S005      nS S S 5        [        SSS/05      n[        R                  " WU5        g ! , (       d  f       N5= f)Nr   r   r   r   r   r6  )r   r   Intervalr   r3   r   r2   r4   )r9   r   r^   warningr?   r@   s         r   test_replace_intervals+TestDataFrameReplace.test_replace_intervals!  s    bkk!Q/Q1BCDE#5-4''}EZZr{{1a'8#&> ?@F FcC:./
fh/ FEs   +B88
Cc                    SSSSS.0n[        S[        R                  " S5      05      nUR                  U5      n[        S[        R                  " S5      05      n[        R
                  " X45        g )Npositiver   r   )u   正面u   中立u   负面rE   )r   r   r  r2   r3   r4   )r9   columns_values_mapr   r?   r@   s        r   test_replace_unicode)TestDataFrameReplace.test_replace_unicode*  s_    (Q!q*QRRWWQZ01/0j"''!*56
f/r   c                    U" S/5      R                  S5      nUR                  5       nUR                  S [        R                  05      n[
        R                  " X#5        g )NrI   z|S)r'  r1   r2   r   r   r3   r   )r9   r   r   r@   s       r   test_replace_bytes'TestDataFrameReplace.test_replace_bytes2  sF    se$++D188:kk4.)
&r   z!data, to_replace, value, expectedr   boxc                    U" U5      nU" U5      nUR                  U" U5      U5      n[        R                  " X5        g rL  )r2   r3   r   )	r9   r   r\   r.   r@   rw  r   r   r?   s	            r   !test_replace_list_with_mixed_type6TestDataFrameReplace.test_replace_list_with_mixed_type9  s8     d#"8,S_e4
)r   valc                   [        SSU/05      nUR                  US 5      n[        SSS /0[        S9n[        R                  " X45        [        SSU/05      nUR                  US 05      n[        R                  " X45        g )Nr   r   r   )r   r2   r   r3   r4   )r9   r{  r^   r?   r@   s        r   %test_replace_value_none_dtype_numeric:TestDataFrameReplace.test_replace_value_none_dtype_numericL  s{     aX'C&cAt9-V<
f/aX'S$K(
f/r   c                    [        SS[        R                  /05      n[        SS[        R                  /0SS/S9nUR                  SS5      n[        R
                  " X#5        g )Nr   nilzanything elser   r   r   )r   r   rG  r2   r3   r4   )r9   r   r@   r?   s       r   test_replace_with_nil_na-TestDataFrameReplace.test_replace_with_nil_naX  sU    ubeen-.cORUU#;<QFKUO4
h/r   r   N)i__name__
__module____qualname____firstlineno__r   r   r   r   rA   parametrizer   r   r_   rr   rw   r~   r   r   r   r   r   r   r   r   r   r   r   rG  r   r   r   r   r  r  r  r  r  r"  r(  r1  r:  r?  rC  rI  rN  rU  r\  rb  r   int32int16r   r   r
   r	   DatetimeIndexr	  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  int8ra  r  r,  r0  r8  r=  rC  r  rk  rG  r`  rc  rh  rm  rr  ru  r   tupler   ry  r}  r  __static_attributes__r   r   r   r   r       s   [["$-J  AA. [[$
 h' sBFFBFF3 A-0 
+*%/<2 %'"/001!	
$J [[Yu6[[3dE]C0 D 7K$N0"'*R&*PC+J+*0  [["$-J  00 [["$-J  ++8 [["$-J  ++ [["$-J  ++ +$) [[BFF,BBFF.CD00& [[Z)JK0 L0 [["U^3S1E5>BXruu-RUUBEE/BC	
**<06*>4&0( [["$-J  	+	+ [["$-J  PP,*0&0<
02 [[W&EF0 G0	00000&*(J& [[,	*+Q9fi=P3QR69-RXX>69-RXX>	 69-RXX>69-RXX>	 7$7897$678	 9l349l34	 $e (q" 5 (q" 5 (q" 5'
 q"%q"%<q"0E/F/J)KLM$ (4R"8!95'JK(4R"8!95'JK	 4(4Q"7!89:r1%r1%4(4Q"7!89:	 '
A,O^ *6*6-- )* F )* F )* F "'$-^	0 As8aX./As8aX./	 As8aX./As8aX./	 As8aX./As8aX./	 As8aX./As8aX./	Cg	
jV0WjV0&+P [["$-J  000 [["$-J  11. [["$-J  112	.
'0*
001$00 [["$-J  	+	+ [["$-J  "0"0H [["$-J  00@R0hA [[&y2661~OTUoOL
 '!RVVQoVWAq"&&!n?K Aq"&&!n?K q"&&!n?K c
q"&&!n?K/	
@0A@0 [["
aVaV,	-aa0@Aq6Aq6BR/ST,	,8 [[ #I6!""I6 #O<#."O<	
	0	0 [["$-J   [[j!GGAJHHQKJJqMJJqM	
	0	000  [[W&WX[[Wrvvruuo6* 7 Y* [[]RVVQK80 90 [[Wryy';R[[A=N&OP* Q*60p0>000' [[+S3%!qc"S1#sQC USEA3&UQC!se$		
 [[UT5"(($;<* =* [[UQ$45	0 6	00r   r   c            
      b   \ rS rSr\R
                  R                  S\" S5      \" S5      S.\" S5      \" \" S5      5      S./5      \R
                  R                  SS\	R                  4S	/5      \R
                  R                  S
SS/5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      S 5       5       5       5       5       r\R
                  R                  \" 5       SS9\R
                  R                  SSS/5      S 5       5       rS rS rS rSrg)TestDataFrameReplaceRegexi`  r   r   rX   r   r   zto_replace,valuerC   )rJ   z\1\1\1compile_regexTFregex_kwargr)   c                p   [        U5      nUR                  5       nU(       a  [        R                  " U5      nU(       a  Un	S nOSn	UR	                  X#XiS9n
U(       a  U
b   eUn
U[
        R                  L a  [
        R                  nOSnXR                  US   S:H  S4'   [        R                  " X5        g )NTru   z...r   r{   )
r   r1   rf  rg  r2   r   r   r/   r3   r4   )r9   r   r\   r.   r  r  r)   r^   r@   rZ   r?   expected_replace_vals               r   test_regex_replace_scalar3TestDataFrameReplaceRegex.test_regex_replace_scalara  s      t_779J/JEJEJwL>!>FBFF?#%66 #( 2FXc]c)3./
f/r   r!   r"   rZ   c                   [        S/S/S.5      n[        S/S/S.5      nSn[        R                  " [        US9   UR	                  SSUS9nS S S 5        [        R
                  " WU5        [        S/S/S.5      n[        S/S/S.5      n[        R                  " [        US9   UR	                  SSUS9nS S S 5        [        R
                  " WU5        g ! , (       d  f       N= f! , (       d  f       N7= f)Nr  r  r   r   r   )r\   r.   rZ   1r   )	r9   rZ   r   expected_df1r   
result_df1df2expected_df2
result_df2s	            r   test_replace_regex_dtype_frame8TestDataFrameReplaceRegex.test_replace_regex_dtype_frame  s     se3%01 s!!561''SA1EJJ B
j,7se3%01 s#!78''SA1EJJ B
j,7 BA BAs   C&C)
C&)
C7c                    [        / SQ/ SQS.5      nUR                  S[        R                  S.5      n[        S[        R                  S/[        R                  SS/S.5      n[        R
                  " X#5        g )Nr  )r   r   r   r  r   r  r   r   rH  s       r   +test_replace_with_value_also_being_replacedETestDataFrameReplaceRegex.test_replace_with_value_also_being_replaced  sY    YY78bff-.Arvvq>AGH
f/r   c                    [        / SQ/ SQS.SS9nUR                  5       nUR                  SS/SS /S	9n[        R                  " X25        g )
N)r   r3  Nthree)r   Nr3  r  r   rQ  r   r{   def_r  )r   r1   r2   r3   r4   r  s       r   'test_replace_categorical_no_replacementATestDataFrameReplaceRegex.test_replace_categorical_no_replacement  sQ    22 
 779U|C;G
f/r   c                   [        S/SS.5      nU(       a&  [        UR                  R                  5      S:X  d   eO%[        UR                  R                  5      S:X  d   eUR	                  SSSSS	9  U(       a&  [        UR                  R                  5      S:X  d   eg [        UR                  R                  5      S:X  d   eg )
Nr   r   r   r   r   r   r   T)r\   r.   r)   rZ   )r   r   _mgrblocksr2   )r9   r   r^   s      r   test_replace_object_splitting7TestDataFrameReplaceRegex.test_replace_object_splitting  s    cU-.rww~~&!+++rww~~&!+++


hb$d
Krww~~&!+++rww~~&!+++r   r   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  `  s4   [[v,T&\2v,T%(^4	
 [[k26624NO [[_tUm<[[]T5M:[[Yu60 7 ; =0: [["$-J   [[Wudm48 5800,r   r  )returnzdict[str, list[int | str]])r  zdict[str, list[float | str]])
__future__r   r   rf  numpyr   r   pandas._configr   pandasr   r   r   r   r	   r
   pandas._testing_testingr3   fixturer   r   r   r  r   r   r   <module>r     st    "  	   5    4 4 R R}0 }0@2^, ^,r   