zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
U
­ý°duéã@s¨ddlmZddlmZddlZddlZddlZddlZddlm    Z    m
Z
m Z m Z m Z ddlmZejddœdd„ƒZejd    dœd
d „ƒZGd d „d ƒZGdd„dƒZdS)é)Ú annotations)ÚdatetimeN)Ú    DataFrameÚIndexÚSeriesÚ    TimestampÚ
date_rangezdict[str, list[int | str]])ÚreturncCsttdƒƒtdƒdœS)Néúab..©ÚaÚb)ÚlistÚrange©rrú^d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/frame/methods/test_replace.pyÚmix_absrzdict[str, list[float | str]]cCs"ttdƒƒtdƒddtjdgdœS)Nr
r r rÚd©r rÚc)rrÚnpÚnanrrrrÚmix_abcsrc@sj    eZdZdd„Zej dddgejdgddejejgdgd    d
gd
dd d gd œfddgddgddddgdddd
gd
dd d gd œfddgddgddddgdddd
gd
dd d gd œfg¡ej dddg¡ej dddg¡dd„ƒƒƒZ    dd „Z
d!d"„Z d#d$„Z d%d&„Z d'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zej d5ejd6d7œd6ejd8œg¡d9d:„ƒZej d;d<d=d>d?d@g¡dAdB„ƒZej dCdDdEgdFdGdHœdIdJgfdGd6d6gdKejidGejejgfg¡dLdM„ƒZdNdO„ZdPdQ„ZdRdS„ZdTdU„ZdVdW„ZdXdY„ZdZd[„Z d\d]„Z!d^d_„Z"d`da„Z#dbdc„Z$ej dddedfdgg¡dhdi„ƒZ%djdk„Z&dldm„Z'dndo„Z(dpdq„Z)drds„Z*dtdu„Z+dvdw„Z,ej dxe-dydzd{d    giƒdzd|e-dyd|d{d    giƒfe-dydzd{d    giej.d}dzd|e-dyd|d{d    giej.d}fe-dydzd{d    giej/d}dzd|e-dyd|d{d    giej/d}fe-d~dddgiƒdde-d~dddgiƒfe-dd€dd‚giƒd€d|e-ddƒdd‚giƒfe-d„e0e1d…d†d‡ƒe1d…dˆd‡ƒe1d…d†d‡ƒgƒiƒe1d…d†d‡ƒe1d…dˆd‡ƒe-d„e0e1d…dˆd‡ƒgd    ƒiƒfe-e1d‰dŠd‹ƒgdŒgdœƒdŒdŽe-e1d‰dŠd‹ƒgdŽgdœƒfe-de1dd‘dzƒgiƒe1dd‘dzƒe1d’d‘dzƒe-de1d’d‘dzƒgiƒfe-e2d“d    d”d•d|ejd{gd–œƒe3d—d”d˜e3d™d”d˜e-e3d“d”d˜e3d™d”d˜e3dšd”d˜gd|ejd{gd–œƒfe-dzd›gd{dœggƒd›d†e-d†dgd{dœggƒfe-dzd›gd{dœggƒdzd†e-d†dgd{dœggƒfe-dzd›gd{dœggƒd›de-d†dgd{dœggƒfe-dzd›gd{dœggƒdzde-d†dgd{dœggƒfg ¡dždŸ„ƒZ4d d¡„Z5d¢d£„Z6d¤d¥„Z7d¦d§„Z8d¨d©„Z9dªd«„Z:d¬d­„Z;d®d¯„Z<d°d±„Z=d²d³„Z>d´dµ„Z?d¶d·„Z@d¸d¹„ZAdºd»„ZBd¼d½„ZCd¾d¿„ZDdÀdÁ„ZEdÂdÄZFdÄdńZGdÆdDŽZHej dÈd|dÉdzdzd{gd†ejdˆgdddFgdʜfejdÉd|dzd{gddËdËgdddFgdʜfdGdÌd|dzd{gd†ejdˆgdddFgdʜfd|d{gdÉdzdzd{gd†ejdˆgdddFgdʜfdzd{gdÍd|d|d|gd†ejdˆgdddFgdʜfdÎdÉd|d{d{gd†ejdˆgdddFgdʜfddFgdÌd|dzd{gd†ejdˆgdddgdʜfg¡dÏdЄƒZIej dÑdzdzdHœd    d    gd{d{ggfdzd{dHœd    dzgd{d    ggfg¡dÒdӄƒZJej dÔdzd{d    gdÕd†dÖgdלd†dÖdˆd؜dzd{d    gd†dÖdˆgdלfdzd{d    gdÙdÚdÛgdלdÚdÛdÜdݜdzd{d    gdÚdÛdÜgdלfg¡dÞd߄ƒZKej dàe3dáƒe Ldz¡e /dz¡e Mdz¡e Ndz¡g¡dâd㄃ZOdädå„ZPdædç„ZQej dddèdédêdfdeg¡ej dëejejg¡dìd턃ƒZRej dîejd†g¡dïdð„ƒZSej dëe Tdñ¡e Ud|d†¡g¡dòdó„ƒZVdôdõ„ZWdöd÷„ZXdødù„ZYdúdû„ZZdüdý„Z[dþdÿ„Z\ej ddzgd›gd|gd|gfdzgdzgd|gd|gfd›gd›gd|gdgfd›gdzgd|gdgfg¡ej de]e^ej_g¡dd„ƒƒZ`ej dd{ejdœg¡dd„ƒZadS(    ÚTestDataFrameReplacecCstj|j|jdd…df<tj|j|jdd…df<| ¡}|jtjddd}|dksZt‚t ||     d¡¡|}tj|j
dd…|j   d¡f<tj|j
d    d…|j   d¡f<| tjd¡}|j    dd
}t ||¡| ¡}|jtjgdgdd}|dksøt‚t ||     d¡¡dS) NéÚAéûÿÿÿrT©ÚinplaceéÚfooéöÿÿÿ©Úvalue) rrÚlocÚindexÚcopyÚreplaceÚAssertionErrorÚtmÚassert_frame_equalÚfillnaÚilocÚcolumnsÚget_loc)ÚselfÚdatetime_frameÚfloat_string_frameÚtsframeÚ return_valueÚmfÚresultÚexpectedrrrÚtest_replace_inplaces     z)TestDataFrameReplace.test_replace_inplacezto_replace,values,expectedú\s*\.\s*ze|f|gÚcrapr réÚhÚlÚorú
\s*(\.)\s*z(e|f|g)ú\1\1ú\1_crapú..Ze_crapZf_crapZg_crapÚeÚfÚgrTFÚuse_value_regex_argscCspttdƒtdƒtdƒdœƒ}|r2|j|||d}n|j||d|d}|rX|dksTt‚|}t|ƒ}t ||¡dS)Nr ÚefghÚhelor)r$ÚregexrT©rIr)rrr(r)r*r+)r0Ú
to_replaceÚvaluesr7rrFÚdfr6rrrÚtest_regex_replace_list_obj6s* z0TestDataFrameReplace.test_regex_replace_list_objc    Cs^t|ƒ}ddg}tjdg}ttdƒƒtdƒtdƒdœ}t|ƒ}|j||dd    }t|ddd
tjtjgd dd d gdœƒ}t ||¡ddg}ddg}|j||dd    }t|dddddgdœƒ}t ||¡dddg}dddg}|j||dd    }t|dddddgdœƒ}t ||¡dddg}dddg}|j||d}t|dddddgdœƒ}t ||¡dS)Nr9r r:r
r ZhalorT©rIrr<r=r>r?ú(a|b)r@rAÚa_crapÚb_craprBr ú(b)©rIr$)rrrrrr(r*r+)    r0rÚdfmixÚto_replace_resrLZmix2Zdfmix2ÚresÚexpecrrrÚtest_regex_replace_list_mixedns8
 
ýÿ  
 
 
 
z2TestDataFrameReplace.test_regex_replace_list_mixedcCsŒt|ƒ}ddg}tjdg}| ¡}|j||ddd}|dks@t‚t|dddtjtjgdœƒ}t ||¡dd    g}d
d g}| ¡}|j||ddd}|dks t‚t|dd d ddgdœƒ}t ||¡dddg}d
dd g}| ¡}|j||ddd}|dkst‚t|ddd ddgdœƒ}t ||¡dddg}d
dd g}| ¡}|j||dd}|dksbt‚t|ddd ddgdœƒ}t ||¡dS)Nr9r r:T©rrIrr r?rPr@rArQrRrBrS©rIr$r)rrrr'r(r)r*r+)r0rrUrVrLrWr4rXrrrÚ%test_regex_replace_list_mixed_inplace—s:
 
 
 
 
z:TestDataFrameReplace.test_regex_replace_list_mixed_inplacecCs†t|ƒ}|jddidtjidd}| ¡}|jddidtjiddd}|dksRt‚t|dddtjtjg|ddœƒ}t ||¡t ||¡|jdd    idd
idd}| ¡}|jdd    idd
iddd}|dksÔt‚t|dddd d g|ddœƒ}t ||¡t ||¡|jdd    idd
id }| ¡}|jdd    idd
idd }|dksPt‚t|dddd d g|ddœƒ}t ||¡t ||¡t|dtjdddg|ddœƒ}|jddtjidd}| ¡}|jddtjiddd}|dksît‚t ||¡t ||¡|jddtjidd}| ¡}|jddtjidd }|dksHt‚t|dtjdddg|ddœƒ}t ||¡t ||¡dS)Nrr9TrOrZr rrr?z\1tyz.tyrTr[Ú.rJ©rr(rrr'r)r*r+)r0rrUrWÚres2r4rXrrrÚtest_regex_replace_dict_mixed¿sxÿ ÿ  ÿ ÿ  ÿÿ  ÿ  ÿ z2TestDataFrameReplace.test_regex_replace_dict_mixedc    Csèt|ƒ}|jddtjiidd}| ¡}| ¡}|jddtjiiddd}|dksVt‚|jddtjiid}|jddtjiidd}|dkst‚t|dddtjtjg|dd    œƒ}t ||¡t ||¡t ||¡t ||¡dS)
Nrr9TrOrZrJr rrr^)    r0rrUrWr_Zres4r4Úres3rXrrrÚtest_regex_replace_dict_nesteds( ÿ  ÿ   z3TestDataFrameReplace.test_regex_replace_dict_nestedcCsR|}tddddgi|d}tddddgi|d}|jd    d
id d }t ||¡dS) NÚfirstÚabcZbcaZcab©Údtypez.bczbc.zc.br r]TrO©rr(r*r+)r0Úany_string_dtyperfrMr7r6rrrÚ2test_regex_replace_dict_nested_non_first_characters
zGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_charactercCsTtdddddgddœƒ}tdddddgddœƒ}| ddddœi¡}t ||¡dS)    NÚQÚTé)ÚTypeÚtmprérm)rjrkrg©r0rMr7r6rrrÚ%test_regex_replace_dict_nested_gh4115!sz:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115cCsÌt|ƒ}t|dt tjgd¡tjtjtjdgdœƒ}|jddgtjdd}| ¡}| ¡}|jddgtjddd    }|dks‚t‚|jddgtjdd
}|dks¤t‚t ||¡t ||¡t ||¡dS) Nr r
rrr9za|bTrOrJr[)    rrÚarrayrr(r'r)r*r+)r0rrMrXrWr_rar4rrrÚ!test_regex_replace_list_to_scalar's4ýÿÿ ÿ   z6TestDataFrameReplace.test_regex_replace_list_to_scalarcCsªt|ƒ}|jdddd}| ¡}|jddddd}|dks>t‚| ¡}|jdddd}|dksbt‚t|dddddg|d    d
œƒ}t ||¡t ||¡t ||¡dS) Nr9rTrOrZr[r rrr)rr(r'r)r*r+©r0rrMrWr_r4rarXrrrÚ!test_regex_replace_str_to_numeric?s     z6TestDataFrameReplace.test_regex_replace_str_to_numericcCs¼t|ƒ}|jddgddd}| ¡}|jddgdddd}|dksFt‚| ¡}|jddgddd}|dksnt‚t|dddddgddtjd    gd
œƒ}t ||¡t ||¡t ||¡dS) Nr9rrTrOrJr[r rr)rr(r'r)rrr*r+rtrrrÚ(test_regex_replace_regex_list_to_numericNs   ÿ  z=TestDataFrameReplace.test_regex_replace_regex_list_to_numericc
CsÈt|ƒ}tddiƒ}tdtjiƒ}|j||dd}| ¡}|j||ddd}|dksXt‚| ¡}|j||dd}|dks|t‚t|dddtjtjg|dd    œƒ}    t ||    ¡t ||    ¡t ||    ¡dS)
Nrr9TrOrZr[r rr)    rrrrr(r'r)r*r+)
r0rrMÚs1Ús2rWr_r4rarXrrrÚ$test_regex_replace_series_of_regexes^s    ÿ  z9TestDataFrameReplace.test_regex_replace_series_of_regexescCsVt|ƒ}tddddg|d|ddœƒ}| dd¡}t ||¡|jjtjksRt‚dS)    Nr rorlr;rrrr)    rr(r*r+r rfrZobject_r))r0rrMrXrWrrrÚ/test_regex_replace_numeric_to_object_conversionps
   zDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversionrKÚ)r{ú,)r|r{cCsbtdddgdddgdddgdœƒ}|j|d}td    ddgdtjdgdddgdœƒ}t ||¡dS)
Nz1,000r Ú3r{rr©Úcol1Úcol2Úcol3rOZ1000©rr(rrr*r+)r0rKrMr6r7rrrÚ+test_joint_simple_replace_and_regex_replacewsýÿ 
ýÿz@TestDataFrameReplace.test_joint_simple_replace_and_regex_replaceÚmetacharz[]z()z\dz\wz\scCsBtd|dgiƒ}| d|dii¡}tdddgiƒ}t ||¡dS)Nr ÚelseZparenrg)r0r„rMr6r7rrrÚtest_replace_regex_metacharsz0TestDataFrameReplace.test_replace_regex_metacharzdata,to_replace,expectedZxaxZxbxrrr ZxcxZxdxz^\s*$c    Cs:|}|||d}|j|dd}|||d}t ||¡dS)NreTrO©r(r*Ú assert_equal)    r0ÚdatarKr7Úframe_or_seriesrhrfÚobjr6rrrÚtest_regex_replace_string_types”s
  z4TestDataFrameReplace.test_regex_replace_string_typescCs8tj|j|jdd…df<tj|j|jdd…df<| tjd¡}t || d¡¡t | dtj¡|¡tj|j|jdd…df<tj|j|jdd…df<d|j|jdd…df<tddgd}t || dd    ¡¡td
t     
d ¡fdt     
d ¡fgƒ}| d
tj¡}ttjt     
d ¡fdt     
d ¡fgƒ}t ||¡dS) Nrrrç„×—ÁÚBr r)r&éú-Z20150101Z20150102) rrr%r&r(r*r+r,rÚpdÚ to_datetime)r0r1Ú zero_filledrMÚdf1Z expected_dfrrrÚ test_replace¦s$ÿÿz!TestDataFrameReplace.test_replacecCsÊtdƒtdƒtdƒdœ}t|ƒ}ddg}tjdg}| ||¡}tdd    tjtjgdd
d d gd dd dgdœƒ}t ||¡dd
g}ddg}| ||¡}tdd    ddgddd d gd dd dgdœƒ}t ||¡dS)Nr rGrHrr]rCr:r rrDrEr<r=r>rB)rrrrr(r*r+)r0r‹ZdfobjrVrLrWrXrrrÚtest_replace_listÁs,
 
 
ýÿ  
 
 
ýÿz&TestDataFrameReplace.test_replace_listc    Cs¾tddggtjdggƒ}td|iƒ}t ||¡}|}| gtj¡}t ||¡d}tj    t
|j ddd| tjgi¡W5QRXtj    t
|j d    dd| tjd
d gi¡W5QRXdS) Nr rroÚcolzwNumPy boolean array indexing assignment cannot assign {size} input values to the 1 output values where the mask is truer)Úsize©ÚmatchrlÚdummyZalt) rrrrr*Úget_objr(rˆÚpytestÚraisesÚ
ValueErrorÚformat)r0rŠZserr‹r7r6ÚmsgrrrÚtest_replace_with_empty_listàs   ÿz1TestDataFrameReplace.test_replace_with_empty_listcCsîtdddœdddœdœƒ}| ddddœ¡}tdddœdddœdœƒ}t ||¡| d| ¡¡}t ||¡tdddœdddœdœƒ}tdddœƒ}| |dddœ¡}tdddœdddœdœƒ}t ||¡| || ¡¡}t ||¡dS)    Nçror ç@r)ZzeroÚoneçà?çð?)rr(r*r+Úmeanr)r0rMr6r7ÚsrrrÚtest_replace_series_dictós   z-TestDataFrameReplace.test_replace_series_dictcCsTtdddgdddggƒ}ddddœ}| |¡}ttjgdƒ}|j}t ||¡dS)Nr!ÚbarÚbahrorlr;)r!r«r¬)rr(rrÚint64Údtypesr*Úassert_series_equal)r0rMÚmÚreprXrWrrrÚtest_replace_converts  
z)TestDataFrameReplace.test_replace_convertcCs¸|}tj|jdd…|j d¡f<tj|jdd…|j d¡f<| tjd¡}|jdd}t ||¡t | dtj¡|¡| tjd¡}|jdd}t ||¡t | dtj¡|¡dS)    Nrr r!r"riîÿÿÿr#r)    rrr-r.r/r(r,r*r+)r0r2r5r6r7rrrÚtest_replace_mixeds    z'TestDataFrameReplace.test_replace_mixedcCsttddgddtddgdddœƒ}ttddgddtd    dgdddœƒ}| dd    ¡}t ||¡|jdd    d
d }|dks€t‚t ||¡dS) Nr§r¤Úfloat64rerror­©rrŽr¦Tr)rrr(r*r+r))r0rMr7r6r4rrrÚ&test_replace_mixed_int_block_upcastingsþÿþÿ   z;TestDataFrameReplace.test_replace_mixed_int_block_upcastingcCs„ttddgddtddgddtddgddd    œƒ}ttddgddtd
dgddtddgddd    œƒ}| dd
¡}t ||¡dS) Nr§r¤r´rerror­rl©rrŽÚCr¦©rrr(r*r+rprrrÚ&test_replace_mixed_int_block_splitting4sýÿýÿ z;TestDataFrameReplace.test_replace_mixed_int_block_splittingcCs®ttddgddtddgdddœƒ}ttdd    gd
dtddgdddœƒ}| d d    ¡}t ||¡ttd    d gd
dtdd    gd
ddœƒ}| dd gd    d g¡}t ||¡dS) Nr§r¤r´rerror­rµr!Úobjectrlr«r¹rprrrÚtest_replace_mixed2Gs&þÿþÿ  þÿz(TestDataFrameReplace.test_replace_mixed2cCs|ttddgddtddgdddœƒ}| d| ¡ ¡¡}| ¡ d¡}| ¡}|d|jd<|d|jd    <t     ||¡dS)
Nr;rr­rerµr´©rrro)roro)
rrr(r¨Úto_dictr'Úastyper-r*r+)r0rMr6r7r°rrrÚtest_replace_mixed3as ÿz(TestDataFrameReplace.test_replace_mixed3cCsXtdddtjgddddgdœƒ}|d     d
¡|d    <| d tj¡}t |d    |d    ¡dS) Nrorlr;ZsomeÚstringsÚhereÚher r ÚInt64r{)rrrr¿r(r*r¯©r0rMrWrrrÚ1test_replace_nullable_int_with_string_doesnt_castms zFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_castrfÚbooleanrÄZFloat64cCsVtdddg|d}tdddg|dœƒ}| dd¡}tdddg|dœƒ}t ||¡dS)    NrorrerrŽÚxrµÚX©rrr(r*r+)r0rfZ nullable_serrMr6r7rrrÚ!test_replace_with_nullable_columnus
 z6TestDataFrameReplace.test_replace_with_nullable_columncCsftdtddƒiƒ}tdddddgiƒ}| ddddœi¡}t ||¡| dddœ¡}t ||¡dS)    Nr—rorr rlr;r)ror
©rrr(r*r+rprrrÚtest_replace_simple_nested_dict~s  z4TestDataFrameReplace.test_replace_simple_nested_dictcCsjtdtddƒiƒ}tdddddgiƒ}| dddd    œ¡}t ||¡| ddddd    œi¡}t ||¡dS)
Nr—rorr rlr;rr)éÿÿÿÿror
rÌrprrrÚ6test_replace_simple_nested_dict_with_nonexistent_value‰s  zKTestDataFrameReplace.test_replace_simple_nested_dict_with_nonexistent_valuecCsNtdddgiƒ ddi¡}| tjdi¡}tdddgitd}t ||¡dS)Nr$é*rÄre)rr¿r(r‘ÚNAr»r*r+©r0rMr6r7rrrÚtest_replace_NA_with_None“sz.TestDataFrameReplace.test_replace_NA_with_NonecCsBttjtjgƒ}| tjdtjdi¡}tddgƒ}t ||¡dS©N)rr‘ÚNaTr(rÚNaNr*r+rÒrrrÚtest_replace_NAT_with_Nonešs z/TestDataFrameReplace.test_replace_NAT_with_NonecCsntddddgdd}ttddddgd    d|d
œƒ}| ddi¡}ttd d dd gdd|d
œƒ}t ||¡dS)NrrÚcategoryrerr
r;rlr´)Úidr—ç@g@r¤r»rÊ)r0Z
cat_seriesrMr6r7rrrÚ(test_replace_with_None_keeps_categorical¡sþÿþÿz=TestDataFrameReplace.test_replace_with_None_keeps_categoricalcCs¸|jd}|jd}tj|jd<d|jd<|jtjdid}|jjtjdidj}t ||¡|jtjdddid}| ¡}d|jd<d|jd<|}t ||¡||jd<||jd<dS)Nr½©rorror©rKr)r-rrr(rkr*r+r')r0r1Z
orig_valueZorig2r6r7r3rrrÚtest_replace_value_is_none´s
 
 
 
 
 
z/TestDataFrameReplace.test_replace_value_is_nonecCs| ¡ tj¡}tj|j|jdd…df<tj|j|jdd…df<| tjd¡}t     || 
d¡¡t     | dtj¡|¡tj|j|jdd…df<tj|j|jdd…df<d|j|jdd…df<|d}tj||dk<||d<|j
dd}t     ||j
dd¡dS)NrrrrrŽÚbfill)Úmethod) r'r¿rÚfloat32rr%r&r(r*r+r,)r0r1r3r“rr6rrrÚtest_replace_for_new_dtypesÈs z0TestDataFrameReplace.test_replace_for_new_dtypesz"frame, to_replace, value, expectedÚintsrorlrreZboolsÚcomplexyð?y@y@yZ
datetime64iârériÉ é r r!)ÚdtÚstrr«rçih é
iäÚ20130101ú
US/Eastern©ZperiodsÚtzrµÚ20130102©ríÚ20130104Ú20130103r§r¤rÚcCs| ||¡}t ||¡dSrÔ)r(r*r+)r0ÚframerKr$r7r6rrrÚtest_replace_dtypesÜsj z(TestDataFrameReplace.test_replace_dtypesc        sÄtjdddœ‰ddddœ‰ttjdtjgdddgddd    gdœƒ}| ˆˆ¡}‡‡fd
d „| ¡Dƒ}t |t|ƒ¡| dddgdddg¡}ttjdtjgdddgddd    gdœƒ}t ||¡ddddœ‰ttjdtjgdddgddd    gdœƒ}| tjˆ¡}‡fd d „| ¡Dƒ}t |t|ƒ¡tjddg‰d ddg‰| ˆˆ¡}| ¡}t    ˆˆƒD](\}}|j||dd}|dksXt
‚qXt ||¡d}t j t |d| ˆˆdd…¡W5QRXdS)Nrr{r·rÎÚmissingrlrÚasdfÚfdcs&i|]\}}|| ˆ|ˆ|¡“qSr©r(©Ú.0ÚkÚv©Úto_reprLrrÚ
<dictcomp>QszLTestDataFrameReplace.test_replace_input_formats_listlike.<locals>.<dictcomp>cs$i|]\}}|| tjˆ|¡“qSr)r(rrrø)rLrrrþ`séþÿÿÿTrz:Replacement lists must match in length\. Expecting 3 got 2r™ro)rrrÚinfr(Úitemsr*r+r'Úzipr)rržrŸ)    r0rMÚfilledr7r6r±r$r4r¡rrürÚ#test_replace_input_formats_listlikeIs>  ÿ  ÿ   ÿ 
  z8TestDataFrameReplace.test_replace_input_formats_listlikec    sîttjdtjgdddgdddgdœƒ}tjdddœ‰| ˆd¡}‡fdd    „| ¡Dƒ}t |t|ƒ¡d
}tj    t
|d | ˆtjddg¡W5QRXtjddg‰| ˆd ¡}|  ¡}ˆD] }|j|d d d}|dks¼t ‚q¼t ||¡dS)Nrrlrr{rõrör·cs"i|]\}}|| ˆ|d¡“qS)rr÷rø©rýrrrþyszJTestDataFrameReplace.test_replace_input_formats_scalar.<locals>.<dictcomp>z.value argument must be scalar, dict, or Seriesr™rÎTr) rrrrr(rr*r+rržÚ    TypeErrorr'r))r0rMrr7r¡r6r±r4rrrÚ!test_replace_input_formats_scalarqs" ÿ   z6TestDataFrameReplace.test_replace_input_formats_scalarcCsdSrÔr)r0rrrÚtest_replace_limit‰sz'TestDataFrameReplace.test_replace_limitcCsRtddddddœƒ}ddd    d
d d œ}td
dd    dd dœƒ}| |¡}t ||¡dS© NúStrongly AgreeÚAgreeÚNeutralÚDisagreeúStrongly Disagree)rrorlr;r
r
rlr;rro)r r r r
r©rr(r*r¯©r0ZanswerÚweightsr7r6rrrÚtest_replace_dict_no_regexs"ûÿ
û
z/TestDataFrameReplace.test_replace_dict_no_regexcCsVtddddddœƒ}tddd    d
d d œƒ}td
dd    dd dœƒ}| |¡}t ||¡dSr    rrrrrÚtest_replace_series_no_regex¢s&ûÿ    ûÿ    
z1TestDataFrameReplace.test_replace_series_no_regexcCstdtjdgiƒ}|jtjdddid}|jdtjfddgd}|jdtjgddgd}tdddgiƒ}t ||¡t ||¡t ||¡dS)NrrorrrÝ©rKr$©rrrr(r*r+)r0rMZres1r_rar7rrrÚ6test_replace_dict_tuple_list_ordering_remains_the_same¹s  zKTestDataFrameReplace.test_replace_dict_tuple_list_ordering_remains_the_samecCsPtddddgddddgddddgddddgdœƒ}| d    di¡}t ||¡dS)
Nrorlr;Ú0ZvrZbtZvo)ZfolZT_oppZT_DirZT_Enhz\DrgrÅrrrÚ)test_replace_doesnt_replace_without_regexÄs
 
 
 
üÿz>TestDataFrameReplace.test_replace_doesnt_replace_without_regexcCsFtddgtdƒdœƒ}| dd¡}tddg|jdœƒ}t ||¡dS)NTFÚabr r )rrr(rr*r+rÒrrrÚtest_replace_bool_with_stringÐs z2TestDataFrameReplace.test_replace_bool_with_stringcCs2ttj dd¡dkƒ}| dd¡}t ||¡dS)Nrlr¦rõZfdsa)rrÚrandomÚrandr(r*r+©r0rMr6rrrÚ(test_replace_pure_bool_with_string_no_opÖs z=TestDataFrameReplace.test_replace_pure_bool_with_string_no_opcCsDttj dd¡dkƒ}| dd¡}ttjdtdƒ}t ||¡dS)Nrlr¦FT)rlrlre)    rrrrr(ÚonesÚboolr*r+rÒrrrÚtest_replace_bool_with_boolÛs z0TestDataFrameReplace.test_replace_bool_with_boolcCsLtddgddgdœƒ}| dddœ¡}tddgddgdœƒ}t ||¡dS)NTF©rroZasdbÚyes)rõTrgrÒrrrÚ%test_replace_with_dict_with_bool_keysász:TestDataFrameReplace.test_replace_with_dict_with_bool_keyscCsVtddgddgdœƒ}| ddi¡}t ||¡|d ddi¡}t ||d¡dS)    Nrorlr;r
)ÚY0ZY1Zreplace_stringÚtestr%)rr(r*r+r¯rrrrÚ!test_replace_dict_strings_vs_intsçs
 z6TestDataFrameReplace.test_replace_dict_strings_vs_intscCs<tdddgiƒ}| tjtj gtj¡}|}t ||¡dS)Nr T)rr(rrrr*r+)r0rMÚrrCrrrÚtest_replace_truthyñsz(TestDataFrameReplace.test_replace_truthyc    Csjtdttddƒƒiƒ}| dtttddƒtddƒƒƒi¡}| tttddƒtddƒƒƒ¡}t ||¡dS)Nr rorrlé)rrrr(Údictrr*r+rÒrrrÚ-test_nested_dict_overlapping_keys_replace_int÷s$ zBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_intcCspt dd¡}| t¡}t dd¡ t¡}td|iƒ}| tt||ƒƒ¡}| dtt||ƒƒi¡}t     ||¡dS)Nrorrlr*r )
rZaranger¿rèrr(r+rr*r+)r0r ZastrZbstrrMr6r7rrrÚ-test_nested_dict_overlapping_keys_replace_strs 
 zBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_strcCsŒtddddgiƒ}| ddddœi¡}tddddgiƒ}t ||¡tddddgiƒ}| dddd    œi¡}tddddgiƒ}t ||¡dS)
Nr TFÚYÚN)TFrror"rg)r0rMrWÚexpectrrrÚtest_replace_swapping_bug
s z.TestDataFrameReplace.test_replace_swapping_bugc sòdtjddddtjddddtjddddtjdd    ddtjddddtjddddtjd
d ddd œi‰td ddddddgdgd}t|jjƒtˆd ¡ƒks¨t‚td‡fdd„|jjDƒiƒ}|jddksØt‚|     ˆ¡}t
  ||¡dS)NÚfnameiÛéÚM)ÚyearÚmonthÚfreqroiÜrr
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.jsonr>r@r=r<r?r:r;©r.csg|]}ˆd|‘qS©r2r©rùrú©rrrÚ
<listcomp>2sz<TestDataFrameReplace.test_replace_period.<locals>.<listcomp>rz    Period[M]) r‘ÚPeriodrÚsetr2rLÚkeysr)r®r(r*r+rprrDrÚtest_replace_periods<ÿ÷ÿù    ö  
z(TestDataFrameReplace.test_replace_periodc    s¨dtdƒtdƒtdƒtdƒtdƒtdƒtdƒd    œi‰td
d d d dddgdgd}t|jjƒtˆd ¡ƒkspt‚td‡fdd„|jjDƒiƒ}| ˆ¡}t     ||¡dS)Nr2z2011-08z2011-01z2012-05z2011-04z2012-08z2011-05z2013-09r9r>r@r=r<r?r:r;rAcsg|]}ˆd|‘qSrBrrCrDrrrEQsz>TestDataFrameReplace.test_replace_datetime.<locals>.<listcomp>)
rrrGr2rLrHr)r(r*r+rprrDrÚtest_replace_datetime7s2ùÿ ù    ö  
z*TestDataFrameReplace.test_replace_datetimecCs&ttdddddtjdgdœƒ}| tjd¡}ttddddtdddgd    d
dœƒ}t ||¡| d¡}t ||¡| dtj¡}ttddddtjtjdgdœƒ}t ||¡| t    d dd t    d dd ¡}tt    ddd t    d dd t    ddd gdtjdgdœƒ}t ||¡| 
¡}tj|j d<| dt j it    d dd ¡}t ||¡| 
¡}tj|j d<| dt j it    d dd ¡}tt    ddd t    d dd  d¡t    ddd gdtjdgdœƒ}t ||¡| 
¡}tj|j d<| dtjit    d ƒ¡}tt    ddd t    d ƒt    ddd gdtjdgdœƒ}t ||¡dS)Nrêr;rërìrrlrµror´rerîrïrðrñrÜrz
US/Pacific)rrrrr(rr*r+r,rr'r-r‘rÕZ
tz_convertrÒrrrÚtest_replace_datetimetzUs| 
þÿ þÿ 
   þÿ 
 
þ
 
 
ý
úÿ
 
 
ý
úÿ
 
 
ý
úÿ
z,TestDataFrameReplace.test_replace_datetimetzc    Csht|ƒ}t || i¡¡t || tgtd¡¡t || dii¡¡t || tdiiƒ¡¡dS)Nrer)rr*r+r(rr»)r0rrMrrrÚ test_replace_with_empty_dictlike§s
z5TestDataFrameReplace.test_replace_with_empty_dictlikezto_replace, method, expectedrßr·g@ZffillÚpad)rorlcCsLtdddgdtjdgdddgd    œƒ}|j|d|d
}t|ƒ}t ||¡dS) Nrrorlrrr rrr·)rKr$ràr)r0rKràr7rMr6rrrÚtest_replace_method°s"$z(TestDataFrameReplace.test_replace_methodzreplace_dict, final_datac     Csøtddgddggddgdd}t |¡}tj|dd…dfddgd    }|ddkrZddgnddg}tj|dd…df|d    }t||d
œƒ}| |d¡}t ||¡d }    tj    t
|    d t ||¡W5QRX|j|dd d}
|
dksèt
‚t ||¡dS)Nrorlr rrØ)r.rfrr;)Ú
categoriesr zHAttributes of DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentr™Tr) rrrrr‘Z Categoricalr(r*r+rržr)) r0Z replace_dictZ
final_datarMr Zex_catrr7r6r¡r4rrrÚ"test_categorical_replace_with_dictØs
  ÿ z7TestDataFrameReplace.test_categorical_replace_with_dictzdf, to_replace, expr
r*)rr€)r
rr*Ú4Ú5Ú6Ú7)rQrRrScCs*t|ƒ}t|ƒ}| |¡}t ||¡dSrÔrg)r0rMrKÚexpr7r6rrrÚtest_replace_commutativeõs
z-TestDataFrameReplace.test_replace_commutativeÚreplacerZ20170827cCs4tdgƒ}| ||dœ¡}t|gƒ}t ||¡dS)Nr r rg)r0ÚrequestrWrMr6r7rrrÚtest_replace_replacer_dtypes
 
z0TestDataFrameReplace.test_replace_replacer_dtypecCsPtddddddgidd}| dd    ¡}tdd    ddddgidd}t ||¡dS)
NÚgrprorlr;r
rrÄrerérgrÒrrrÚ!test_replace_after_convert_dtypes s z6TestDataFrameReplace.test_replace_after_convert_dtypesc    CsJtdddgdddgdœƒ}d}tjt|d    | d
d „¡W5QRXdS) Nr zb rzd ze zf )r¥ÚtwozZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*r™cSs| ¡SrÔ)Ústrip)rÈrrrÚ<lambda>0ózFTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>)rrržrr()r0rMr¡rrrÚtest_replace_invalid_to_replace's
ÿz4TestDataFrameReplace.test_replace_invalid_to_replaceÚfloatr´r­r$cCs<tt d¡|d}|jdtj tjg|d}t ||¡dS)Nrlrer)rrZeyer(rr*r+)r0rfr$rMr6rrrÚ"test_replace_no_replacement_dtypes2sz7TestDataFrameReplace.test_replace_no_replacement_dtypesÚ replacementcCs|tdddgdddgddd    gd
œƒ}td ƒ|_tdddgdddg|dd    gd
œƒ}td ƒ|_|d  d|¡|d <t ||¡dS) Nrorlr;r
rr*rr3r8)rÚA1rŽZAABrŽ)rrr.r(r*r+)r0rcr6r7rrrÚ#test_replace_with_duplicate_columns:s"
ÿ
z8TestDataFrameReplace.test_replace_with_duplicate_columnsz2020-01cCsBtd|gdiƒ}t ||¡}| ¡}| dd¡}t ||¡dS)NZPerr;r§r£)rr*rœr'r(rˆ)r0rŠr$r‹r7r6rrrÚtest_replace_ea_ignore_floatIs
  z1TestDataFrameReplace.test_replace_ea_ignore_floatcCsPddddgddddgd    d
d d gd dddgddddgdœ}t|d dddœ¡}|djjddddgdd|d<|djjd dddgdd|d<ddddgddddgd    d
d d gd dddgddddgdœ}t|d dddœ¡}|djjddddgdd|d<|djjd dddgdd|d<| dd¡}| dd¡}| dd¡}t ||¡d S)!zt
        Test for #23305: to ensure category dtypes are maintained
        after replace with direct values
        rorlr;r
r rrrgø?g@g @g@Úcat1Zcat2Zcat3Zcat4Úobj1Úobj2Zobj3Zobj4)rr€rÚcol4Zcol5©r‰rØ)r€rjr€T)ZorderedrjÚzÚcatXÚobj9N)rr¿ÚcatZreorder_categoriesr(r*r+©r0Z
input_dictZinput_dfÚ expected_dictr7r6rrrÚ test_replace_value_category_typeSsL
 
 
 
 
û
ÿ
 
ÿ
 
 
ÿ
 
 
 
 
 
û
ÿ
 
ÿ
 
 
ÿ
   z5TestDataFrameReplace.test_replace_value_category_typecCsvdgdgdgdœ}t|d ddddœ¡}dgdgd    gdœ}t|d ddddœ¡}| ddd    d
œ¡}t ||¡d S) zf
        Test to ensure category dtypes are maintained
        after replace with dict values
        r rhrgr~rkrØrlrnrm)r rhrgN)rr¿r(r*r+rprrrÚtest_replace_dict_category_type†s
 
ÿ
 
ÿz4TestDataFrameReplace.test_replace_dict_category_typecCsHtdddgƒ}t d¡}|j|didd}tdddgƒ}t ||¡dS)Nr rrz^a$rlTrO)rÚreÚcompiler(r*r+)r0rMrIr6r7rrrÚ test_replace_with_compiled_regex s
 
z5TestDataFrameReplace.test_replace_with_compiled_regexcCsZtdt dd¡t dd¡giƒ}| dt dd¡dii¡}tdddgiƒ}t ||¡dS)Nr rrorÈ)rr‘ÚIntervalr(r*r+rÒrrrÚtest_replace_intervals¨s z+TestDataFrameReplace.test_replace_intervalscCsNdddddœi}tdt d¡iƒ}| |¡}tdt d¡iƒ}t ||¡dS)NZpositiveror)u正面u中立u负面r;)rrrr(r*r+)r0Zcolumns_values_mapr”r6r7rrrÚtest_replace_unicode¯s
 
z)TestDataFrameReplace.test_replace_unicodecCs8|dgƒ d¡}| ¡}| dtji¡}t ||¡dS)Nr>z|S)r¿r'r(rrr*rˆ)r0rŠr‹r7rrrÚtest_replace_bytes·sz'TestDataFrameReplace.test_replace_bytesz!data, to_replace, value, expectedr£Úboxc    Cs0||ƒ}||ƒ}| ||ƒ|¡}t ||¡dSrÔr‡)    r0r‰rKr$r7r{rŠr‹r6rrrÚ!test_replace_list_with_mixed_type¾sz6TestDataFrameReplace.test_replace_list_with_mixed_typeÚvalcCsjtdd|giƒ}| |d¡}tdddgitd}t ||¡tdd|giƒ}| |di¡}t ||¡dS)Nr rore)rr(r»r*r+)r0r}rMr6r7rrrÚ%test_replace_value_none_dtype_numericÑs  z:TestDataFrameReplace.test_replace_value_none_dtype_numericN)bÚ__name__Ú
__module__Ú __qualname__r8rÚmarkÚ parametrizerrrNrYr\r`rbrirqrsrurvryrzrƒr†r‘rÑrŒr•r–r¢rªr²r³r¶rºr¼rÀrÆrËrÍrÏrÓr×rÛrÞrârÚint32Úint16rrrrrórrrrrrrrrr!r$r'r)r,r-r1rIrJrKrLrNrPrVZint8rár´rYr[r`rbrerFrwrfrrrsrvrxryrzrÚtuplerrr|r~rrrrrs 
ýý 
 
 
ýý 
 
 
ýýèþ%)(Eÿ
 
þþ
     
 
&üüüü
 
 
ýÿÿÿ
 
òü
 
ü 
þÿ
 
 
 
 
ý
úÿ÷üüüü¡þi
(  
    
 "R    $ý$ýýýýéþ 
2þ
 
ý
ýúþ
ûþ
 
 
 
    3üþ        rc    @s¾eZdZej dedƒedƒdœedƒeedƒƒdœg¡ej ddej    fdg¡ej d    d
d g¡ej d d
d g¡ej d d
d g¡dd„ƒƒƒƒƒZ
ej dd d
g¡dd„ƒZ dd„Z dd„Z dS)ÚTestDataFrameReplaceRegexr‰r rGr r
zto_replace,valuer9)r?z\1\1\1Ú compile_regexTFÚ regex_kwargrc Cs’t|ƒ}| ¡}|rt |¡}|r,|}    d}nd}    |j||||    d}
|rV|
dksRt‚|}
|tjkrhtj} nd} | |j|ddkdf<t     
|
|¡dS)NTrZz...r r]) rr'rtrur(r)rrr%r*r+) r0r‰rKr$rˆr‰rrMr7rIr6Zexpected_replace_valrrrÚtest_regex_replace_scalarßs"
 
z3TestDataFrameReplaceRegex.test_regex_replace_scalarrIcCs„tdgdgdœƒ}tdgdgdœƒ}|jdd|d}t ||¡tdgdgdœƒ}tdgdgdœƒ}|jdd|d}t ||¡dS)Nrrµro)rKr$rIÚ1rg)r0rIr”Z expected_df1Z
result_df1Zdf2Z expected_df2Z
result_df2rrrÚtest_replace_regex_dtype_frame    s z8TestDataFrameReplaceRegex.test_replace_regex_dtype_framecCsZtdddgdddgdœƒ}| dtjdœ¡}tdtjdgtjddgdœƒ}t ||¡dS)Nrrorlrµr"r‚rÒrrrÚ+test_replace_with_value_also_being_replacedszETestDataFrameReplaceRegex.test_replace_with_value_also_being_replacedcCsPtddddgddddgdœdd}| ¡}|jddgd    dgd
}t ||¡dS) Nr¥r\Zthreer rØrer]ÚdefÚ_r)rr'r(r*r+rprrrÚ'test_replace_categorical_no_replacements
 
þûzATestDataFrameReplaceRegex.test_replace_categorical_no_replacementN)rr€rrr‚rƒrrrrrŠrŒrrrrrrr‡Þs$þþ ÿ
r‡)Ú
__future__rrrtÚnumpyrrZpandasr‘rrrrrZpandas._testingZ_testingr*Zfixturerrrr‡rrrrÚ<module>s0   K