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
U
­ý°dIÅã@sÎdZddlmZddlZddlZddlmZmZddl    Z
ddl    m Z m Z m Z mZmZmZmZddlmZddlmZdd„Zd    d
„Zd d „Zd d„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z dd„Z!dd„Z"dd „Z#d!d"„Z$d#d$„Z%d%d&„Z&d'd(„Z'd)d*„Z(d+d,„Z)d-d.„Z*d/d0„Z+d1d2„Z,d3d4„Z-d5d6„Z.d7d8„Z/ej0 1d9d:d;d<d=„fd>d;d?d=„fd@dAdBd=„fd@dCdDd=„fg¡dEdF„ƒZ2ej0 1dGd:d>g¡ej0 1dHdIdJg¡ej0 1dKdLgdMej3dNœeej3gdMdOdPfdLgdMdQgdRdSgdSej3gdSgdTdNœdUdVdWgej3gdXdUdVgdUdVdWej3dYdZd[d\d]d^dUdVg dUd_dVgej3gdXdUd_gdUd_dVej3d`dadbdcdddWdUd_g deœfg¡dfdg„ƒƒƒZ4ej0j5ej0 1d9d:d;dhd=„fd>d;did=„fd@dAdjd=„fd@dCdkd=„fg¡dldm„ƒƒZ6dndo„Z7ej0 1dpdQedqdqdqgdQdPfdQdrge dqdqdqgdqdqdqgdsœƒfg¡ej0 1dtdudvdwg¡dxdy„ƒƒZ8dzd{„Z9ej0 1d|dJdIg¡ej0 1d}dJdIg¡ej0 1d~dd€dg¡ej0 1d‚dƒdej3ej3d„d„d„d…d…d…gfdƒdqej3ej3d„d„ej3d…d…ej3gfd†dd„d„d„d…d…d…ej3ej3gfd†dqej3d„d„ej3d…d…ej3ej3gfg¡d‡dˆ„ƒƒƒƒZ:ej0 1d‰dƒd†g¡dŠd‹„ƒZ;ej0 1dŒdej<dej0j=dŽddg¡ej0 1d‘dqd’g¡ej0 1d‰dƒd†dg¡ej0 1d“ddqg¡d”d•„ƒƒƒƒZ>ej0 1d–dƒd—d—d˜ej3d—d™d™gfd†d—d˜d˜d—d—d™ej3gfg¡dšd›„ƒZ?ej0 1dœej@ejAg¡ddž„ƒZBdŸd „ZCej0 1dœeDeEejDejEd¡d¢g¡d£d¤„ƒZFej0 1d¥d¦d§gdRd¨gdXd©gfdªd«gdRd¬gdXd©gfg¡d­d®„ƒZGd¯d°„ZHej0 1dœd>d:d±d²g¡d³d´„ƒZIej0 1dœdƒd†d@g¡ej0 1dµd¶d·edgƒfg¡d¸d¹„ƒƒZJdºd»„ZKd¼d½„ZLd¾d¿„ZMdÀdÁ„ZNdÂdÄZOdÄdńZPdÆdDŽZQdÈdɄZRej0 1dÊdËgdËdÌgg¡dÍd΄ƒZSdÏdЄZTdÑd҄ZUdÓdԄZVdÕdքZWej0 1d×ejXdØdÙdSdRdqgfdÚd=„dÛej3dSdRej3gfg¡ej0 1dÊdÜgdÜdÝgg¡ej0 1dÞdJdIg¡dßdà„ƒƒƒZYej0 1dÊdádádâgg¡dãd䄃ZZdS)åz test with the .transform é)ÚStringION)Úensure_platform_intÚis_timedelta64_dtype)Ú CategoricalÚ    DataFrameÚ
MultiIndexÚSeriesÚ    TimestampÚconcatÚ
date_range)Úget_groupby_method_argscCst ||¡dk ¡st‚dS)Ngê-™—q=)ÚnpÚabsÚallÚAssertionError©ÚaÚb©rúdd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/groupby/transform/test_transform.pyÚassert_fp_equalsrc CsÞtt d¡dt d¡d}t d¡}tj |¡| |¡}| dd„¡}| dd„¡}|ddksht‚t    tjd    d
d  
dd ¡d dgdd dgd}dddg}|  ¡ |¡ dd„¡ |¡  ¡}| |¡ dd„¡ |¡  ¡}t  ||¡dd„}t    tj dd¡d ddddgdddddgd}    dd dd dg}|     |¡ |¡ |¡  ¡}|    j|d!d" |¡ |¡  ¡}t  ||¡t  ¡}| tjd#d$¡}
|
 d%d„¡t    tdd&ƒtdƒd'œƒ}| d ¡ t¡}t    dtdƒiƒ}t  ||¡dS)(Né    é©ÚindexcSs|dS)Nrr©ÚxrrrÚ<lambda>%óz test_transform.<locals>.<lambda>cSs || ¡S©N)Úsumrrrrr'réé éÚint64©Údtypeérrré©ÚcolumnsrcSs || ¡Sr©Úmeanrrrrr4rcSs || ¡Srr+rrrrr8rcSs||jddS©Nr©Úaxisr+)ZarrrrrÚdemean;sztest_transform.<locals>.demeanéÚcÚdÚeZJoeZSteveZWesZJimZTravisÚoneÚtwoF©Ú
group_keysÚM)ÚfreqcSs|dS©Nr(rrrrrrKré
r)rr ÚarangeÚrandomÚshuffleÚreindexÚgroupbyÚ    transformrrZreshapeÚ
sort_indexr,ÚtmÚassert_frame_equalÚrandnÚapplyZmakeTimeDataFrameÚpdZGrouperÚrangeÚmax) ÚdatarÚgroupedZ transformedÚdfÚkeyÚexpectedÚresultr0ZpeopleÚgrrrÚtest_transformsP
 
ÿ
ÿþýÿ    ý rRcCs¦tt d¡dtj d¡dœƒ}| d¡d}t | ¡jt    | 
¡jƒ¡}t ||j dd}|  tj¡}t ||¡|  d¡}t ||¡tdd    d    dgd
d d d gtddƒd    dddgdœddddgd}| d¡  d¡}tdƒtdƒtdƒtdƒg}td
d d d g|d    dddgdœdddgd}t ||¡| d¡ddg  d¡}|ddg}t ||¡td    ddgdddggdddgd}| d¡  d¡}|jdd    d}t ||¡dS) Ni †r)ÚidÚvalrSrT©rÚnamer,rr(皙™™™™ñ?gÍÌÌÌÌÌ@gÍÌÌÌÌÌ@g@ú2014-1-1ú2014-1-4r'é)ÚgroupingÚfr3Úir[r\r]r3©r*Úfirstú2014-1-2)r\r3r]r1r#rQrr.)rr r=r>rFrAÚrepeatr,ÚvaluesrÚcountrrrBrDÚassert_series_equalr r    rEÚdrop)rMÚgrprbrOrPÚdatesrrrÚtest_transform_fastTsD   
 
 
 
ü
ù    üþ   "rhc
CsL| dd„¡}| tj¡}t |j|j¡|D]\}}t| |j¡| ¡ƒq.| dd„¡}| tj¡}t |j|j¡|D]<\}}|jdd}| |j¡}|D]}t||||ƒq q||jdddddœdd}| tj¡}t |j|j¡t |j    |j    ¡|D]D\}}| d¡}|j|j    d}|jD]}    t| 
|    ¡||    ƒq(qdS)    NcSs|jSr©Úmonthrrrrr‡rz*test_transform_broadcast.<locals>.<lambda>cSs|jSrrirrrrrŽrrr.r(©ÚAÚBÚCÚDr^) rArBr r,rDÚassert_index_equalrrr@r*Úxs)
ÚtsframeÚtsrLrPÚ_ZgpZaggedÚresÚcolÚidxrrrÚtest_transform_broadcast†s,        
 
rxcCs˜tddgddgddgdœdd    gd
}t||ƒ}|jd d dgdd j|f|žŽ}|j d d dg¡j|f|žŽj}|d krˆ|d d¡|d<t ||¡dS)Nr(r'rrZr1r#©rrr2rÚyrrr.)ÚdiffÚshiftrr$)rr rArBÚTÚastyperDÚ assert_equal)ÚrequestÚtransformation_funcrMÚargsrPrOrrrÚtest_transform_axis_1£s$
  rƒcCsŠ|dkr"tjjdd}|j |¡tddgddgdd    gd
œd d gd }|jdddgdd |¡}|j dddg¡ |¡j}t     
||¡dS)N)ÚcorrwithÚngroupÚnthz&transform incorrectly fails - GH#45986©Úreasonr(r'rrZr1r#ryrrzrrr.) ÚpytestÚmarkÚxfailÚnodeÚ
add_markerrrArBr}rDr)r€Úreduction_funcÚmarkerrMrPrOrrrÚtest_transform_axis_1_reducer³s $rc    Cs`|jdd…}t|jƒ}t|jƒ}ttj ||¡|j|jdd}|}|jdd„dd}||     d    ¡}| 
d
d„¡}t   ||¡|j }|jd d„d dd }||     d    ¡}| 
dd„¡}t   ||¡|jd dgttdt|ƒƒƒ}|jdd„dd}||     d    ¡}| 
dd„¡}t   ||¡|j }|jdd„d dd }||     d    ¡}| 
dd„¡}t   ||¡dS)Nrr1Úfloat64)rr*r&cSs| ¡Sr©ÚweekdayrrrrrÑrz(test_transform_axis_ts.<locals>.<lambda>Fr7r,cSs||jddSr-r+rrrrrÓrcSs| ¡Srr’rrrrr×rr()r/r8cSs|j| d¡jSr;©r}r,rrrrrÙrr'cSs| ¡Srr’rrrrrÞrcSs||jddSr-r+rrrrràrcSs| ¡Srr’rrrrrärcSs|j| d¡jSr;r”rrrrrær)ÚilocÚlenrr*rr r>rFrArBrGrDrEr}ÚlistrI)    rrÚbaseÚrr2ZtsorsrLrPrOrrrÚtest_transform_axis_tsÃs:
 
 ÿ    ršcCsDtddgddggƒ}| d¡ d¡}tdgdggƒ}t ||¡dS)Nr(rr'r,gø?©rrArBrDrE©rMrPrOrrrÚtest_transform_dtypeêsrcCsZttdƒt d¡dœƒ}| d¡d dd„¡}ttjddd    d
dd d }t ||¡dS) NÚ20130101r1©rlrmrlrmcSs |jddS)NF)Z    ascending)Úrankrrrrr÷rz$test_transform_bug.<locals>.<lambda>réÿÿÿÿ)Ústepr‘©rVr&)    rr    r r=rArBrrDrdrœrrrÚtest_transform_bugósr¤cCs„tddgdd}tddgddgdœƒ}| d    ¡j d
d „¡}t ||¡tddgddgdœƒ}| d    ¡j d d „¡}t ||¡dS) NTrl©rVrWgš™™™™™@r(r'rŸrmcSsdS©NTrrrrrrrz3test_transform_numeric_to_boolean.<locals>.<lambda>cSsdSr¦rrrrrrr)rrrArlrBrDrd)rOrMrPrrrÚ!test_transform_numeric_to_booleanüs r§cs–ttdƒt d¡dœƒ}ttdƒtdƒgddd}|dd‰| d¡d ‡fdd„¡ˆ}t ||¡| d¡d d    d„¡}t ||¡dS)
Nržr1rŸrlr¥rcs| ¡| ¡ˆSr©rJÚminr©Z    base_timerrrrz6test_transform_datetime_to_timedelta.<locals>.<lambda>cSs| ¡| ¡Srr¨rrrrrr)    rr    r r=rrArBrDrd)rMrOrPrrªrÚ$test_transform_datetime_to_timedelta
s ÿÿ r«cCsœtdtdddddœƒ}| d¡j dd    „¡}td
d gd d }t ||¡tdtdddddœƒ}| d¡j dd    „¡}tddgtj    d d}t ||¡dS)Nr(z
2015-01-01r'ro©Úperiodsr:rrcSs|jj|jj ¡Sr)ÚdtÚ    dayofweekr,rrrrr"rz4test_transform_datetime_to_numeric.<locals>.<lambda>çà¿çà?rr¥cSs|jj|jj ¡Sr)r®r¯r©rrrrr+rr)r&rV)
rr rArrBrrDrdr Úint32rœrrrÚ"test_transform_datetime_to_numerics ÿ  ÿr³cCstd}tjt|ƒddgdgd}| d¡d dd„¡}t|jƒsDt‚|ddg d¡ d    d„¡}t|jjƒspt‚dS)
NaE
    idx     A         ID3              DATETIME
    0   B-028  b76cd912ff "2014-10-08 13:43:27"
    1   B-054  4a57ed0b02 "2014-10-08 14:26:19"
    2   B-076  1a682034f8 "2014-10-08 14:29:01"
    3   B-023  b76cd912ff "2014-10-08 18:39:34"
    4   B-023  f88g8d7sds "2014-10-08 18:40:18"
    5   B-033  b76cd912ff "2014-10-08 18:44:30"
    6   B-032  b76cd912ff "2014-10-08 18:46:00"
    7   B-037  b76cd912ff "2014-10-08 18:52:15"
    8   B-046  db959faf02 "2014-10-08 18:59:59"
    9   B-053  b76cd912ff "2014-10-08 19:17:48"
    10  B-065  b76cd912ff "2014-10-08 19:21:38"
    z\s+rÚDATETIME)ÚsepZ    index_colZ parse_datesZID3cSs| ¡Sr©r{rrrrrFrz(test_transform_casting.<locals>.<lambda>cSs| ¡Srr¶rrrrrIr)    rHZread_csvrrArBrr&rr´)rKrMrPrrrÚtest_transform_casting2sÿr·cCs4| dd„dd„g¡}| dd„¡| tj¡dS)NcSs|jSr)ÚyearrrrrrNrz)test_transform_multiple.<locals>.<lambda>cSs|jSrrirrrrrNrcSs|dS©Nr'rrrrrrPr)rArBr r,)rsrLrrrÚtest_transform_multipleMsrºcCs\|ddd… |j¡}| dd„¡}|jdd}dd„}| dd„¡ |¡}t ||¡dS)Nr1cSs|jSrrirrrrrWrz)test_dispatch_transform.<locals>.<lambda>Úpad©ÚmethodcSs |jddS)Nr»r¼©ÚfillnarrrrrZrcSs|jSrrirrrrr[r)r@rrAr¿rBrDrE)rrrMrLZfilledZfillitrOrrrÚtest_dispatch_transformTs  rÀc    s<tdddddddgddtjddtjdgdœtd    d
ƒd }ˆd krRd d„}dd„‰nTˆdkrldd„}dd„‰n:ˆdkrŽdd„}d‰‡fdd„‰n‡fdd„}‡fdd„‰|| d¡ƒ}|dgjdd…|dgjdd…|dgjdd…g}t‡fdd„|Dƒƒ ¡}| |j    ¡}ˆdkr,t
  ||¡n t
  ||¡dS) NÚfooÚbarZbazr(r'rrZrŸz
2020-01-01z
2020-01-07rÚcumcountcSs
| d¡S)NrérBrrrrrirz4test_transform_transformation_func.<locals>.<lambda>cSsttt|ƒƒ|jƒSr)rrIr–rrrrrrjrr¿cSs|jdddS)Nr¿r©ÚvaluerÄrrrrrlrcSs |jddS)NrrÅr¾rrrrrmrr…cSs
| d¡S)Nr…rÄrrrrrorr¡csˆd7‰tˆ|jdS)Nr(r)rrr)ÚcounterrrÚmock_oprsz3test_transform_transformation_func.<locals>.mock_opcs
| ˆ¡SrrÄr©rrrrxrcs t|ˆƒƒSr)ÚgetattrrrÉrrryrrlrmr#csg|] }ˆ|ƒ‘qSrr)Ú.0rQ)rÈrrÚ
<listcomp>sz6test_transform_transformation_func.<locals>.<listcomp>©rÃr…) rr Únanr rAr•r
rCZset_axisrrDrdrE)rrMZtest_oprPÚgroupsrOr)rÇrÈrrÚ"test_transform_transformation_func_s2þû
 
  : 
rÐcCsPdd„}| d¡ddg |¡}|ddg}| |d¡ |¡}t ||¡dS)NcSs| ¡Srr+rrrrrŠrz/test_transform_select_columns.<locals>.<lambda>rlrnro)rArBrDrE)rMr\rPZ    selectionrOrrrÚtest_transform_select_columns‰s
 rÑc    Cszddddg|_| d¡}|d}tjtdd| dd„¡W5QRXtjtdd| d¡ dd„¡W5QRXdS)    NrlrmroúCould not convert©ÚmatchcSs
t |¡Sr©r r,rrrrržrz0test_transform_nuisance_raises.<locals>.<lambda>cSs
t |¡SrrÕrrrrr¡r)r*rAr‰ÚraisesÚ    TypeErrorrB)rMrLZgbcrrrÚtest_transform_nuisance_raises“s
rØcCst| d¡jddd}| d¡ddg tj¡}t ||¡| d¡d d¡}| d¡d tj¡}t ||¡dS)Nrlr,T)Z numeric_onlyrnro)rArBr r,rDrErdrœrrrÚtest_transform_function_aliases¤s  rÙcCshttjdddgtddƒdœƒ}| d¡d d¡}tjtd    ƒtd    ƒtdƒg}t    |dd
}t
  ||¡dS) Nr(rrXrY)r[r3r[r3r_r`r¥) rr rÎr rArBrHZNaTr    rrDrd)rMrPrgrOrrrÚtest_series_fast_transform_date®sÿü rÚcCs tddddgdddtjgdœƒ}tdgdƒ}dd„}| d    ¡ t¡d
| d    ¡d
 t¡| d    ¡ |¡d
| d    ¡d
 |¡g}|D]}tj||d d q†dS) Nr(r'r)Úcol1Úcol2ç@rZcSs
t |¡Sr)r ZnansumrrrrÚnsumÃsz#test_transform_length.<locals>.nsumrÛrÜF)Z check_names)    rr rÎrrArBr rDrd)rMrOrÞÚresultsrPrrrÚtest_transform_length¾s üràcCsRtddddgddddgdœƒ}| d¡}| tj¡}| d    d
„¡}t ||¡dS) Nrrrr(rrZrŸrlcSstj|ddSr-rÕrrrrrÙrz)test_transform_coercion.<locals>.<lambda>)rrArBr r,rDrE)rMrQrOrPrrrÚtest_transform_coercionÐs
 
 rác
Cs”tddddddgtdddtddddddgddddœƒ}tjdd    "| d
¡d d g d d„¡}W5QRXttjtddddddgdddœƒ}t ||¡tddddddgdddddddgddœƒ}tjdd    Pt    j
t dd| d
¡ dd„¡W5QRX| d
¡d d g dd„¡}W5QRXttjddddddgdœƒ}t ||¡tddddddgƒ}tddddddgd|ddœƒ}tjdd    Pt    j
t dd| d
¡ dd„¡W5QRX| d
¡d d g dd„¡}W5QRX|j dd…}||  ¡| ¡}|j dd…}||  ¡| ¡}ttjt||gƒdœƒ}t ||¡| d
¡d d g dd„¡}tdd d!d"d#d$dgdœƒ}t ||¡dS)%Nr(r'r‘r%rrÁrkÚignore)rrlrmrncSs|| ¡| ¡Sr©r,Ústdrrrrrërz1test_groupby_transform_with_int.<locals>.<lambda>r¡r)rmrnrÒrÓcSs|| ¡| ¡SrrãrrrrrýrcSs|| ¡| ¡Srrãrrrrrÿrgð¿ççð?rZr<r1cSs|| ¡| ¡Srrãrrrrr    rcSs|| ¡| ¡Srrãrrrrr rr#cSs |ddSr¹rrrrrrrç@rÝg@ç$@ç@)rrr ZerrstaterArBrÎrDrEr‰rÖr×r•r,rär
)rMrPrOÚsÚs1Ús2rrrÚtest_groupby_transform_with_intÝs^
üÿÿÿ üÿÿ ÿ ríc Cspttdƒddddtjdddddg
dœƒ}| |j¡d t¡}td    d    d
d tjd d d d d g
dd}t     
||¡dS)Nr<r(r'rrZr1rrrærçrÝç@ç"@r¥) rrIr rÎrArrBrJrrDrdrœrrrÚ%test_groupby_transform_with_nan_groups("rðc    CsÐt ddddddgddddddgg¡}tddddddgt ddd    gd¡t dd
¡d œ|d }d d„}| d    ¡}| |¡}|djtj    ksŒt
‚t   dd¡.|D]"\}}||ƒ}t  ||j|¡qžW5QRXdS)Nrr(r'rrærçrrr2g@)r3r2ÚvrcSs|dd|d<|dd…S)Nr3r'rQr(r)Úgrouprrrr\.sz$test_transform_mixed_type.<locals>.fr3zmode.chained_assignment)rZ from_arraysrr Ztiler=rArGr&r‘rrHZoption_contextrDrEÚloc)rrMr\rLrPrNròrurrrÚtest_transform_mixed_type#s &
ýú    
 
 rôzop, args, targopÚcumprodrcCs| ¡Sr©rõrrrrrArrÚcumsumcCs| ¡Sr©r÷rrrrrBrr|)r¡cCs
| d¡S©Nr¡©r|rrrrrCr)r(cCs| ¡SrrúrrrrrDrcCsœttj d¡ƒ}| ¡}tj|jdd…<tjjdddd t    ¡}||fD]N}| 
|¡  |¡}t   || 
|¡j |f|žŽ¡t   |t| 
|¡|ƒ|Ž¡qHdS)Néèr'r<ré2©Úsize)rr r>rFÚcopyrÎr•Úrandintr~ÚfloatrArBrDrdrÊ)Úopr‚ÚtargoprêÚ    s_missingÚlabelsrKrOrrrÚtest_cython_transform_series>s  rrÚskipnaFTz
input, exprr<)rNrÆrÆr¥rr'rérÝrïg;@r!g@T@g`n@gȆ@g¡@g¡¹@gÀ8Ó@rîg(@g.@g2@g5@g8@))rõF)rõT)r÷F)r÷TcCsXt|ƒ}| d¡dj||d}t|tƒr8|||f}n|}t|dd}t ||¡dS)NrNrÆ)rr¥)rrArBÚ
isinstanceÚdictrrDrd)rrÚinputÚexprMrPrOrrrÚtest_groupby_cum_skipnaWs.
 r cCs| ¡Srrörrrrr“rcCs| ¡Srrørrrrr”rcCs
| d¡Srùrúrrrrr•rcCs| ¡Srrúrrrrr–rc Cs¾ttj d¡ƒ}| ¡}tj|jdd…<tjjdddd t    ¡}t
dƒ}|dd…}tj|d<t ||d    d    d    d    dgd
t d dd t jd    d dd|d|ddœdddddddgd}|d d¡|d<| ¡}    t tdƒtdƒg¡|    _||    fD]Ê}d|iddiddifD]¬}
|jfddi|
—Ž} |dkrjd|
krj| dg |¡} | ddg |¡} t| | gd    d }n
|  |¡}|jd    d }| |jj|f|žŽjd    d }t ||¡t| |j|ƒ|Žjd    d }t ||¡|D]Ü}|d!krf|dkrf|dkr|d"ksfd# d$d%d&g¡}tjt|d'| | |¡W5QRXtjt|d't| ||ƒƒW5QRXnJ| | |¡}||_ t !|| |j|f|žŽ¡t !|t| ||ƒ|Ž¡q֐qqìdS)(Nrûr'r<rrürýZqwertyuiopasdfghjklzr1r(éÈz1990-1-1©r­rê)r:r­)rÚ float_missingÚintÚdatetimeÚ    timedeltaÚstringÚstring_missingrrrrrrrr^ÚcategoryÚcatédÚbyÚlevelr8Fr|r.)rrrr÷ú|zdoes not support .* operationsz$.* is not supported for object dtypez!is not implemented for this dtyperÓ)"rr r>rFrÿrÎr•rr~rr—rr rHZtimedelta_rangerZ from_productrIrrArGr
rCr*rBrDrErÊÚjoinr‰rÖr×rVrd)rr‚rrêrrÚstringsZstrings_missingrMZdf2Z    gb_targetÚgbr]r\rOrPr2ÚmsgrrrÚtest_cython_transform_frames†  
 
ù
ùöý
 
   ÿþýýýÿr cCs~t ddddddddd    d
d d g ¡}ttj d dd¡|ddddgd}d}tjt|d|j    d d d 
dd„¡W5QRXdS)N)Úsynrl)Úmisrl)Únonrl)r!rn)r"rn)r#rn)r!r})r"r})r#r})r!ÚG)r"r$)r#r$r(r<)rZr"rlrnr$r}r)z5transform must return a scalar value for each group.*rÓ)r/rcSs|j|jddddS)Nr(r.r)Údivr )Úzrrrrrz6test_transform_with_non_scalar_group.<locals>.<lambda>) rÚ from_tuplesrr r>rr‰rÖÚ
ValueErrorrArB)ÚcolsrMrrrrÚ$test_transform_with_non_scalar_groupïs.ôÿ
ÿr*z cols,expectedr(r2)rr2Úagg_funcrcr rþcCs|ttdddtdƒtddƒdœƒ}| d¡| |¡}|dkrJ| d    ¡}n"|d
krl|d d gkrl|d  d¡}t ||¡dS) Nú
2018-01-01rrr!r<ryrr rrþrr2)    rr rIrArBr~ÚrenamerDr)r)rOr+rMrPrrrÚtest_transform_numeric_ret
s ÿ r.cCsœddgdtdƒgddgdtdƒgg}t|ddgd}| d¡ d    ¡}tdddddgiƒ}t ||¡| d¡d d    ¡}tddddgdd
}t ||¡dS) NrrårÎrrærNrbr^Úffillr¥)rrrArBrDrErrd)rKrMrPrOrrrÚtest_transform_ffill$s$ r0Ú mix_groupingsÚ    as_seriesz    val1,val2)rÁrÂ)r(r')rærçzfill_method,limit,exp_valsr/Úval1Úval2ÚbfillcCs.tjtj|tjtj|tjtjg}t|ƒ}t|ƒD]*\}    }
|
dkrJ|||    <q0|
dkr0|||    <q0|rŠddgt|ƒ} dd„} | |ƒ}| |ƒ}n,dgt|ƒdgt|ƒ} |d}|d}t| |dœƒ} |rüt|  d    ¡d
|ƒ|d }t|d
d }t     
||¡n.t|  d    ¡|ƒ|d }td
|iƒ}t      ||¡dS) Nr3r4rrcSs g}|D]}| ||g¡q|Sr)Úextend)Úlist_objÚtemprrrrÚ
interweaveUsz+test_group_fill_methods.<locals>.interweaver')rNrTrNrT©Úlimitr¥) r rÎr—Ú    enumerater–rrÊrArrDrdrE)r1r2r3r4Ú fill_methodr;Zexp_valsÚvalsZ    _exp_valsrZexp_valÚkeysr9rMrPr rrrÚtest_group_fill_methods0s. 
 
 
  r@r=cCstdgd}tjgddgd}|dkr6|ddd…}t||dœƒ}|jddd    }t| d¡|ƒƒ}t ||¡dS)
Nrér<r(r5r¡©rrzrr.)r rÎrrerÊrArDrE)r=rrzrMrOrPrrrÚtest_pad_stable_sortingns
rCr:roz7GH#23918 before method uses freq in vectorized approachr‡)Zmarksr­r¡r;c
CsÜdtjtjtjddddtjdg
}ddg}t |t|ƒ¡}t||ddœƒ}|}    |dk    rlt| d    ¡|ƒ|d
}    |     |j¡}
|
d j|
d      |¡d} | d    ¡} |t
kr°| d } n
|   d ¡} | j ||||d } t  | | ¡dS) Nrr(r'rZr<rr)rNr>rNr:r>)r­r=r;r:)r rÎrar–rrÊrArNÚobjr|rÚto_frameZ
pct_changerDr)Úframe_or_seriesr:r­r=r;r>r?Zkey_vrMZdf_grfrOrrPrrrÚtest_pct_changes(  
 
 
ÿrGzfunc, expected_statusÚshrtÚlngÚntrlc        Cs²t dddddddg¡}dddddddg}dtjdtjddtjg}t|||d    œƒ}| d
d g¡}t| d ¡d |ƒƒ}tj    t
t ||gŽƒd
d gd }t ||d d}t  ||¡dS)Nr,z
2018-01-02ZMSFTZAAPLZTSLArHrIrJ)ÚdateÚsymbolÚstatusrKrLrM)ZtuplesÚnamesrU)rHÚ to_datetimer rÎrÚ    set_indexrÊrArr'r—ÚziprrDrd)    ÚfuncZexpected_statusrKrLrMrMrPrrOrrrÚ&test_ffill_bfill_non_unique_multilevel©s*    ùÿ ÿrSrRcCs\tddgtjdgddggddgd}tdtjdgdd}| d¡d |¡}t ||¡dS)NrÁTrNrTr^r¥)rr rÎrrArBrDrd)rRrMr rurrrÚtest_any_all_np_funcÌsÿrTcCs|dd„}ttdƒdddddgdœƒ}tddd    dd
d giƒ}| d ¡ |¡}t ||¡| d ¡j |¡}t ||d¡dS) NcSs6|| ¡}t|tƒr|S|jdd„|jDƒd}|S)NcSsi|]}||›d“qS)Z    _demeanedr)rËr2rrrÚ
<dictcomp>ászHtest_groupby_transform_rename.<locals>.demean_rename.<locals>.<dictcomp>r^)r,r    rr-r*)rrPrrrÚ demean_renameÛs
 
z4test_groupby_transform_rename.<locals>.demean_renameZababar(r')ròrÆrÆgUUUUUUÕ¿r°r±gUUUUUUå?rò)rr—rArBrDrErÆrd)rVrMrOrPZ result_singlerrrÚtest_groupby_transform_renameÙs
 rWr_ÚlastcCsftjddd d¡}t|gdgdœƒ}| d¡j |¡|d<t|d|ggd    ddgd
}t ||¡dS) NÚnowT)ÚutczAsia/Singaporer()Úend_timerSrSZ max_end_timer[r^)    rHrOZ
tz_convertrrAr[rBrDrE)rRrsrPrOrrrÚ&test_groupby_transform_timezone_columnîs
r\z func, valuesZidxminú1/1/2011z1/3/2011z    1/10/2011Zidxmaxz1/2/2011z1/9/2011cCsntdddd}tdt d¡i|d}| ¡j|d<| |d¡d |¡}tt     
|¡|dd    }t   ||¡dS)
Nr]r<ror¬ZpricerèrZweek_id)rKrrV) r rr r=Ú isocalendarÚweekrArBrrHrOrDrd)rRrbrgZstocksrPrOrrrÚ%test_groupby_transform_with_datetimesøs     r`cCsÒtdgdgdœƒ}|d dd„¡}tdgddd    }t ||¡| d
¡d d d„¡}t ||¡| d
¡d d d„¡}td gddd    }t ||¡|d t¡|d<| d
¡d dd„¡}t ||¡dS)Nr(gš™™™™™õ?)rrTrTcSs| dd„¡S)NcSs
d|›S©Nú+r©rzrrrrrú@test_groupby_transform_dtype.<locals>.<lambda>.<locals>.<lambda>©Úmaprrrrrrz.test_groupby_transform_dtype.<locals>.<lambda>z+1.35Úobjectr£rcSs| dd„¡S)NcSs
d|›SrarrcrrrrrrdrerrrrrrcSs| dd„¡S)NcSs d|›dS)Nz+(ú)rrcrrrrrrdrerrrrrrz+(1.35)cSs| dd„¡S)NcSs
d|›Srarrcrrrrrrdrerrrrrr)rrBrrDrdrAr~rg)rMrPZ    expected1Z    expected2rrrÚtest_groupby_transform_dtype s   riZcumminZcummaxcCsTdg}tdƒ}dg}tt||ƒ|dœƒ}t|j |j¡|ƒƒ}|j}t ||¡dS)Nr(r'rB)    rIrrrÊrzrArrDrd)rRZx_valsZx_catsrzrMrPrOrrrÚ test_transform_absent_categories!srjzkey, val)rrrcCs:ttjggƒ}t|jf||iŽ|ƒƒ}|}t ||¡dSr)rr rÎrÊrArDrE)rRrNrTrMrPrOrrrÚtest_ffill_not_in_axis.srkc    Csºtdddddgiƒ}| ddddg¡}tjtdd| d    ¡W5QRXt|d
ƒsXt‚tjtdd| d
¡W5QRX|d ddddg¡}tjtdd| d    ¡W5QRXdS) Nrrr(r'rr2znot a valid function namerÓZsome_arbitrary_nameZ    aggregate)rrAr‰rÖr(rBÚhasattrr)rMrQrrrÚ"test_transform_invalid_name_raises9srmcCsö|}tddddddgtdƒdœddddd    d
gd }|tkrB|d }| t ddgd ¡¡}|dkr€t|tƒr€|j t    j
j dd¡t ||ƒ}|j |f|žŽ}t |j|j¡|dkrÌ|jdkrÌt |j|j¡ttt|ƒjdd…dfƒƒdksòt‚dS)Nrr(r#rrlrmrnroÚEÚFrrrr„z&TODO: implement SeriesGroupBy.corrwithr‡)r…rþr'éýÿÿÿr¡)rrIrrAr rar    rŒrr‰rŠr‹r rBrDrprÚndimr*r–Úsetr•r)r€rŽrFrRrDrQr‚rPrrrÚtest_transform_agg_by_nameKs$þ ÿ
rscCshttdƒtdƒgddgdœƒ}| dg¡d dd    „¡}ttddd
tddd
gdd }t ||¡dS) Nz2010-07-15 03:14:45z2010-11-19 18:47:06z    Etc/GMT+4z
US/Eastern)ÚtimeÚtimezonerurtcSs|j |j¡Sr)r®Z tz_localizerVrrrrrvrz7test_transform_lambda_with_datetimetz.<locals>.<lambda>)Útzr¥)rr    rArBrrDrdrœrrrÚ%test_transform_lambda_with_datetimetzjs"þûÿ    ÿ
 
þûrwc     Cs´tddddgddddgdœƒ}| d¡}dd„}|j}|jj||jd}| |¡\}}t|ƒ\}}tj    t
d    d
||ƒW5QRX|  |¡}    tdd dd gd gd}
t   |    |
¡dS)Nr(r'r¡rŸrlcSs|jdkrtdƒ‚|dS)Nr'úDon't cross the streams)rqÚNotImplementedError)rfrrrrR‰s
z,test_transform_fastpath_raises.<locals>.funcr.rxrÓéþÿÿÿrZrmr^)rrAZ_obj_with_exclusionsZgrouperZ get_iteratorr/Z _define_pathsÚnextr‰rÖryrBrDrE) rMrrRrDÚgenZ    fast_pathZ    slow_pathrtròrPrOrrrÚtest_transform_fastpath_raises‚s
     
r}c CsÞtddddddddgddddddddgtd    ƒtd    ƒtd    ƒd
œƒ}| d d g¡}| ¡}|jd d  dd„¡}tddddddddgddddddddgddddddddgdœtjddddddddgd d gdd}t     ||¡dS)NrÁrÂÚfluxr5r6ÚthreeÚsixÚfiver)rlrmrnrornrlrm)rcSs
|jdSrù)r•rrrrr­rz0test_transform_lambda_indexing.<locals>.<lambda>rr!rZ)rnrorn)rÂr5)rÂr)r~r€)r~r)rÁr)rÁr5)rÁr6)rNr)
rrIrPrCrArBrr'rDrErœrrrÚtest_transform_lambda_indexing s<ûÿ    ýø
õúr‚cCs
ttdddgdddgddddgdddgdœƒ}tdddgdddgdddgdœƒ}|jd    d
g|d  d ¡}| d    d
g¡ d ¡}t ||¡td dddgiƒ}t ||¡|jd    d
g|d d  d ¡}| d    d
g¡d  d ¡}t ||¡tdddgd d}t ||¡dS)Nrrr2)Ú
categoriesr(r'r)rlrmrnrlrn)Úobservedr rmrZr¥)rrrArBrDrErdr)r„Zdf_with_categoricalZdf_without_categoricalrPrOZexpected_explicitrrrÚ(test_categorical_and_not_categorical_keyÅs*ýÿÿ  ÿ r…cCsLtdddgdddgdœƒ}| d¡ d¡}tddd    dgiƒ}t ||¡dS)
Nr(r'rrŸrlr rmrærçr›rœrrrÚtest_string_rank_groupingæsr†cCsvtddddddgtdƒdœƒ}| t ddgd¡¡}| ¡}tddddddgƒ}t ||¡|     d¡}t ||¡dS)Nrr(r#rrr'rÃ)
rrIrAr rarÃrrDrdrB)rMrfrPrOrrrÚtest_transform_cumcountîs 
r‡r?ÚA1ÚA2cCsd}tj ddg|¡}tj ddg|¡}t|ƒdkr8|n||B}tjjdd|d t¡}tj||<tjjdd|d t¡}tj||<tjjdd|jd}    t    |||    dœƒ}
|    } |rÌ| 
¡rÌ|  t¡} tj| |<t    | d    gd
} |
j |||d } | d    g  d d „¡}t  || ¡dS)NrüFTr(rr1rý)rˆr‰rmrmr^)ÚdropnaÚsortcSs|Srrrrrrrrz-test_null_group_lambda_self.<locals>.<lambda>)r r>Úchoicer–rr~rrÎÚshaperÚanyrArBrDrE)r‹rŠr?rþZnulls1Znulls2Z nulls_grouperÚa1Úa2rbrMÚexpected_valuesrOrrPrrrÚtest_null_group_lambda_selfûs$
 
 
 
r’cCsÜ|dkr"d}|j tjj|d¡ddddg}tddtjtjgddddgdœ|d    }|jd
|d }t    ||ƒ}|d krŽtd ddddgi|d    }nÚ|dkr°td ddddgi|d    }n¸|dkrÒtd ddddgi|d    }n–|dkrðt
ddddg|d    }nx|dkrtd ddddgi|d    }nT|jd
dd }    g}
|    D].\} } t | d |ƒƒ} |
  t
| | j d    ¡q*t|
ƒ d ¡}|r¼|dkr|tnt}| |¡}|jdkr¬tj|jddgdf<ntj|jddg<|j|f|žŽ}t ||¡dS)Nr„zincorrectly raisesr‡r(r'rrZrŸrrl©rŠr_rmrXr†rþræF©rŽrr)rŒrr‰rŠr‹rr rÎrAr rrÊÚappendrr
rErgrr~rqr•rBrDr)r€rŠrŽrrrMrr‚rOÚ expected_gbÚbufferrwròrur&rPrrrÚtest_null_group_str_reducers> &
 
 
 r˜cCs4tddtjgdddgdœdddgd}t||ƒ}|jd|d}g}t|ƒD]t\}\}}    |dkrztd    tt|    ƒƒi|    jd}
n:|d
kr tt|    ƒ|g|    jd    gd }
nt    |    d    g|ƒ|Ž}
| 
|
¡qJ|rô|d krÐt nd} | 
ttjggdg| d    gd ¡t |ƒ} |dkr| d      d¡} |j|f|žŽ} t | | ¡dS)Nr(r'rŸrrrlr“rÃrmr…)rr*r”)rr&r*rÍ)rr rÎr rAr<rIr–rrÊr•rgr
r-rBrDr)r€rŠrrMr‚rr—Úkrwròrur&rOrPrrrÚtest_null_group_str_transformerAs&&
  
ršcCs¤|dkr"d}|j tjj|d¡ddddg}tddddg|d}|jddtjtjg|d    }t    ||ƒ}|d
kr„tddddg|d}nÎ|d kr¢tddddg|d}n°|d krÀtddddg|d}n’|d krÞtddddg|d}nt|dkrütddddg|d}nV|jddtjtjgdd    }    g}
|    D]*\} } t
| |ƒƒ} |
  t| | j d¡qt |
ƒ}|r„|dkrftnt}| |¡}tj|jddg<|j|f|žŽ}t ||¡dS)Nr„z*corrwith not implemented for SeriesGroupByr‡r(r'rrZrr“r_rXr†rþFr”)rŒrr‰rŠr‹rrAr rÎr rÊr•rr
rgrr~r•rBrDrd)r€rŠrŽrrÚserrr‚rOr–r—rwròrur&rPrrrÚ"test_null_group_str_reducer_series_s: 
 
rœc     Cstdddgdddgd}t||ƒ}|jddtjg|d}g}t|ƒD]\\}\}}|dkrpttt|ƒƒ|jd}    n&|dkrˆt||jd}    nt    ||ƒ|Ž}    | 
|    ¡qD|rÐ|dkr²t nd}
| 
ttjgdg|
d    ¡t |ƒ} t  d¡|j|f|žŽ} W5QRXt  | | ¡dS)
Nr(r'rrr“rÃr…r”)rr&)rr rAr rÎr<rIr–rrÊr•rgr
rDZassert_produces_warningrBr) rŠrr›r‚rr—r™rwròrur&rOrPrrrÚ&test_null_group_str_transformer_seriesˆs$
  rzfunc, expected_valuesr1rZcCs
| d¡Sr;)Úheadrrrrr§rrérrÚ keys_in_indexc    Csžtdddddgdddddgdœƒ}d|kr6|d|d<|rH|j|d    d
}| |¡}|tkrb|d }| |¡}td |i|jd }|tkrŽ|d }t ||¡dS) Nr(rr'r1rZ)rrrrT)r•rr)rrPrArrBrrDr)    rRrFr‘r?rŸrMrrPrOrrrÚtest_transform_aligns£s " 
 
r rlrmcCsj|dkr|jdd}t||ƒ}|j|dd}|j|dd}|j|f|žŽ}|j|f|žŽ}t ||¡dS)Nrlrmr^T)Zas_indexF)rer rArBrDr)r?rMZ groupby_funcr‚Zgb_as_index_trueZgb_as_index_falserPrOrrrÚtest_as_index_no_change¿s 
r¡)[Ú__doc__ÚiorÚnumpyr r‰Zpandas.core.dtypes.commonrrZpandasrHrrrrr    r
r Zpandas._testingZ_testingrDZpandas.tests.groupbyr rrRrhrxrƒrršrr¤r§r«r³r·rºrÀrÐrÑrØrÙrÚràrárírðrôrŠZ parametrizerrÎr Zslowr r*r.r0r@rCÚparamr‹rGrSrŽrrTrWr©rJr\r`rirjrkrmrsrwr}r‚r…r†r‡r’r˜ršrœrZ sort_valuesr r¡rrrrÚ<module>sx $      62'         *
 
 >    üþ    
$0ôôïþüþ+     üþ     Vþþþ
  ý ý ôþ*
ÿþþþ þþ
 
 
    þþ
 
     %! 
+)þþ