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
­ý°d Êã@s\dZddlZddlZddlmZddlZddlZddlZddlm    Z    ddl
m Z ddl Z ddl mZmZmZmZmZmZddlmZddlmZdd    „Zd
d „Zd d „Zdd„Zdd„Zdd„Zdd„Zdd„Z dd„Z!ej" #ddd„dd„dd„gg¡dd„ƒZ$d d!„Z%d"d#„Z&ej" #d$d%d&d'd(gd)ifd*d+gd,e'e(e(e(d-œfd.d/gd,e'e(e(e(d-œfd%d&d'd(gd0d1d)ifd*d+gd,d0e(e(e(d-œfd.d/gd,d0d2d2d2d-œfg¡d3d4„ƒZ)ej" #d5d%d6d7gd8d9gd:d;ggd)d)d<œfd*d=gd6gd,d2fd.d6gd6gd,d2d2d<œfg¡d>d?„ƒZ*d@dA„Z+dBdC„Z,dDdE„Z-dFdG„Z.dHdI„Z/dJdK„Z0dLdM„Z1dNdO„Z2dPdQ„Z3dRdS„Z4ej" #dTdUd„dVd„dWd„dXd„dYd„dZd„g¡d[d\„ƒZ5ej" #d]d^ged_gd^d`fd^daged_gd6ggdgdggd^dagdbfg¡ej" #dcddded)dfd2g¡ej" #dgddded)dfd2g¡ej" #dhdidjdkg¡dldm„ƒƒƒƒZ6ej" #d]d^ged_gd^d`fd^daged_gd6ggdgdggd^dagdbfg¡ej" #dndod_dpg¡ej" #dqe7e'e(g¡ej" #dhdidjdkg¡drds„ƒƒƒƒZ8dtdu„Z9dvdw„Z:ej" #dqej;ej<g¡ej" #dxdydzd{d|d}d~g¡dd€„ƒƒZ=dd‚„Z>ej" #dƒe  ?e@d„ƒ¡e  Add,¡e jBd…d,d†d‡e Cdˆd‰dŠg¡g¡d‹dŒ„ƒZDddŽ„ZEdd„ZFGd‘d’„d’ƒZGGd“d”„d”ƒZHej" #d•d–d—ejIfd˜d_d,gdd6gd™dšgfd—d›d„fd—dœd„fd˜d_d,gd_d_gd™dšgfe  Jd—d|¡e  JdejK¡e  Jd—džd„¡d_d,gd™dšgd_d_gfg¡dŸd „ƒZLd¡d¢„ZMd£d¤„ZNej" #d¥d¦d{gigd{gd§œg¡d¨d©„ƒZOdªd«„ZPd¬d­„ZQd®d¯„ZRd°d±„ZSej" #d²d³d„d´d„dµd„g¡d¶d·„ƒZTd¸d¹„ZUej" #d²dºd„eUg¡d»d¼„ƒZVd½d¾„ZWej"jXd¿dÀdÁd„ƒZYGdÃdĄdăZZdÅdƄZ[ej" #dÇd{d{dȜd_d&gd^d¦gdȜfdÉd{idÉd^d¦gifdÊd{idÊd_d&gifg¡dËd̄ƒZ\ej" #dÇd{d|gd{dȜdÍdÎgfd{d{d|gdȜdÏdÐgfdÉd{d|gidÑdÒgfg¡dÓdԄƒZ]dÕdքZ^d×d؄Z_dÙdڄZ`dÛd܄ZadÝdބZbdßdà„Zcej" #dádâdãdägdågfdædãdçgdègfg¡dédꄃZdej" #dëd}dìdígfd%dîdïgfg¡dðdñ„ƒZeej" #d²d{d|d.g¡dòdó„ƒZfej" #d²d{gd}d|gdad%idôd~d§œg¡dõdö„ƒZgej" #d÷d;døgd;dùgd8dúggd8d;gdúdødùggdûœfd;døgd;dùgdüdúggd;dügdødùgdúgdûœfd^d_gd^d_gdad6gdad,ggd^dagd_d6d,ggdûœfejhd^d_gd^d6gdad,gdad,ggd^dagd_d6gd,gdûœej"jXdýg¡dþdÿ„ƒZidd„Zjdd„ZkdS(zN
test .agg behavior / note that .apply is tested generally in test_groupby.py
éN)Úpartial)ÚSpecificationError)Úis_integer_dtype)Ú    DataFrameÚIndexÚ
MultiIndexÚSeriesÚconcatÚ to_datetime)ÚGroupingcCsBtddddgddddgdœƒ}| d    ¡d
}d d „}| |¡dS) NÚaÚbÚcéééé)ÚkeyÚvaluerrcSst|ƒdkst‚| ¡S©Nr)ÚlenÚAssertionErrorÚsum©Úx©rúdd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/groupby/aggregate/test_aggregate.pyÚ
dummy_func"sz3test_groupby_agg_no_extra_calls.<locals>.dummy_func)rÚgroupbyÚagg)ÚdfÚgbrrrrÚtest_groupby_agg_no_extra_callssr"cCs:| dd„dd„g¡}| tj¡}| ¡}t ||¡dS)NcSs|jS©N©ÚyearrrrrÚ<lambda>*óz&test_agg_regression1.<locals>.<lambda>cSs|jSr#©Úmonthrrrrr&*r'©rrÚnpÚmeanÚtmÚassert_frame_equal)ÚtsframeÚgroupedÚresultÚexpectedrrrÚtest_agg_regression1)s r3c    Csf| d¡d}d}tjt|d| dd„¡W5QRXtjt|d| dd„¡W5QRXdS)NÚAÚCzMust produce aggregated value©ÚmatchcSs| ¡Sr#)Zdescriberrrrr&5r'z#test_agg_must_agg.<locals>.<lambda>cSs|jdd…S©Nr©Úindexrrrrr&7r')rÚpytestÚraisesÚ    Exceptionr)r r0ÚmsgrrrÚtest_agg_must_agg0s r?cCsHdd„}|j |j|jg¡ |¡}| ddg¡ ¡d}t ||¡dS)NcSs| ¡Sr#©rrrrrr&;r'z(test_agg_ser_multi_key.<locals>.<lambda>r4ÚBr5)r5rr4rAÚ    aggregaterr-Úassert_series_equal)r ÚfÚresultsr2rrrÚtest_agg_ser_multi_key:srFcCstdddtjddddgdddtjddd    d
gd œtjd d ddddddgddgdd}tdddddddtjddddg d
ddddddtjd    dddg ddddtjdddddtjd g d!d"dd#tjd$d#dddtjtjg d%œƒ}| ddg¡}|d&d'g ¡}t ||¡dS)(Néérrré7éMé!é,é )Úv1Úv2)ré_)réc)rrP)rrQ)ÚbigÚdamp)ÚblueÚdry)ÚredrV)rVÚwetÚby1Úby2©Únamesr9éé    éXrQrVrTrrRé rWrUrPrS)rNrOrXrYrNrO)    rr+ÚnanrÚ from_tuplesrr,r-r.)r2r Úgr1rrrÚ$test_groupby_aggregation_mixed_dtypeAsNþø
õûôüÿrccCs”ddddgddtjdgddtjdgddtjdgg}t|t ddddg¡d}|jddd    }|jdd
}td dddgdd ddgd œƒ}t ||¡dS)NTF)r4r)r4r)rAr)rAr)ÚdataÚcolumnsr©ÚlevelÚaxis)Z numeric_onlyç@r©rr)    r+r`rrrarrr-r.)Úlstr r!r1r2rrrÚ+test_groupby_aggregation_multi_level_columnrs
   üþ rlcCsê|j|tjdd}|jtjks$t‚tgtjtgtjdd}t     | 
¡|¡t     |  tj
¡|¡tj    |  tj
¡|dd|j|dtjdd}t |jttgdtjdd}t | 
¡|¡t |  tj
¡|¡t |  tj
¡|¡dS)    NF©Z
group_keys©Údtype©ror:)Zcheck_index_typer4)Únamero)reror:)rr+r`roÚfloat64rrrr-rCrrÚapplyrreÚfloatr.)Útsr/r0ÚexpZexp_dfrrrÚtest_agg_apply_corner†sýrwcCs˜t ¡}| dd„¡}|jjdj}t|jt|ƒƒ|jjd<|     t
j ¡}|  ¡}t  ||¡t|jt |ƒƒ|jjd<|     t
j ¡}|  ¡}t  ||¡dS)NcSs|jSr#r$rrrrr& r'z1test_agg_grouping_is_list_tuple.<locals>.<lambda>r)r-ZmakeTimeDataFramerÚgrouperZ    groupingsZgrouping_vectorr r:Úlistrr+r,r.Útuple)rur r0rxr1r2rrrÚtest_agg_grouping_is_list_tuples   r{cCs2| ddg¡}| tj¡}| ¡}t ||¡dS)Nr4rAr*)Zmframer0r1r2rrrÚtest_agg_python_multiindex¯s r|Ú groupbyfunccCs| ¡Sr#)Úweekdayrrrrr&¸r'r&cCs|jSr#r(rrrrr&¸r'cCs¤| |¡}|d d¡}|d ¡}t ||¡| d¡}| ¡}t ||¡| dddddœ¡}t|d ¡|d ¡|d     ¡|d     
¡dœƒ}t ||¡dS)
Nr4ÚstdÚvarr,Úsem)r4rAr5ÚDrAr5r‚) rrrr-rCrBr€r.rr,r)r/r}r0r1r2rrrÚtest_aggregate_str_func·s 
 
 
 
 
 
üÿrƒc
Csttdddddddgttjddddddgdddœƒ}| d¡ ¡}tddd    gitddgdd
dd }t ||¡dS) NrrZFloat64rn©r r r r g( µ¦yâ?r©rq©r:ro)    rrÚpdÚNArrrr-r.)Úany_numeric_ea_dtyper r1r2rrrÚtest_std_masked_dtypeÔsþÿ
ÿrŠc    CsZ|jdd}|dkrt}d}nt}d|›d}tj||d|j|dd    W5QRXdS)
Nr©rg)ZidxmaxZidxminz3reduction operation '.*' not allowed for this dtypez
Operation z does not support axis=1r6r©rh)rÚ    TypeErrorÚ
ValueErrorr;r<r)r Úreduction_funcr!Úerrorr>rrrÚ%test_agg_str_with_kwarg_axis_1_raisesãs  r‘z(func, expected, dtype, result_dtype_dictrrGrHr]Úint64rgÙlßÌvø@r)ÚiÚjÚkr€g@ÚInt64r”rrcCs€tddddddggdt ddgd    d
d gg¡d  ||d œ¡}|jddd |¡}t|gdd    d
d gd  |¡}t ||¡dS)NrrrrrGér r r“r”r•©re))r r”)r r”rf)rrÚ from_productÚastyperrr-r.)Úfuncr2roÚresult_dtype_dictr r1rrrÚ(test_multiindex_groupby_mixed_cols_axis1ïs þýÿrz&func, expected_data, result_dtype_dictrré
r_éé)ržr gÍ;fž ö?cCs˜tt d¡ dd¡tdddgddtdd    dd    gd
dd d  dd i¡}|jd
dd |¡}t|tdddgddtdd    gd
dd |¡}t     ||¡dS)Nr_rrrrÚyr…ržr rr’)r:reror–rŒ)rdr:re)
rr+ÚarangeÚreshaperršrrr-r.)r›Ú expected_datarœr r1r2rrrÚtest_groupby_mixed_cols_axis1s" üûýür¥c    Csà| d¡}dd„}| |¡}|jdk ¡}|jdk ¡}t|jƒ}tt |g|¡t    dƒdd}t
  |  d¡|¡tt |g|¡t    dƒdd}t
  |  d¡|¡dd    „}tƒ |j¡ |¡}t|tƒsÌt‚t|ƒd
ksÜt‚dS) Nr4cSs|jSr#©Úsize©Zserrrrr&%r'z-test_aggregate_item_by_item.<locals>.<lambda>ÚfooÚbarZBCD©r:rqcSs|jSr#r¦r¨rrrÚaggfun_12sz-test_aggregate_item_by_item.<locals>.aggfun_1r)rrr4rrrerr+Úarrayryr-rCÚxsZassert_almost_equalrÚ
isinstancer)    r r0Zaggfun_0r1ZfoosumZbarsumÚKrvr¬rrrÚtest_aggregate_item_by_item"s
 
 
r±c    CsŽ| ddg¡}dd„}tjtdd| |¡W5QRX|dd„|Dƒ |¡}|jdd…|jd    kf}| ddg¡ |¡}t ||¡dS)
Nr4rAcSs|jtkrtdƒ‚| ¡S)NúTest error message)roÚobjectrrr¨rrrr›=s
ztest_wrap_agg_out.<locals>.funcr²r6cSsg|]}|dkr|‘qS)r5r)Ú.0rrrrÚ
<listcomp>Dsz%test_wrap_agg_out.<locals>.<listcomp>r5)    rr;r<rrBÚlocrer-r.)Z three_groupr0r›r1Z exp_groupedr2rrrÚtest_wrap_agg_out:sr·cCsPdtjfdtjfdtjfg}| d¡d |¡}tdddgƒ}t |j    |¡dS)Nr,ÚmaxÚminr4r5)
r+r,r¸r¹rrrr-Úassert_index_equalre)r Úfuncsr1Zexp_colsrrrÚ*test_agg_multiple_functions_maintain_orderJsr¼cs¬ttj dd¡tjdddddddgd    ‰ˆ d
¡ dttj    d d ttj    d d gi¡}tjdd
dd}t
  ddg¡}t  ‡fdd„dDƒ¡j }t|||d}t ||¡dS)Néèrú1/1/2012ÚS)ÚfreqÚperiodsr4rAr5©r:reÚ3Tç§èH.ÿï?©Úqçâ镲 q¼?r—)r4Úquantilecs"g|]}ˆ d¡jj|dj‘qS©rÃrÅ©Úresampler4rÈÚvalues©r´rÆ©r rrrµ`sz9test_agg_multiple_functions_same_name.<locals>.<listcomp>©rÄrÇ©rer:)rr+ÚrandomÚrandnr‡Ú
date_rangerËrrrÈrrar­ÚTr-r.)r1Úexpected_indexÚexpected_columnsÚexpected_valuesr2rrÎrÚ%test_agg_multiple_functions_same_nameSs& ý
ÿÿÿrØc    sættj dd¡tjdddddtddd    gd
d d ‰ˆ d ¡ ddt    tj
ddt    tj
ddgi¡}tjdd ddd}t j ddddddgd
ddgd}t  ‡fdd„dDƒ¡j}t ˆ d ¡j ¡|g¡}t|||d}t ||¡dS)Nr½rr¾r¿Zdti)rÀrÁrqr4rAr5Úalphar…rÂrÃÚohlcrÄrÅrÇr—)r4rÚÚopen)r4rÚÚhigh)r4rÚÚlow)r4rÚÚclose)r4rÈr4rZcs"g|]}ˆ d¡jj|dj‘qSrÉrÊrÍrÎrrrµ€szKtest_agg_multiple_functions_same_name_with_ohlc_present.<locals>.<listcomp>rÏrÐ)rr+rÑrÒr‡rÓrrËrrrÈrrar­rÔZhstackr4rÚr-r.)r1rÕrÖZnon_ohlc_expected_valuesr×r2rrÎrÚ7test_agg_multiple_functions_same_name_with_ohlc_presenths: ý
 ÿú÷ ÿÿrßcCs„|jddgd}ddg}ddg}| d¡d |¡}| d¡d |¡}t ||¡| d¡ |¡}| d¡ |¡}t ||¡dS)    NrAr5r˜)r©r,r)rrr4r‚)Zdroprrr-r.)r r»Zex_funcsr1r2rrrÚ-test_multiple_functions_tuples_and_non_tuples‰s ràc
    Cs@| d¡}| tjtjdœ¡}| tjtjdœ¡}t||gddgdd}|jddddjddd    }tjtjgtjtjgdœ}| |¡}t     
||¡| tjtjtjgdœ¡}| tjtjtjgdœ¡}t     
||¡d
d „}d d „}d}    t j t |    d&tjtjtjdœdœ}| |¡W5QRXtjg||gdœ}| |¡dS)Nr4©r5r‚r,rr)ÚkeysrhrrŒrfcSs
t |¡Sr#©r+r,rrrrÚ    numpymean­sz:test_more_flexible_frame_multi_function.<locals>.numpymeancSstj|ddS)Nr)Zddof)r+rrrrrÚnumpystd°sz9test_more_flexible_frame_multi_function.<locals>.numpystdúnested renamer is not supportedr6©r©rª)rrr+r,rr    Z    swaplevelZ
sort_indexrBr-r.r;r<r)
r r0ZexmeanZexstdr2Údr1rärår>rrrÚ'test_more_flexible_frame_multi_functionšs&
 
  réc    Cs²| d¡}dddœddidœ}d}tjt|d| |¡W5QRXdddœddœ}tjt|d| |¡W5QRXdddœddœ}tjt|d| |¡W5QRXdS)    Nr4r,rrçrrárær6)rr;r<rrB)r r0rèr>rrrÚ test_multi_function_flexible_mix¾s
rêcCs¦tddddgddddgddddgdœƒ}| d¡}tddgdd}|d d    d
„¡}td d g|dd }t ||¡|d dd
„¡}td d g|dd }t ||¡dS)Nrrrr©r r rr r…r cSs |dk ¡Sr©Úallrrrrr&Ýr'z1test_groupby_agg_coercing_bools.<locals>.<lambda>FTr«rcSs | ¡ ¡Sr#)Zisnullrírrrrr&ár')rrrrBrr-rC)ÚdatZgpr:r1r2rrrÚtest_groupby_agg_coercing_boolsÖs(
 rïcCsntdddddgdddddgdœƒ}| d¡dg ddi¡}tdddgiddgd    jdd
d }t ||¡dS) Nr4rArr©r4rArrrr9rrŒ)rrrZ rename_axisr-r.)rîr1r2rrrÚ"test_groupby_agg_dict_with_getitemæs""rñÚopcCs| ¡Sr#r@rrrrr&ór'cCs| ¡Sr#)Úcumsumrrrrr&ôr'cCs
| d¡S©Nr©Ú    transformrrrrr&õr'cCs
| d¡S©Nrórõrrrrr&ör'cCs
| d¡Srô©rrrrrr&÷r'cCs
| d¡Sr÷rørrrrr&ør'cCsdtddgddgdœƒ}| d¡d}|| d¡ƒdj}t|ƒsDt‚|| d¡ƒj}t|ƒs`t‚dS)NrFTr„r r )rÚ    set_indexrrorr)ròr Úsr1rrrÚtest_bool_agg_dtypeðs  rûzkeys, agg_indexr rr…r rZÚ input_dtypeÚboolÚint32Úfloat32Ú result_dtypeÚmethodrsrBröc
sªtdgdgdgdœƒ}|d |¡|d<t| |¡dg|ƒ}|‡fdd„ƒ}|dkrbt d    d¡n|}td|djd    gi|d
 ˆ¡}    |d kršd    g|    j_t     
||    ¡dS) NrrTrërcs| ˆ¡jdSr©ršÚilocr©rrrr&r'z2test_callable_result_dtype_frame.<locals>.<lambda>rörr9rs) rršÚgetattrrr‡Ú
RangeIndexrrer[r-r.)
râÚ    agg_indexrürrr ròr1rÕr2rrrÚ test_callable_result_dtype_framesÿ
rÚinputTçð?roc
s‚tdgdg|gdœƒ}t| |¡d|ƒ}|‡fdd„ƒ}|dkrNt dd¡n|}t|djdg|dd     ˆ¡}    t     ||    ¡dS)
Nrrrërcs| ˆ¡jdSrrrrnrrr&5r'z3test_callable_result_dtype_series.<locals>.<lambda>rörr«)
rrrr‡rrrršr-rC)
rârr    rorr ròr1rÕr2rrnrÚ!test_callable_result_dtype_series's  r cCsftddddgddddgdœƒ}| d¡ ddd    d
d g¡}|jjd}tddd    d
d gƒ}t ||¡dS) Nrrrrrðr4rr¸r,rÚr¹)rrrreÚlevelsrr-rº)r Úresr1r2rrrÚ#test_order_aggregate_multiple_funcs;s
 rc    CsÔtddddddgddtjddtjgd    œ|d
}| d ¡}| ¡}tddddgtjgddgddgdgt d gd dddgg¡tddddg|d d|d}t     ||¡|jd dd}| ¡}| 
¡}t     ||¡dS)NrrrrérMržr r„rnr r rÛrÜrÝrÞ©rorq)rer:roF©Zas_index) rr‡rˆrrÚrr™rr-r.Z reset_index)r‰r r!r1r2Zgb2Úresult2Z    expected2rrrÚtest_ohlc_ea_dtypesGs"$þ
&ü rÚhowÚfirstÚlastr¹r¸r,ÚmediancCsttdddgdœƒ}| d¡ d|i¡}|j |¡|_| d¡ d|i¡}|dkr`|j tj¡|_tj||dd    dS)
Nl&tLW Hd~rr©rr¡r¡r)r,rT)Z check_exact)    rrrrršr+r’r-r.)rorr r2r1rrrÚtest_uint64_type_handling]src    CsTd}tddddgddddgdœƒ}tjt|d| d    ¡ d
d
g¡W5QRXdS) NzFunction namesrrrrrrðr6r4r¹)rr;r<rrr)r>r rrrÚtest_func_duplicates_raisesksrr:ÚabcZ2020r‚)rÁrÀ)r r)r r)r rcCs`tdddgdddgdœ|d}| d¡ dtji¡}tddgddgdœƒ d¡}t ||¡dS)Nrrr)Úgrouprr9rr)rrrrZnuniquerùr-r.)r:r r1r2rrrÚ$test_agg_index_has_complex_internalsss rcCsrtdddddgdddddgdddddgdœƒ}| d¡ ¡}tddgddgd    œtddgdd
d }t ||¡dS) Nr r ZoneZtwoZthreeÚsix)Úkey1Úkey2Úkey3r)r r!r…r9)rrr¹rr-r.©r r1r2rrrÚtest_agg_split_block„s   ýÿþr#c
Cs²ttjdddddddgdd    d
dgdddd gtjddddd    d
dgd œƒ t¡}| d d d d g¡ ¡}tt d¡gdgdgdgt d¡gdgd œt     d g¡td}t
  ||¡dS)NÚ2000r)rÁr r rrèrrrÚe)r4rAr5r‚ÚEÚFrr†) rr‡rÓršr³rr¹Ú    Timestampr+r­r-r.r"rrrÚ#test_agg_split_object_part_datetime•s0 
 
 
 
úÿ    ÷
 
 
ú
ö r)c@sVeZdZdd„Zdd„Zdd„Zdd„Zej     d    e
j d
d d d d
d gg¡dd„ƒZ dS)ÚTestNamedAggregationSeriescCstddddgƒ}| ddddg¡}|jddd}tdd    gddgdœd
d gt ddg¡d }t ||¡|jddd }|d d
g}t ||¡dS)Nrrrrrrr¹r„rHr r rÐ)r r ©rrrrr+r­r-r.)Úselfr Úgrr1r2rrrÚtest_series_named_agg²s ÿ  z0TestNamedAggregationSeries.test_series_named_aggc    Cs\tddgƒ ddg¡}tjtdd| ¡W5QRX| g¡}tgd}t ||¡dS)Nrrrú Must provider6r˜)    rrr;r<rrrr-r.©r,r-r1r2rrrÚtest_no_args_raises¿s 
 
z.TestNamedAggregationSeries.test_no_args_raisescCs\tdddgƒ dddg¡}|jddd}tddgddgdœt ddg¡d}t ||¡dS)Nrrrrrr„r9r+)r,r-r0r2rrrÚ*test_series_named_agg_duplicates_no_raisesÉs$zETestNamedAggregationSeries.test_series_named_agg_duplicates_no_raisescCsdtdddgƒ dddg¡}|jdd„dd„d}tddgddgdœt ddg¡d    }t ||¡dS)
NrrrrcSsdSrrrrrrr&Òr'z9TestNamedAggregationSeries.test_mangled.<locals>.<lambda>cSsdS©Nrrrrrrr&Òr'r„r9r+r0rrrÚ test_mangledÐs$z'TestNamedAggregationSeries.test_mangledÚinpÚanythingr¹©ÚcolumnÚaggfunc)r6r¹c    CsZtddddddddgƒ}dt|ƒj›}tjt|d| |j¡j|dW5QRXdS)    NrrrrrGzfunc is expected but received r6©r )    rÚtypeÚ__name__r;r<rrrÌr)r,r5rúr>rrrÚtest_named_agg_nametupleÖs
z3TestNamedAggregationSeries.test_named_agg_nametupleN) r<Ú
__module__Ú __qualname__r.r1r2r4r;ÚmarkÚ parametrizer‡ÚNamedAggr=rrrrr*±s 
 ýþr*c@sLeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dS)ÚTestNamedAggregationDataFramec    Cs
tddddgddddgddd    d
gd œƒ}| d ¡jd dd}tddgdd
gdœtddgd dddgd}t ||¡tjtj    dd}| d ¡jddt
fdtj fd dd|fd}tdd    gddgddgddgdd
gddgdœtddgd ddddddd gd}t ||¡dS)!Nr r rrrrrGr—rHr\©rr4rAr©r4r¸©rAr¸)Úa_maxÚb_maxr…rGrHrÂébrÅ©rAr¹r4)Úb_minÚa_minÚa_meanrGrHÚa_98gà?g@g\Âõ(\ï?g×£p=
×@rKrLrMrN) rrrrr-r.Ú    functoolsrr+Ú
percentiler¹r,)r,r r1r2Zp98rrrÚtest_agg_relabelçs>"ÿý 
úúö z.TestNamedAggregationDataFrame.test_agg_relabelcCsntddddgddddgddd    d
gd œƒ}| d ¡jfd diŽ}td ddgitddgd dd}t ||¡dS)Nr r rrrrrGr—rHr\rDrzmy colrEr…r9©rrrrr-r.©r,r r1r2rrrÚtest_agg_relabel_non_identifier s "ÿ z=TestNamedAggregationDataFrame.test_agg_relabel_non_identifiercCstddddgddddgdœƒ}| d¡jddd    }tddgddgd    œtddgdd
d }t ||¡tjtj    d d }tjtj    dd }d|_
d|_
tdddddgdddddgdœƒ}| d¡jd|fd|fd}tddgddgdœtddgdd
d }t ||¡dS)Nrrrrrrðr4rJr„r…r9é2rÅéFÚquant50Úquant70r r rG)Úcol1Úcol2rYrZ)Z quantile_50Z quantile_70çø?ç@g333333û?gš™™™™™@) rrrrr-r.rOrr+rPr<)r,r r0r2rWrXÚtestrrrÚtest_duplicate_no_raisess$& "
ÿþz6TestNamedAggregationDataFrame.test_duplicate_no_raisescCs€tddddgddddgdœt ddgd    d
gg¡d }|jdd jd ddd}tddgddgddgdœddgd }t ||¡dS)Nrrrrrrðr4rAr r r9r‹rE)r4r¹)rAr,)ZaaZbbÚccr[g @)rrr™rrr-r.rSrrrÚtest_agg_relabel_with_level-sþ ÿÿz9TestNamedAggregationDataFrame.test_agg_relabel_with_levelc    Csœtdddgdddgdœƒ}| d¡}d}tjt|d|jdd    W5QRXtjt|d| ¡W5QRXtjt|d|jd
d d W5QRXdS) Nrrrrrðr4r/r6)r©rF)rrrr„)rrr;r<rr)r,r r0r7rrrÚtest_agg_relabel_other_raises:s
z;TestNamedAggregationDataFrame.test_agg_relabel_other_raisesc    CsPtddgddgdœƒ}t d¡}tjt|d| d¡jdd    W5QRXdS)
NrrrrðzColumn(s) ['C'] do not existr6r4)r5r©r)rÚreÚescaper;r<ÚKeyErrorrr)r,r r7rrrÚtest_missing_raisesGs
z1TestNamedAggregationDataFrame.test_missing_raisescCs`tddgddgdœƒ}| d¡jt dd¡tjddd    d
}| d¡jd d d
}t ||¡dS) Nrrrrðr4rArÚcountr7©r r)rAr)rArg©rrrr‡rBr-r.rSrrrÚtest_agg_namedtupleMs
 
ÿz1TestNamedAggregationDataFrame.test_agg_namedtuplecCsvtddgddgddgdœƒ}| d¡jdd    d
„fd d d
„fd }tddgddgd œtddgddd}t ||¡dS)Nrrrrr)r4rAr5r4rAcSsdSrrrrrrr&Wr'z<TestNamedAggregationDataFrame.test_mangled.<locals>.<lambda>r5cSsdSr3rrrrrr&Wr'rhr…r9rRrSrrrr4Us$&z*TestNamedAggregationDataFrame.test_mangledN) r<r>r?rQrTr^r`rarfrjr4rrrrrCæs$      rCzCagg_col1, agg_col2, agg_col3, agg_result1, agg_result2, agg_result3©©r¡r4r¸rl)©r¡rAr,g@ç@cCst|ƒSr#)r¸rrrrr&hr'cCsdSr3rrrrrr&ir'rmcCsdSr3rrrrrr&rr'c
Cs¶tddddgddddgddd    d
gd œƒ}t d d dg¡|_tddgd d}| d ¡jdd}tdddgi|d}    t ||    ¡| d ¡j|||d}t|||dœ|d}    t ||    ¡dS)Nr r rrrrrGr—rHr\rD©rrrlrmr…rk)rGrGr9)Zcol_1Zcol_2Zcol_3)    rrrarerrrr-r.)
Zagg_col1Zagg_col2Zagg_col3Z agg_result1Z agg_result2Z agg_result3r Úidxr1r2rrrÚ"test_agg_relabel_multiindex_column\s$!"ÿ 
ÿ
ÿrqc    Csjtddddgddddgddd    d
gd œƒ}t d d dg¡|_tjtdd| d ¡jddW5QRXdS)Nr r rrrrrGr—rHr\rDrorlrmz do not existr6))ÚYr r¸r:)    rrrarer;r<rerrrÎrrrÚ,test_agg_relabel_multiindex_raises_not_exists "ÿrscCsˆtddddgddddgddd    d
gd œƒ}t d d dg¡|_| d ¡jddd}tddgd d}tddgddgdœ|d}t ||¡dS)Nr r rrrrrGr—rHr\rDrorlrm)rlr¹r„r…r9)    rrrarerrrr-r.)r r1rpr2rrrÚ&test_agg_relabel_multiindex_duplicates›s"ÿ
ÿrtÚkwargsrrhcCsntdddgdddgdddgdœƒ}| d¡ |¡}tddgtddgdddt d    d
gg¡d }t ||¡dS) Nrrrrrër r’rrr¹rÂ)rrrrrrar-r.)rur r1r2rrrÚ test_groupby_aggregate_empty_key¬s"ýrvcCsbtdddgdddgdddgdœƒ}| d¡ dgi¡}ttdggggggdd    }t ||¡dS)
Nrrrrrër r )r Úcodesr˜)rrrrr-r.r"rrrÚ-test_groupby_aggregate_empty_key_empty_return¹s"rxcCsbtdddgd}|jddgddjdtfd}tdgtggggggddgd    d
}t ||¡dS) Nr r rr˜Frm)rèrèrZrÐ)rrrryrr-r.r"rrrÚ2test_groupby_aggregate_empty_with_multiindex_frameÁsÿrycCsttddddddgdddddd    gd
œƒ}|jd d d }|jtjdddd}tdddgddd    gdœƒ}t ||¡dS)Nrr¡Úzr
皙™™™™é?riç@çÍÌÌÌÌÌ @çè?)rÚvalrFrrr¹r7©Úmin_val)rrri©r r0r1r2rrrÚ9test_grouby_agg_loses_results_with_as_index_false_relabelËs ÿrƒc    CsŽtddddddgddddddgdddd    d
d gd œƒ}|jd dgdd}|jtjdddd}tdddgdddgdd dgdœƒ}t ||¡dS)Nrr¡r r rr
r{rir|r}r~)rrrrrFrrr¹r7r€)rrrrir‚rrrÚDtest_grouby_agg_loses_results_with_as_index_false_relabel_multiindexÙsýÿÿr„r›cCs| ¡Sr#)r,©rúrrrr&ïr'cCs
t |¡Sr#rãr…rrrr&ïr'cCs
t |¡Sr#)r+Znanmeanr…rrrr&ïr'cCs dddgdddgg}t|tjdddgdddggddgd    d
}| t d dg¡¡ |¡}d d dœdddœdd dœdœ}t|t d dg¡|jd}t     ||¡dS)NrrrrGrHrZSiskoZJanewayrZr˜rr
g@rjr\g@ri))rr)rr)rrrÂ)
rrZ from_arraysrr+r­rrer-r.)r›rdr r1Ú expected_dictr2rrrÚtest_multiindex_custom_funcîsÿþýr‡cCstj|ddS©NgÍÌÌÌÌÌì?rÅ©r+rPr…rrrÚmyfuncsrŠcCstj|ddSrˆr‰r…rrrr&r'cCsztddddgddddgddd    d
gd œƒ}| d ¡jd d|fd}tddgddggddgtddgd dd}t ||¡dS)NÚcatÚdogç333333"@ç@ç#@çA@皙™™™™@rnçÍÌÌÌÌÌ#@çÀh@©ÚkindÚheightÚweightr•)r–r,r–)Ú mean_heightÚperc90gš™™™™™"@g0»' 5"@g4@g5^ºI @r˜r™r…rÐrR)r›Zanimalsr1r2rrrÚtest_lambda_named_aggs 
 
 
ýÿ
ÿýršcCs¬tt dgd¡ dd¡tdƒtdƒd}dddg|d    <| d    ¡ d
d „¡}dgdgdggddgddgddggg}t|tddgd d    d tdddgd dd}t     ||¡dS)Nrr]rZXYZr©rdrer:zgroup 1rÚgroupingcSs| ¡Sr#)Útolistrrrrr&%r'z,test_aggregate_mixed_types.<locals>.<lambda>r³rÚXrrÚZrnrÂ)
rr+r­r£ryrrBrr-r.)r r1r¤r2rrrÚtest_aggregate_mixed_typessÿ&ýr zNot implemented;see GH 31256©ÚreasoncCsjdd„}tdt dddg¡iƒ}| dddg¡ |¡}tdtjdtjgddiddgd    }t ||¡dS)
NcSst|dkƒrdStjSdS)Nrr)rír‡rˆrrrrr98s z5test_aggregate_udf_na_extension_type.<locals>.aggfuncr4rrrr–rnr9)rr‡r­rrrˆr-r.)r9r r1r2rrrÚ$test_aggregate_udf_na_extension_type/s
    $r£c@sBeZdZdd„Zdd„Zejjdddd„ƒZd    d
„Z    d d „Z
d S)ÚTestLambdaManglingcCsttddddgddddgdœƒ}| d¡ dd    d
„d d
„gi¡}tddgddgd œtddgdd d}t ||¡dS)Nrrrrrrðr4rAcSsdSrrrrrrr&Gr'z/TestLambdaMangling.test_basic.<locals>.<lambda>cSsdSr3rrrrrr&Gr'))rAú
<lambda_0>)rAú
<lambda_1>r…r9rRrSrrrÚ
test_basicEs þzTestLambdaMangling.test_basiccCsltddddgƒ ddddg¡}| dd„dd„g¡}ddgddgd    œ}t|t ddg¡d
}t ||¡dS) NrrrrrcSsdSrrrrrrr&Qr'z?TestLambdaMangling.test_mangle_series_groupby.<locals>.<lambda>cSsdSr3rrrrrr&Qr'©r¥r¦r9r+)r,r-r1Úexp_datar2rrrÚtest_mangle_series_groupbyOs
z-TestLambdaMangling.test_mangle_series_groupbyzGH-26611. kwargs for multi-agg.r¡cCsœddd„}ddd„}tddgƒ ddg¡ ||gd¡}tdgdgd    œƒ}t ||¡tddgƒ ddg¡j||gdd
d }td gd gd    œƒ}t ||¡dS)NrcSs| ¡||Sr#r@©rr¡r rrrr&Xr'z5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>rcSs| ¡||Sr#r@r«rrrr&Yr'rrr—r¨rž)r é é)r)r)rrrrr-r.)r,Úf1Úf2r1r2rrrÚtest_with_kwargsVs
 
" &z#TestLambdaMangling.test_with_kwargscCsÖtddddgddddgddd    d
gd œƒ}d d dg}tddgddgd    d
gdœtddgdd|d}|jddjtjddd„dtjdddtjdddd}t ||¡|jddjddd„fddd}t ||¡dS)Nr‹rŒrrŽrrr‘rnr’r“r”Úheight_sqr_minÚ
height_maxÚ
weight_maxç¤p=
׳T@çB@)r±r²r³r•r…r©Zbyr–cSst |d¡Sr8©r+r¹rrrrr&zr'z=TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>r7r¸r—cSst |d¡Sr8r·rrrrr&ƒr'©r–r¸©r—r¸)rrrrr‡rBr-r.©r,r rer2Zresult1rrrrÚtest_agg_with_one_lambdabs<
 
 
ýÿ
ýù ÿ  û  
ýz+TestLambdaMangling.test_agg_with_one_lambdac    Cstddddgddddgddd    d
gd œƒ}d d dddg}tddgddgd    d
gddgddgdœtddgdd|d}|jddjddd„fddddd„fddd„fd}t ||¡|jddjtjdd d„d!tjdd"d!tjdd"d!tjdd#d„d!tjdd$d„d!d}t ||¡dS)%Nr‹rŒrrŽrrr‘rnr’r“r”r±r²r³Ú height_max_2Ú
weight_minr´rµ)r±r²r³r¼r½r•r…rÂr¶r–cSst |d¡Sr8r·rrrrr&¨r'z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>r¸r¹cSs
t |¡Sr#©r+r¸rrrrr&«r'r—cSs
t |¡Sr#r·rrrrr&¬r'cSst |d¡Sr8r·rrrrr&³r'r7r¸cSs
t |¡Sr#r¾rrrrr&·r'cSs
t |¡Sr#r·rrrrr&¸r')rrrrr-r.r‡rBrºrrrÚtest_agg_multiple_lambda‰sR
 
 
ýÿûû÷ 
 
 
û  ÿ  ù    z+TestLambdaMangling.test_agg_multiple_lambdaN) r<r>r?r§rªr;r@Úxfailr°r»r¿rrrrr¤Ds 
 
'r¤cCs^tdddgdddgdœƒ}| d¡ ddd    „i¡}tddgddgdœƒ d¡}t ||¡dS)
Nr¿ÚWr
rirðr4rAcSs| |jd¡S)Néÿÿÿÿ)Úgetr:rrrrr&Àr'z+test_groupby_get_by_index.<locals>.<lambda>)rrrrùr-r.)r r r2rrrÚtest_groupby_get_by_index½srÄzgrp_col_dict, exp_data)ÚnrÚcat_ordrÆrÅc    Cs¶tddddddddgtd    ƒtd
ƒd œƒ}| d d d œ¡}|dj ¡|d<| d¡ |¡}tjddgddgddd d}t||d}d|kr¦|dj    }|d |¡|d<t
  ||¡dS)NrrrrrGr—rHr\ÚaabbccddÚaaaabbbb©rÅrÆr‹Úcategory©r‹rÆrÆr‹r r F©Ú
categoriesZorderedrqro)rdr:) rryršr‹Ú
as_orderedrrr‡ÚCategoricalIndexror-r.)Ú grp_col_dictr©Úinput_dfÚ    result_dfÚ    cat_indexÚ expected_dfrorrrÚ test_groupby_single_agg_cat_colsÅs* ýÿÿ 
rÕ)rrr )rGr\r)rr r )rGrrèr„)rrèc     Cs tddddddddgtd    ƒtd
ƒd œƒ}| d d d œ¡}|dj ¡|d<| d¡ |¡}tjddgddgddd d}g}|     ¡D]:\}}t
|tƒr®|D]}|  ||g¡q˜q‚|  ||g¡q‚t   t|ƒ¡}    t||    |d}
|
jD].} t
| tƒràd| krà|
|  |dj¡|
| <qàt ||
¡dS)NrrrrrGr—rHr\rÇrÈrÉrÊrËrÆr‹r r FrÌr›)rryršr‹rÎrrr‡rÏÚitemsr¯Úappendrrarzreror-r.) rÐr©rÑrÒrÓZmulti_index_listr•ÚvrZ multi_indexrÔÚcolrrrÚ#test_groupby_combined_aggs_cat_colsìs8 ýÿÿ
 
rÚcCs\tddddgddddgdœƒ}| d¡}| dg¡}|j d¡|_| d¡}t ||¡dS)Nrrr„r rórÂ)rrrreZ    droplevelr-r.)r rbr1r2rrrÚtest_nonagg_aggs 
 
rÛc Cshtddgt ddddddd¡t d    dddddd¡gd
œƒ}| d ¡j ¡}| d ¡d }t ||¡dS) NržrriÕrržr­éi`=i½ rðr4rA)rÚdatetimerrAr¸rùr-rCr"rrrÚtest_aggregate_datetime_objects*sþþÿ    rÞcCs‚tdddgdddgdddgdœƒ}|j d¡|_| dd    g¡}|j d
d „¡}tjd d gdd}tddg|dd}t     
||¡dS)Nrr¡rrr)Úc0Úc1ÚpÚOrßràcSs t|dkƒSrrìrrrrr&Ar'z1test_groupby_index_object_dtype.<locals>.<lambda>)rrr)rßràrZFTrár«) rr:ršrrárrrarr-rC)r r0r rÕr2rrrÚtest_groupby_index_object_dtype<s"ÿrãcCsTdd„}tdgt d¡gd}| dd„¡ |¡}tdggdgd}t ||¡dS)    NcSs| ¡ ¡rdSt |¡Sr#)Zisnarír+rr¨rrrr›Ns z)test_timeseries_groupby_agg.<locals>.funcr
z2018-01-16 00:00:00+00:00r9cSsdSr3rrrrrr&Tr'z-test_timeseries_groupby_agg.<locals>.<lambda>r)rr‡r(rrr-r.)r›r r r2rrrÚtest_timeseries_groupby_aggKs
räcCs„|dkr dStddgdtjggƒ}| d¡ |¡}| d¡ d|i¡}|dkrdtj||dddnt ||¡t |j|j¡dS)N)ZcorrwithZnthrr)r§ZngroupF)Z check_names)    rr+r`rrr-rCr.Zdtypes)rÚobjZresult_reduced_seriesZresult_reduced_framerrrÚ test_groupby_aggregate_directoryZs ÿ ÿræcCsNtdddgdd}tdgdt dg¡d}| dddg¡ ¡}t ||¡dS)    Nz1 dayz3 daysÚNaTztimedelta64[ns]rnz2 daysrrp)rr+r­rr,r-rC)rdr2r1rrrÚtest_group_mean_timedelta_natpsrèzinput_data, expected_outputz2021-01-01T00:00rçz2021-01-01T02:00z2021-01-01T01:00z2021-01-01T00:00-0100z2021-01-01T02:00-0100z2021-01-01T01:00-0100cCsHtt|ƒƒ}tt|t dg¡dƒ}| dddg¡ ¡}t ||¡dS)Nrr9)r
rr+r­rr,r-rC)Z
input_dataZexpected_outputrdr2r1rrrÚtest_group_mean_datetime64_natzs réz func, outputy @2@y$@6@yD@€V@yI@€[@cCsNtt d¡ dd¡ ddg¡ƒ}| |jd¡ |¡}t|ƒ}t     ||¡dS)Nr ržrrù@)
rr+r¢r£Údotrr:rr-rC)r›Úoutputrdr1r2rrrÚtest_groupby_complexs ríc    CsXtt d¡ dd¡ ddg¡ƒ}d}tjt|d| |j    d¡ 
|¡W5QRXdS)Nr ržrrrêzNo matching signature foundr6) rr+r¢r£rër;r<rrr:r)r›rdr>rrrÚtest_groupby_complex_raises›s rîÚprodc    CsXtdddgdddgdddgd    œƒ}|jd
dd }tjtd d | |¡W5QRXdS)NrrrrrGr—rHr\rër rŒz"axis other than 0 is not supportedr6)rrr;r<ÚNotImplementedErrorr)r›r r!rrrÚtest_multi_axis_1_raises¤s"rñztest, constantr4rAr5rjr­)ZmarkscCs<t|ƒ}| d¡ tj¡}t|ƒ}| d¡}t ||¡dSr)rrrrÚmoderùr-r.)r]ZconstantZdf1r1r2rrrÚtest_agg_of_mode_list¯s
 
róc    CsÈtdddgdddgdœƒ}| d¡}dd
d „}dd d „}d}tjt|d|j||gddddW5QRX|j||gddd}tddgddgddggtdddgddt ddg¡d}t     
||¡dS)Nrrrr r rrr¡rcSs| ¡||Sr#r@©rr rrrrÚfoo1ÍszAtest__dataframe_groupy_agg_list_like_func_with_args.<locals>.foo1cSs| ¡||Sr#r@©rr rrrrÚfoo2ÐszAtest__dataframe_groupy_agg_list_like_func_with_args.<locals>.foo2ú/foo1\(\) got an unexpected keyword argument 'b'r6rrhrbr\r]ržr…)rrõ)rr÷rÂ)rr)rr) rrr;r<rrrrrar-r.)r r!rõr÷r>r1r2rrrÚ3test__dataframe_groupy_agg_list_like_func_with_argsÈs
 
 
  ýrùc    Cs²tdddgƒ}| |¡}ddd„}ddd„}d    }tjt|d
|j||gddd d W5QRX|j||gdd d }tddgddgddggtdddgƒddgd}t     ||¡dS)NrrrrcSs| ¡||Sr#r@rôrrrrõåsz>test__series_groupy_agg_list_like_func_with_args.<locals>.foo1cSs| ¡||Sr#r@rörrrr÷èsz>test__series_groupy_agg_list_like_func_with_args.<locals>.foo2rør6rrhrbr\r]ržrõr÷rÂ)rr)rr)
rrr;r<rrrrr-r.)rúZsgbrõr÷r>r1r2rrrÚ0test__series_groupy_agg_list_like_func_with_argsàs
 
 
  ÿrú)lÚ__doc__rÝrOrrcÚnumpyr+r;Z pandas.errorsrZpandas.core.dtypes.commonrZpandasr‡rrrrr    r
Zpandas._testingZ_testingr-Zpandas.core.groupby.grouperr r"r3r?rFrcrlrwr{r|r@rArƒrŠr‘Úintrtrr¥r±r·r¼rØrßràrérêrïrñrûrrýr rrr’Zuint64rrrÏryZinterval_rangeZ period_rangerarr#r)r*rCr¹rBr,rqrsrtrvrxryrƒr„r‡rŠršr rÀr£r¤rÄrÕrÚrÛrÞrãrärærèrérírîrñÚparamrórùrúrrrrÚ<module>s¸       
1ÿ
 úþ
 üþ    
    !$
úþ
(þþ ÿ ÿ(þþ
 
üþ    
5vú    
 
ú    
 úïþ
 
 
ÿ
 
 
yýþ
ýþ
) 
þþûþ
    ÿ
 
ÿ
**0ýüþ