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
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
U
­ý°d4aã@s ddlmZmZmZddlmZddlZddlZddlm    Z    ddl
Z ddl
m Z m Z mZmZmZmZmZmZddlmZddlmZddlmZddlmZejd    d
gd d d „ƒZ ejdgddgdfe!ddƒe!ddƒfgd dd„ƒZ"Gdd„dƒZ#Gdd„dƒZ$dS)é)ÚdateÚdatetimeÚ    timedelta)ÚproductN)ÚPerformanceWarning)Ú CategoricalÚ    DataFrameÚGrouperÚIndexÚ
MultiIndexÚSeriesÚconcatÚ
date_range)ÚCategoricalDtype)Úreshape©Ú pivot_tableTF)ÚparamscCs|jS©N)Úparam)Úrequest©rúVd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/reshape/test_pivot.pyÚdropnasrééécCs|j\}}ttj |||¡ƒSr)rrÚpdÚ IntervalIndexÚ from_arrays)rÚclosedÚleftÚrightrrrÚinterval_values#s
r#c@s*eZdZejdd„ƒZdd„Zdd„Zdd„Zd    d
„Z    d d „Z
d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zej dd d!d"gfd d!d"d gfd#d!d"d gfg¡d$d%„ƒZd&d'„Zd(d)„Zd*d+„Zej d,d-d.g¡d/d0„ƒZej d,d-d.g¡d1d2„ƒZej d,d-d.g¡d3d4„ƒZd5d6„Zej d,d-d.g¡d7d8„ƒZd9d:„Zej d;d<d=ge  !d<d=g¡e"d<d=gƒe#d<d=gƒg¡ej d,d-d.g¡d>d?„ƒƒZ$ej d;d@d<ge  !d@d<g¡e"d@d<gƒe#d@d<gƒg¡ej d,d-d.g¡dAdB„ƒƒZ%dCdD„Z&ejj'dEdFej d,d-d.g¡dGdH„ƒƒZ(ej d,d-d.g¡dIdJ„ƒZ)dKdLgdMgdNfdOdP„Z*dQdR„Z+dSdT„Z,ej dUdKe j-dVdVdWdWgdXdXdYdYgge#d@dNdZdNgdKd[fdKdLgd\d]d^d_d`dadbgdcdddedbdbd_gge.j/dfdgdhdidjdkgdKdLgdlfg¡dmdn„ƒZ0dodp„Z1dqdr„Z2ej dsdtdudvdwg¡dxdy„ƒZ3dzd{„Z4d|d}„Z5d~d„Z6d€d„Z7d‚dƒ„Z8d„d…„Z9d†d‡„Z:dˆd‰„Z;dŠd‹„Z<ej dŒdZddŽddd‘gg¡d’d“„ƒZ=d”d•„Z>d–d—„Z?d˜d™„Z@dšd›„ZAej dœeBddžƒ¡dŸd „ƒZCej dœeBdd^ƒ¡d¡d¢„ƒZDd£d¤„ZEd¥d¦„ZFd§d¨„ZGd©dª„ZHd«d¬„ZId­d®„ZJd¯d°„ZKd±d²„ZLd³d´„ZMdµd¶„ZNd·d¸„ZOej d¹d\e jPfdºe j-fd»e jQfd\dºge jPe j-gfd\d»ge jPe jQgfd»dºge jQe j-gfg¡d¼d½„ƒZRejjSd¾d¿„ƒZTdÀdÁ„ZUdÂdÄZVej dÄd-d.g¡dÅdƄƒZWdÇdȄZXdÉdʄZYdËd̄ZZdÍd΄Z[dÏdЄZ\dÑd҄Z]ej dÓd-d.g¡dÔdՄƒZ^dÖdׄZ_dØdلZ`dS)ÚÚTestPivotTablecCsptdddddddddddg dddddddddddg dddddddddddg tj d¡tj d¡tj d¡dœƒS)    NÚfooÚbarÚoneÚtwoÚdullÚshinyé )ÚAÚBÚCÚDÚEÚF)rÚnpÚrandomÚrandn)ÚselfrrrÚdata*sTõõõ
 
 
ÖÿzTestPivotTable.datacCsäddg}d}t|d|||d}|jd|||d}t ||¡t|d||dt|ƒdkrn|jjt|ƒks‚t‚n|jj|dks‚t‚t|ƒdkr |j    j|ks´t‚n|j    j|dks´t‚| 
||g¡d  t j ¡ ¡}t ||¡dS)    Nr,r-r.r/)ÚvaluesÚindexÚcolumnsÚobserved)r7r8r:rr)rÚtmÚassert_frame_equalÚlenr8ÚnamesÚtupleÚAssertionErrorÚnamer9ÚgroupbyÚaggr2ÚmeanÚunstack)r5r:r6r8r9ÚtableÚtable2ÚexpectedrrrÚtest_pivot_table[s2ÿÿ    zTestPivotTable.test_pivot_tablecCs˜ttdƒtdƒdddddgdœƒ}|jd    d
d tjd d }|j d¡|_|j d¡|_|j d¡|_|j     d¡|_    |jd    d
d tjd |d}t
  ||¡dS)NZabcdeZfghijrérré©Úcol1Úcol2Úcol3rMrOrNr)r8r7r9ÚaggfuncÚ
fill_valueÚcategory)r8r7r9rPrQr:) rÚlistrr2Úsumr8Úastyper9rMrNr;r<)r5r:ÚdfrHÚresultrrrÚ+test_pivot_table_categorical_observed_equalws.ÿÿú    z:TestPivotTable.test_pivot_table_categorical_observed_equalcCs†tdddgdddgddd    gd
œƒ}|jd tjd }|jd tjd j}t ||¡|jd ddid }|jd ddid j}t ||¡dS)NÚaÚbÚcÚxÚyÚzrrJr)ÚrowsÚcolsr7r`)r9rP©r8rPr7rD)rrr2rTÚTr;r<)r5rVÚrsZxprrrÚtest_pivot_table_nocols’sÿ z&TestPivotTable.test_pivot_table_nocolsc Cs¼tdddddœdddddœd    d
d d dœd ddddœdddddœdœƒ}|jddddgdd}|jdddgddd}tjdddddd d!d"d#d$d%d&g ddgd'}t |j|¡t |j|¡dS)(Ni`êi †iPÃi0u)rrrJrr,r-r.i[i]i\i^rYrZr[Údi€„i ¡i@B)ÚamountÚcustomerÚmonthrÚquantityrirhrgrF)r)r,rY)r,rZ)r,r[)r,re)r-rY)r-rZ)r-r[)r-re)r.rY)r.rZ)r.r[)r.re©r>)rrr Ú from_tuplesr;Úassert_index_equalr9r8)r5rVZpv_colZpv_indÚmrrrÚtest_pivot_table_dropnažsL     ûÿ    ÿÿôñz&TestPivotTable.test_pivot_table_dropnacCs¢tddddgdddgdd}tddddgdddgdd}t||d    d
d d gd œƒ}t|dddgdd}tj||gddgd}tdd    d
d d gi|d}t ||¡dS)NrYrZr^T©Ú
categoriesÚorderedr[rer]rrJrr)r,r-r7r7r,r-)r7r8rrj©r8)rrrr rr;r<)r5Zcat1Zcat2rVrWZ    exp_indexrHrrrÚtest_pivot_table_categoricalÃs
ÿ
ÿz+TestPivotTable.test_pivot_table_categoricalc Csøddddg}tdddddddddg    dddddddddg    tdd    ƒd
œƒ}|d  t|d d ¡|d <|jdd d|d}tdddgd d}| t|d d ¡}tdddgdd}tdddgdddgdddgg||d}|sè|jt|ƒd d¡}t     ||¡dS)NrYrZr[rerrJrré    ©r,r-r.r,F©rqr-r.)r8r9r7r©rAérérKé©r8r9©r9Úfloat)
rÚrangerUÚCDTrr Zreindexrr;r<)r5rrprVrWÚexpected_columnsÚexpected_indexrHrrrÚ$test_pivot_table_dropna_categoricalsÑs( ýÿýz3TestPivotTable.test_pivot_table_dropna_categoricalscCs‚tttjddddgddgddddddd    gd
œƒ}|jd d |d }td ddgittjddgddgddd dd}t ||¡dS)NÚlowÚhighTroççð?ç@ç@ç@©r,r-r,r-©r8r7rrrrwrr)    rrr2Únanrr
Ú
from_codesr;r<©r5rrVrWrHrrrÚ%test_pivot_with_non_observable_dropnaís,ý úÿ 
ÿüþ
z4TestPivotTable.test_pivot_with_non_observable_dropnacCs˜ttdddddgdddgddtdƒdœƒ}|jdd    |d
}td    d d d gittjd dd gdddgddddd}|sˆ|d     t¡|d    <t     ||¡dS)Nr!rƒr„TrorKrŠr,r-r‹rJrrrrwrr)
rrr~rr
rrUr}r;r<rŽrrrÚ/test_pivot_with_non_observable_dropna_multi_cats0 ýúÿ  ÿüþ    z>TestPivotTable.test_pivot_with_non_observable_dropna_multi_catcCsXt|ddœƒ}|jdd|d}tddit| ¡ddd}|sH| t¡}t ||¡dS)NrrŠr,r-r‹rwrr)rrr
ÚuniquerUr}r;r<)r5r#rrVrWrHrrrÚtest_pivot_with_interval_index#s 
z-TestPivotTable.test_pivot_with_interval_indexcCs¸tj ddddgddddg¡}ttjdddtjdddddgt|d    d
jd d d œƒ}t    |ddddd    d}|d}t
dddgt t  dd¡t  dd¡dgdddtjd}t  ||¡dS)NrrrJréÿÿÿÿ©ÚdtyperYrZTrvF)Z    ascendingrur.r-r,rT©r8r9r7rPÚmarginsÚAllrryé
rw)r8rAr•)rrrrr2ÚarangeZintprZ sort_valuesrr r
ZIntervalr;Úassert_series_equal)r5Z ordered_catrVZ    pivot_tabrWrHrrrÚ&test_pivot_with_interval_index_margins,s2
 ÿýÿ
ÿ üz5TestPivotTable.test_pivot_with_interval_index_marginscCs4|jd|j|jd}|jdddd}t ||¡dS)Nr/r{r,r.)rr,r.r;r<©r5r6rWrHrrrÚtest_pass_arrayFszTestPivotTable.test_pass_arraycCs<|jddd„|jd}|jd|jddd}t ||¡dS)Nr/cSs|dS)NrKr©r\rrrÚ<lambda>Lóz3TestPivotTable.test_pass_function.<locals>.<lambda>r{rKr.)rr.r8r;r<rrrrÚtest_pass_functionKsz!TestPivotTable.test_pass_functioncCsFddg}d}t|||d}| ||g¡ tj¡ ¡}t ||¡dS)Nr,r-r.r{)rrBrCr2rDrEr;r<)r5r6r8r9rFrHrrrÚtest_pivot_table_multiplePs
z(TestPivotTable.test_pivot_table_multiplecCstddddgddddgddddgd    œƒ}|jd
d ks:t‚t|d
dgd gd tjd}|j}tt d ¡gdtt    dƒd dd}t
  ||¡tddddgddddgddddgd    œƒ}|jd
dksÄt‚t|d
dgd gd tj d}|j}tt d¡gdtt    dƒd dd}t
  ||¡dS)NÚcatZbatrrJrrrYrZ)rYÚvÚir¥Úint64r¦r)r7r8r9rQrPÚabrwrrçø?ç@ç @ç@Úfloat64) rÚdtypesr@rr2rTr r•r
rSr;r›rD)r5Úfr^rWrHrrrÚtest_pivot_dtypesWsH
 
 
ýÿÿ$ 
 
 
ýÿÿ$z TestPivotTable.test_pivot_dtypeszcolumns,valuesÚbool1Úfloat1Úfloat2Úbool2cCsjtjdtjd}t||d|dk|dkdœƒ}| ¡jd||d}t|jƒ}d    d
„|Dƒ}||ksft‚dS) NrKr”r‡rJr)r²r³r±r´r8©r8r9r7cSsi|]}|t d¡“qS)r­)r2r•)Ú.0ÚcolrrrÚ
<dictcomp>Žsz=TestPivotTable.test_pivot_preserve_dtypes.<locals>.<dictcomp>)    r2ršr­rÚ reset_indexrÚdictr®r@)r5r9r7r¥rVZdf_resrWrHrrrÚtest_pivot_preserve_dtypeszs
ÿÿ
z)TestPivotTable.test_pivot_preserve_dtypescCsxt dddddg¡}tdddddd    gi|d
}|j|jj|jjd }t d d g¡}|j    |j
d  t j ¡dd}tddgdt jggtddgt j d|d }t ||¡tddddd    gtddd    ddœ|d
}|j|jjtdddd }t dt d¡fg¡}ddg|_tddgtddgt j d|d }t ||¡|jtddtdddd }tdgtjdgdd|d }t ||¡dS)Nz
2011-01-01z
2011-02-01z
2011-01-02r,rrJrrrKrrr{)r,r)r,rJ)Úlevelrªr‰r‡r”r/)ÚfreqÚperiods)r,Údtr¿ÚM)Úkeyr½z
2011-01-31ç
@©r½z
2011-12-31)rÚ DatetimeIndexrrr8rhÚdayr rkZ
set_levelsÚlevelsrUr2Úint32rŒr
r;r<rr    Ú    Timestampr>)r5ÚidxrVÚresZ exp_columnsÚexprrrÚtest_pivot_no_values‘sR ÿÿý   þû
ÿ 
ÿÿz#TestPivotTable.test_pivot_no_valuescCsJt|ddgdddgdd}t|jdgd    d
dddgdd }t ||¡dS) Nr/r0r,r-r.r)r7r8r9rQr1r©Úaxis)r8r9rQ)rÚdropr;r<rrrrÚtest_pivot_multi_values»sÿÿz&TestPivotTable.test_pivot_multi_valuescs¨‡fdd„}|tjtjgƒ}|tjƒ}|tjƒ}t||gddgdd}t ||¡‡fdd„}|tjtjgƒ}|tjƒ}|tjƒ}t||gddgdd}t ||¡dS)Ncstˆddgddgd|dS)Nr/r0r,r-r.©r7r8r9rPr©Úfunc©r6rrr Ås ÿz;TestPivotTable.test_pivot_multi_functions.<locals>.<lambda>rDÚstdr)ÚkeysrÎcstˆddgddgd|ddS)Nr/r0r,r-r.T)r7r8r9rPr—rrÒrÔrrr Ïsú)r2rDrÕr r;r<)r5r6r¯rWZmeansZstdsrHrrÔrÚtest_pivot_multi_functionsÄs 
 
 
 
z)TestPivotTable.test_pivot_multi_functionsÚmethodTFcCsÖtj}tdd|dgddddgdd    d
d gd œƒ}|rD|jd ddd}ntj|d ddd}t||d
|gd|||g|d    ||g|||d ggt|dddgd dtddddgddd}t ||¡t |jdd dd|j¡dS)NZR1ZR2ZR4ÚC1ÚC2ZC3ZC4r™ééé©rYrZr[rYrZr[rµrwr{)    r2rŒrÚpivotrr
r;r<rb)r5rØrŒrVrWrHrrrÚtest_pivot_index_with_nanÝs*
 
 
ýÿ
 
 
 
üø
z(TestPivotTable.test_pivot_index_with_nancCsttdddddt d¡dœƒ}|dt d¡|d    <tj|jd
<|jd <tj|jd <|jd <|rz|jdd    dd}ntj|dd    dd}|     ¡j
  ¡t |ƒks¦t ‚| ¡D]*\}}|j|d|d    f|dks®t ‚q®|rð|jd    ddd}ntj|d    ddd}t ||j¡dS)Nz
2014-02-01rxr/)r¾r½éd)rYr[rYz
2014-02-02rZ)rrY)rrY©rrZ)rrZr[rµ)rrr2ršrrÈrŒÚlocrßZnotnar7rTr=r@Ziterrowsr;r<rb)r5rØrVÚpvÚ_ÚrowrWrrrÚtest_pivot_index_with_nan_datesùs$  þÿ$z.TestPivotTable.test_pivot_index_with_nan_datesc CsÐttdddddƒtdddddƒtdddddƒtdddddƒgtdddddƒtdddddƒtdddddƒtdddddƒgtjddd    tjddd    d
œƒ}|d  d d „¡|d <|d dd „¡|d<tddddgƒ}tjddgdddd}t     ||g¡}tddddgddddggtjddgd dd|d}|r@|j
d dd}ntj
|d dd}t   ||¡tddgddggtjddgd ddtjddgdddd}|r®|j
d ddd}ntj
|d ddd}t   ||¡dS)NéÝrrtrrJéÞrr§r”)Údt1Údt2Údata1Údata2rêcSstj|ddS©Nú
US/Pacific©Útz©rrÈ©rerrrr +r¡z3TestPivotTable.test_pivot_with_tz.<locals>.<lambda>rëcSstj|ddS©Nú
Asia/Tokyorðròrórrrr ,r¡rìríz2014/01/01 09:00z2014/01/02 09:00rõ)rArñrz2013/01/01 09:00z2013/01/02 09:00rïr{rµ) rrr2ršÚapplyr
rrÄr rrßr;r<©r5rØrVÚexp_col1Úexp_col2Úexp_colrHrärrrÚtest_pivot_with_tzslüü  òÿ
ÿÿû ÿÿû
z!TestPivotTable.test_pivot_with_tzc
Cstdtjddddœdtjddddœdtjddddœdtjddddœdtjd    dddœgƒ}| d
¡ ¡}|j d d „¡}t| d
¡ ¡d
d g|gtj    d}ttjdddtjdddggt
dgd dtj tjdddtjdddgd
dd}t   ||¡dS)NZaaz2016-08-12 13:00:00-0700rïrð)ÚuidÚtsz2016-08-12 08:00:00-0700z2016-08-12 14:00:00-0700z2016-08-25 11:00:00-0700z2016-08-25 13:00:00-0700rýcSs|jdddddS)Nr)ÚhourÚminuteÚsecondÚ microsecond)ÚreplacerŸrrrr mr¡z8TestPivotTable.test_pivot_tz_in_values.<locals>.<lambda>rürÑrwz2016-08-12 00:00:00z2016-08-25 00:00:00r{)rrrÈÚ    set_indexr¹rýÚmaprr2Úminr
rÄr;r<)r5rVZminsrWrHrrrÚtest_pivot_tz_in_valuesQsR þ þ þ þ þïÿ û  þÿ   þûøz&TestPivotTable.test_pivot_tz_in_valuesc    Cs‚tt dd¡t dd¡t dd¡t dd¡gt dd¡t dd¡t dd¡t dd¡gtjddd    tjddd    d
œƒ}td d d d gƒ}tjddgd ddd}t ||g¡}tdd dd gddddggtjddgddd|d}|rò|j    ddd}ntj    |ddd}t
  ||¡tdd gddggtjddgdddtjddgdddd}|r`|j    ddd d}ntj    |ddd d}t
  ||¡dS)Nz
2013-01-01r/z
2013-01-02z2013-01rÀz2013-02rr§r”)Úp1Úp2rìrírìrírJr)rAr½rrrrr{rµ) rrÚPeriodr2ršr
Z PeriodIndexr rrßr;r<r÷rrrÚtest_pivot_periodsˆsH
 
 
 
ü
 
 
 
ü  òÿý ýz!TestPivotTable.test_pivot_periodscCstddddgt d¡t d¡t d¡t d¡gddœƒ}tdtdddgdd    tt d¡t d¡dgd
d    d }|jdd
d d d}t ||¡dS)NrrJZ2019Q1Z2019Q2r†)rYrZr\r˜rYrwrZ)r6r8r9r\T)r8r9r7r—)rrr    r
rr;r<)r5rVrHrWrrrÚtest_pivot_periods_with_margins¶s"
üøÿ ýz.TestPivotTable.test_pivot_periods_with_marginsr7ÚbazÚzooc    
Csötddddddgddddddgdddd    d
d gd d ddddgdœƒ}|rX|jdd|d}ntj|dd|d}dddd d dgd    d
d dddgg}tddgdd}tddgdddggddddddgddddddggddgd}t|||dd}t ||¡dS)Nr'r(r,r-r.rrJrrrKrxr\r]r^ÚqÚwÚt©r%r&r r r%r&rµ©r6rAr r r©rÆÚcodesr>Úobject©r6r8r9r•)rrßrr
r r;r<©    r5r7rØrVrWr6r8r9rHrrrÚ test_pivot_with_list_like_valuesÎs& üÿ     ýz/TestPivotTable.test_pivot_with_list_like_valuesr&c    
Cs,tddddddgddddddgdddd    d
d gd d ddddgdœƒ}|rX|jdd|d}ntj|dd|d}tjdtjd    gtjdtjd gtjdtjd
gdtjdtjgdtjdtjgdtjdtjgg}tdddd d dgdd}tddgddggddddgddddggddgd}t|||dd}t ||¡dS)Nr'r(r,r-r.rrJrrrKrxr\r]r^rrrrr r%rµrr&r rrrr)    rrßrr2rŒr
r r;r<rrrrÚ%test_pivot_with_list_like_values_nansòs2 üÿ    úýz4TestPivotTable.test_pivot_with_list_like_values_nansc    CsRtdddgdddgdddgdœƒ}d}tjt|d    |jd
d d W5QRXdS) NrYrZr[rrJrrLz=pivot\(\) missing 1 required keyword-only argument: 'columns'©ÚmatchrMrO)r8r7©rÚpytestÚraisesÚ    TypeErrorrß)r5rVÚmsgrrrÚ#test_pivot_columns_none_raise_errors"z2TestPivotTable.test_pivot_columns_none_raise_errorzBMultiIndexed unstack with tuple names fails with KeyError GH#19966©Úreasonc    Cstddddddgd}dd    dd
gdd dd gdd ddgdd    ddgdd ddgdd ddgg}tddgddggddddgddddggd}t|||dd}|r¨|jdddd}ntj|dddd}tddgddgdtddgddgdtddgddgdd œ}t|ƒ}t ||¡dS)!NrrrJrrrKrÔr'r,r\r-r]r.r^r(rrrxrr&r Úfirstr)rÆrrr)r&r$)r&r)r r$rµrrru)r
r rrßrr r;r<)r5rØr8r6r9rVrWrHrrrÚtest_pivot_with_multiindex$s>
 
 
 
 
 
úþýüýz)TestPivotTable.test_pivot_with_multiindexc
Csˆtddddddgddddddgdddd    d
d gd d ddddgdœƒ}tjtdd.|rh|jddddntj|ddddW5QRXdS)Nr'r(r,r-r.rrJrrrKrxr\r]r^rrrrz^\('bar', 'baz'\)$rr r%)r&r rµ)rrrÚKeyErrorrßr)r5rØrVrrrÚtest_pivot_with_tuple_of_valuesNsüÿz.TestPivotTable.test_pivot_with_tuple_of_valuesr,r-r.r˜c CsÊ|j|jdd…|f}| |¡| ¡}tj||dd|j|ksHt‚| ¡}|j|dfj    dd…}    | |¡| ¡}
tj|    |
dd|    j|dfksœt‚|j|df|f} || ¡} | | ksÆt‚dS)Nr“F©Z check_namesÚ)
rãr8rBrDr;r›rAr@Z
sort_indexZiloc) r5rWZ
values_colr6r8r9Ú margins_colZ col_marginsZexpected_col_marginsZ index_marginsZexpected_ix_marginsZgrand_total_marginsZexpected_total_marginsrrrÚ _check_output`s     zTestPivotTable._check_outputcCs–|jdddgddtjd}| |d|¡|jdddgddtjdd}|j|d|dd    |jddgddtjd
}|jjd D]}| ||||¡qzdS) Nr/r,r-r.T)r7r8r9r—rPZTotals)r7r8r9r—rPÚ margins_name)r*©r8r9r—rPr)rr2rDr+r9rÆ)r5r6rWrFÚ    value_colrrrÚ test_marginsys2ÿúÿzTestPivotTable.test_marginsc    Csdd„|jDƒ|_tjtdd|jddgdtjdW5QRX|jd    d
jddgdtjd}|jD]&}|jd |f}||| ¡ksft    ‚qftjtdd|jddgdd dW5QRX|jd    d
jddgdd d}d D]&}|jd |f}||| ¡ksÜt    ‚qÜdS)NcSsg|] }|d‘qS)rJr)r¶ÚkrrrÚ
<listcomp>–sz.TestPivotTable.test_no_col.<locals>.<listcomp>úCould not convertrZAAÚBBT)r8r—rPÚCCr|©r˜r)rD)ZDDZEEZFF)
r9rrrrr2rDrÏrãr@)r5r6rFr.ZtotalsÚitemrrrÚ test_no_col’s*  ÿ
 ÿzTestPivotTable.test_no_colz*columns, aggfunc, values, expected_columnsç@gš™™™™™@ç @gš™™™™™@r%rwrTrté érKrxr+ééé )r&r')r&r()r&r˜)r%r')r%r()r%r˜rjcCsòtdddddddddg    dddddddddg    dddddddddg    dddd    d    d
d d d g    dd
d d d d dddg    dœƒ}|dkr tjtdd|j|d|dW5QRXd|kr´|jdd}|jddj|d|d}t|tddgƒ|d}t ||¡dS)Nr%r&r'r(ÚsmallÚlargerrJrrrKrxryrzrt©r,r-r.r/r0rTr2rT)r9r—rPr-r|r.r/r0r{)    rrrrrrÏr
r;r<)r5r9rPr7r€rVrWrHrrrÚ%test_margin_with_only_columns_defined©s:"÷ ñÿ  ÿz4TestPivotTable.test_margin_with_only_columns_definedcCsÐ| ¡}t t|ƒd¡ t|ƒd¡ d¡|dddg<ttddgdd    gƒƒd
g}tj    |d d }t
d ddddgdddddgdœ|dj ddd}|d|d|d<|j dddgdd tj dd!}t ||¡dS)"NrÚi8r/r0r1r&r%r'r(r5rŠrjé érté-é!ré$é3éx©r)r*rrr.rrÍr)r*r˜r,r-T©r7r8r9r—rPrQ)Úcopyr2ršr=rrUrSrr rkrÚ rename_axisrrTr;r<)r5r6rVÚmi_valÚmirHrWrrrÚtest_margins_dtypeês*.ÿþú    z!TestPivotTable.test_margins_dtypecCs˜ttddgddgƒƒdg}tj|dd}tddd    dd
gd    d d    d    d gd œ|djddd}|d|d|d<|jdddgddtd d}t     ||¡dS)Nr&r%r'r(r5rŠrjrrJrKrrxrKrrr.rÍr)r*r˜r/r,r-TrL)
rSrr rkrrNrr=r;r<)r5r6rOrPrHrWrrrÚtest_margins_dtype_lens&ÿþú    z%TestPivotTable.test_margins_dtype_lenr`)rrJ©rYrZrâ)rYrc    Csxt|ddddg|ddddgddddgiƒ}|jd|d    }tdddggtjd
d d g|d tdgƒd}t ||¡dS)NrrrJrr¥rrKrx)r7r9)rr)rJrJ)rrrj©r9r8)rrr rkr
r;r<)r5r`Údf2rWrHrrrÚ test_pivot_table_multiindex_onlys.
ýz/TestPivotTable.test_pivot_table_multiindex_onlycCsZtdddd}ttj d¡tj d¡|dœƒ}|jddgdd    }|jjd
 |¡sVt    ‚dS) Nz
2016-01-01rzEurope/Amsterdam)r¾rñrur-r.F)r8rr)
rrr2r3r4rr8rÆÚequalsr@)r5ZdtirVrWrrrÚtest_pivot_table_retains_tz#s z*TestPivotTable.test_pivot_table_retains_tzcs”tj‰ttddgdddgddg‡fdd    „td
ƒDƒd gƒƒ}t|ƒ}|jd d ddgdgd}|jtd}|jddddgdgd}t    j
||dddS)Nr%r&r,r-r.Úx1Zx2csg|]}ˆt|ƒ‘qSr)r)r¶r¦rórrr14sz=TestPivotTable.test_pivot_integer_columns.<locals>.<listcomp>rÝr†rrrrrJ)r7r8r9r|Ú4Ú0Ú1Ú3Ú2Fr() rrrSrr~rrÚrenameÚstrr;r<)r5r6rVrFrUrGrrórÚtest_pivot_integer_columns+sûÿ     z)TestPivotTable.test_pivot_integer_columnsc
Cs¬tddddddddgdddddddddgddgddgddtj d    ¡d
œƒ}|jd ddd gd }| ddd g¡d  ¡}| d¡ d ¡jddd}t     
||¡dS)NrYrZrJrrr%rr&é)rYrZr[Úvaluercr[r{Úall)rÎÚhow) rr2r3r4rrBrDrErr;r<)r5r6rFZgroupedrHrrrÚtest_pivot_no_level_overlap@s
üÿ    z*TestPivotTable.test_pivot_no_level_overlapc
 
Cs@d}t dtfdtfdtfdtfdtfdtfdtfg¡}tjd    d
d d d ddddg    dtfdtfgd}tj||d}tj dt    |ƒ|¡}|d||d<|d||d<t
t dddƒt dddƒƒ}|tj dt    |ƒ|¡}|j |d<|j |d<|j|d<tj dd|¡|d<t|ƒ}|jdddgdddgdd}    |    jjs<t‚dS)Ni'r
ZSymbolÚYearÚMonthZDayÚQuantityZPrice)ÚSP500ZADBE)rjZNVDA)rjZORCL)ÚNDQ100ZAAPL)rkZMSFT)rkZGOOG)ÚFTSEzDGE.L)rlzTSCO.L)rlzGSK.Lr”riÐriÚrDér‰r‡rD©r8r9rP)r2r•rÚintr}ÚarrayÚemptyr3Úrandintr=rrÚyearrhrÅZ    lognormalrrr9Zis_monotonic_increasingr@)
r5Únr•ZproductsÚitemsZiproductZdrÚdatesrVÚpivotedrrrÚtest_pivot_columns_lexsortedRsTùÿ ÷ ô
 
 
üz+TestPivotTable.test_pivot_columns_lexsortedcCsHdgdgdœ}| ddg¡ |¡ d¡}|jdd|d}t ||¡dS)NrÕrT©r/r0r,r-rn)rBrCrErr;r<)r5r6r¯rHrWrrrÚtest_pivot_complex_aggfunc…sz)TestPivotTable.test_pivot_complex_aggfunccCsD|ddgjddgtdd}| ¡}t|dd…ƒ|dks@t‚dS)Nr,r-T)r8rPr—r“)rr=ÚtolistrTr@)r5r6rWZ result_listrrrÚtest_margins_no_values_no_colsŒs ÿz-TestPivotTable.test_margins_no_values_no_colscCs@|dddgjddgdtdd}|j ¡ddddd    gks<t‚dS)
Nr,r-r.T©r8r9rPr—rˆr†r‰ç&@©rr=r˜r{r@©r5r6rWrrrÚtest_margins_no_values_two_rows”sÿz.TestPivotTable.test_margins_no_values_two_rowscCs6|ddgjddtdd}|j ¡dddgks2t‚dS)Nr,r-Tr}r‰ç@r~rr€rrrÚ&test_margins_no_values_one_row_one_colœs ÿz5TestPivotTable.test_margins_no_values_one_row_one_colc Csdddddddddd    d
d g |d <|d ddd gjd dgdd gtdd}|j ¡dddddgks`t‚dS)NrYrZr[reÚer¯ÚgÚhr¦Újr0r/r,r-r.Tr}rˆr†r‰r~rr€rrrÚ'test_margins_no_values_two_row_two_cols¤sÿz6TestPivotTable.test_margins_no_values_two_row_two_colsÚ margin_namer'išNrYrZc    Csªd|›d}tjt|d t|dddgdgd|d    W5QRXtjt|d t|ddgddgd|d    W5QRXtjt|dt|ddgdgd|d    W5QRXdS)
NzConflicting name "z3" in margins|margins_name argument must be a stringrr/r,r-r.T)r7r8r9r—r,)rrÚ
ValueErrorr)r5r‰r6r rrrÚ-test_pivot_table_with_margins_set_margin_name­s:
ÿúúúz<TestPivotTable.test_pivot_table_with_margins_set_margin_namecCsztd ¡d ¡ddddddddgtdddƒtdddƒtdd    dƒtdd    d
ƒtdd    dƒtdd    d
ƒtdd d
ƒtdd d
ƒgd œƒ d ¡}ttjd    ddgdd dd¡tjtdd dƒgddd ¡d}d |j    _
d|j _
t |t ddddtjd}t ||¡t |dt dddtjd}t ||j¡tt dtjdddtjg¡ d
d¡tjtdddƒtdddƒgddd ¡d}d |j    _
d|j _
|r’|d d¡|d<t |t ddddtjd}t ||¡t |dt dddtjd}t ||j¡| ¡}t |t dd dddtjd}t ||¡t |dt dd ddtjd}t ||j¡d}tjt|d"t |t dddddtjdW5QRXtjt|d"t |dt ddddtjdW5QRX| d ¡}t |t dd d ddtjd}t ||¡t |dt dd d dtjd}t ||j¡d!}tjt|d"t |t ddd ddtjdW5QRXtjt|d"t |dt ddd dtjdW5QRXdS)"NúA A A A A A A Bú$Carl Mark Carl Carl Joe Joe Joe CarlrrrKrzrtrèr™rJrD)ÚBranchÚBuyerriÚDaterr=r§r”rmr,rÃz Carl Joe Markr{rri©r8r9r7rPryZ6MSZCarl©r½rÁz#'The grouper name foo is not found'rr%)r½r¼zThe level foo is not valid)rÚsplitrrr2rprrrÄr8rAr9rr    rTr;r<rbrŒrUr¹rrr&rŠ)r5Úusing_array_managerrVrHrWr rrrÚtest_pivot_timegrouperÓs
 
 
 
 
 
 
 
øüÿðýû û ÿûû û
û 
û
û
û    
 
û 
û
û
ûz%TestPivotTable.test_pivot_timegroupercCsŠtd ¡d ¡ddddddddgtdd    dd
d ƒtdddd
dƒtdd dd d ƒtdd dd d ƒtdd    dd d ƒtdd dd d ƒtdd ddd ƒtddddd ƒgtdd dd d ƒtdd dd
dƒtdddd d ƒtdd    dd d ƒtdd dd d ƒtdddd d ƒtddddd ƒtdd    d dd ƒgdœƒ}t|tdddtddddtjd}tt tjdtjtjdtjddtjdtjtjtjtjdtjg¡     dd¡t
j tdddƒtdd dƒtdd    dƒtdddƒgddt
j tdddƒtdd dƒtdd    dƒtdddƒgddd}d|j _ d|j_ t ||¡t|tdddtddddtjd}t ||j¡tdddƒtdd dƒftdd dƒtdddƒftdd dƒtdd    dƒftdd dƒtdddƒftdd    dƒtdd dƒftdddƒtdd    dƒfg}tj|ddgd }tt dtjdtjdtjdtjdtjtjdg ¡     dd¡|d!d"gd}d#|j_ t|tdddtdddgd#gdtjd}t ||¡t|d#gtdddtdddgdtjd}t ||j¡dS)$NrŒrrrrKrzrtrèr+r:rr™rÝrJrDr<rrÛryé)rŽrrirÚPayDayrÀrr’r—rir‘rxrmrÃr{rjr,r-rŽ)rr“rrr    r2rTrprŒrrrÄr8rAr9r;r<rbr rk)r5rVrWrHZtuplesrÉrrrÚtest_pivot_timegrouper_doubleksêø øòÿ
 
ûðÿí
 
 
 
üù    
 
 
 
üùâ( 
 
ûú&ÿþûû ûz,TestPivotTable.test_pivot_timegrouper_doublec CsÔddddddg}ddddddg}tddddddg||tjdd    d
d d gd dœƒ}|d dd„¡|d<|d dd„¡|d<tjdddgddd}tddgƒ}tddgdd}t ||g¡}tdd gd dgd dgg||d}t    |dgdgdgd}    t
  |    |¡tddddddddgƒ}tddd d gd ƒ}tjddgdd!dd}
t |||
g¡}ttj dd d d dd d d gd dd d d dd d gd dd d d dd d ggd    d
||d}t    |dgdgdd gtj tjgd"}    t
  |    |¡dS)#Nú2011-07-19 07:00:00ú2011-07-19 08:00:00ú2011-07-19 09:00:00ú2013-01-01 15:00:00ú2013-02-01 15:00:00rYrZrxr§r”rrJr©ÚlabelrêrëÚvalue1Úvalue2rêcSstj|ddSrîròrórrrr r¡z7TestPivotTable.test_pivot_datetime_tz.<locals>.<lambda>rëcSstj|ddSrôròrórrrr r¡rï)rñrAr rŸrwrrrKr{rµrTrDr¡rõr‘)rr2ršrörrÄr
r rrr;r<rprTrD) r5Údates1Údates2rVÚexp_idxrørùrúrHrWZexp_col3rrrÚtest_pivot_datetime_tzês|ú    ú 
ûÿ    ý   
ýýúö 
ûz%TestPivotTable.test_pivot_datetime_tzc
CsŠddddddg}ddddddg}tddddddg||tjdd    d
d d gd dœƒ}|d dd„¡|d<|d dd„¡|d<t|d|djjdd}tddgdd}tdd gd dgd dgdœ|tdddgtjddd }t     
||¡t||djj |djjdd}tdd gd dgd dgdœtd d gtjddtdddgtjddd }t     
||¡t||djj j |djj|djj gdd}tjtjddddddgtjd
tjd d gd tjd
gddgd!}ttjdd d dd dggd    d
td"gtjd
|d }t     
||¡t|t d#d#d#d#d$d$g¡|djj|djj gdd}tt dd d tjd tjgtjtjtjdtjdgg¡d#d$g|d }t     
||¡dS)%Nr™ršr›rœrrYrZrxr§r”rrJrržrêcSs
t |¡Srròrórrrr Lr¡z6TestPivotTable.test_pivot_dtaccessor.<locals>.<lambda>rëcSs
t |¡Srròrórrrr Mr¡rŸr rµrwrrrK)ryrzrtryrzrt©r•rAr{rjrèÚXÚY)rr2ršrörr¿rþr
rÇr;r<rhrsr7r rrprŒ)r5r¢r£rVrWr¤rHrúrrrÚtest_pivot_dtaccessor1s¢ú    ú 
ûÿ    
ÿý 
 
ÿý  üþûý ü*ÿûz$TestPivotTable.test_pivot_dtaccessorr¦riocCs tdddd}ttj t|ƒ¡|d}tt|ƒ|jj    |jj
d}|j   d¡|_ t  |jj
¡}|||k}|jj    |_|| ¡}tj||dd    |j|ksœt‚dS)
Nú1/1/2000ú
12/31/2004r/rÃrrr{rFr()rr r2r3r4r=rrr8rsZ    dayofyearr9Ú    droplevelZasarrayrr;r›rAr@)r5r¦ÚrngrýÚannualZdoyÚsubsetrWrrrÚ
test_dailyŠsÿ 
 zTestPivotTable.test_dailycCsštdddd}ttj t|ƒ¡|d}tt|ƒ|jj    |jj
d}|j   d¡|_ |jj
}|||k}|jj    |_||  ¡}tj||dd    |j|ks–t‚dS)
Nrªr«rÀrÃrrr{rFr()rr r2r3r4r=rrr8rsrhr9r¬rr;r›rAr@)r5r¦r­rýr®rhr¯rWrrrÚ test_monthlys 
 zTestPivotTable.test_monthlycCsvdddœ}t|dgt| ¡ƒ|d}t|dg| ¡|d}t ||¡dd„|Dƒ}t|dg||d}t ||¡dS)NrTrDryr,)r8r7rPcss|]
}|VqdSrr)r¶rcrrrÚ    <genexpr>¹szGTestPivotTable.test_pivot_table_with_iterator_values.<locals>.<genexpr>)rrSrÖr;r<)r5r6ZaggsZpivot_values_listZpivot_values_keysZagg_values_genZpivot_values_genrrrÚ%test_pivot_table_with_iterator_values¬s,
 
ÿÿ ÿz4TestPivotTable.test_pivot_table_with_iterator_valuescCsªd}tddddgddddgddd    d    gd
œƒ}|jd d d |tjtgd}tdd|gdd d}dddd|fdddd|fg}tj|ddd gd}t|j||d}t     
||¡dS)NZWeeklyZbaconZcheeserªr¬gš™™™™™    @gffffff
@rÀrb)r6ÚcostrÅr6rÅT)r8r9r—r,rPrr¦)rDr´rÀ)rDr´rbrDr´)Úmaxr´rÀ)rµr´rbrµrjr{) rrr2rDrµr
r rkr7r;r<)r5r,ZcostsrFÚixZtupsr`rHrrrÚ/test_pivot_table_margins_name_with_aggfunc_list¿s2
 
 
ýÿûúz>TestPivotTable.test_pivot_table_margins_name_with_aggfunc_listcCs°|r|j tjjdd¡tt d¡t d¡dt d¡ddœƒ}tddd    gd
d d gd ddggƒ}tdddgdd|_    tdddgdd|_
|j ddd|dd}t   ||¡dS)Nú1GH#17035 (np.mean of ints is casted back to ints)r"rzrrJ©r\r]r^r†r‡r©rKrxr8rr«rrr˜r]rwr^r\T©rr—)ÚnodeÚ
add_markerrÚmarkÚxfailrr2ršr
r8r9rr;r<©r5r:rrVrHrFrrrÚtest_categorical_marginsÝsÿÿ$ÿ z'TestPivotTable.test_categorical_marginscCsÌ|r|j tjjdd¡tt d¡t d¡dt d¡ddœƒ}tddd    gd
d d gd ddggƒ}tdddgdd|_    tdddgdd|_
|j   d¡|_ |j   d¡|_ |jddd|dd}t ||¡dS)Nr¸r"rzrrJr¹r†r‡r©rKrxr8rr«rrr˜r]rwr^rRr\Trº)r»r¼rr½r¾rr2ršr
r8r9r]rUr^rr;r<r¿rrrÚ!test_categorical_margins_categoryðs ÿÿ$ÿ z0TestPivotTable.test_categorical_margins_categorycCs„tddddgddddgddddgddd    d    gd
œƒ}t|d d d }tdddgdddgdddgdœtdd    dgd dd}t ||¡dS)NrJrrxrzrrKrr§r¨)r,r-r.r/r/T)r8r—ryrªg@r¬r«rur˜rwrr)rrr
r;r<©r5rVrWrHrrrÚtest_margins_casted_to_floats
 
 
 
üÿ    þz+TestPivotTable.test_margins_casted_to_floatc    Csþtjdddtjg}tjddtjdg}tt|ddg|dt|ddg|dtddƒdœƒ}|jd    d
d |d }tjddg|d
d }tdtjgtjdgg|d}ttddgddg|dd    d|_    t
  ||¡|jd
d |d}tddgg|td gƒd}t
  ||¡dS)Nrƒr„r,r-rorrx)ÚInÚColÚValrÄrÅrÆ)r8r9r7r:)rqrAr‡rˆ)r6r9rw)r9r7r:r«)r6r9r8) r2rŒrrr~rrÚCategoricalIndexr
r8r;r<)    r5r:rqrÉr·rVrWZ expected_colsrHrrrÚtest_pivot_with_categoricals8ýÿÿþ ÿz*TestPivotTable.test_pivot_with_categoricalcCs¼tddddgddddgdddd    gd
œƒ}|d  d ¡|d <|jd d d|dd}tjdddgdddgdd d}tddgdd}tjddgddgddggtjd}t|||d}t     
||¡dS)Nr,r-r.rYrZrrJrr)rÙrÚÚVrÙrRrÉrÚÚcount)r8r9rrPF©rprqrArwrr”r{) rrUrrrÇr
r2rpr§r;r<)r5r:rVrWrr€Ú expected_datarHrrrÚtest_categorical_aggfunc9s2"ÿÿÿ"ÿz'TestPivotTable.test_categorical_aggfuncc     CsÖtdddgdddgdddgdœƒ}ddd    d
d d d dddddg }|d d¡j |¡|d<|jddd|dd}tddgddd}tj||ddd}ddggddggd}t|||d }|rÆ|jdg}t     
||¡dS)!NrárJéÜÚJanuaryrèré)ÚSalesrhrgÚFebruaryZMarchZAprilÚMayZJuneZJulyZAugustZ    SeptemberZOctoberZNovemberZDecemberrhrRrÐrgrT)r7r8r9r:rPr§)rAr•FrËi@rr+r{) rrUr¤Zset_categoriesrr
rrÇrãr;r<)    r5r:rVÚmonthsrWr€rrÌrHrrrÚ%test_categorical_pivot_index_orderingMsVýÿôûÿÿ z4TestPivotTable.test_categorical_pivot_index_orderingcCsBtdddgdddgdddgd    œƒ}|jd
d d gtjd }tjdddgdddggd d gd}tdddg|d
gd}t ||¡|jd
d d tjd}tdtjtjgtjdtjgtjtjdggt    dddgd dt    dddgd dd}t ||¡|jd
d tjgd }t dgd
gg¡}tdddgt    dddgd d|d}t ||¡dS)NrrrKr.r/r0rrtrLrMrOrNrarjr{rnrwrT)
rrr2rTr rr;r<ÚNaNr
)r5rVrWrmrHrrrÚtest_pivot_table_not_seriesys "" &ý "z*TestPivotTable.test_pivot_table_not_seriescCs\d}tddddgiƒ}t|dgtd|d}tddd|gddd    }t|gd
}t ||¡dS) Nu Δοκιμήr%rrJrT)r8rPr—r,rr¦r{)rrr=r
r;r<)r5ÚgreekÚframerFr8rHrrrÚtest_pivot_margins_name_unicode•sÿ z.TestPivotTable.test_pivot_margins_name_unicodec CsBtdddddddddddg dddddddddddg tdƒdœƒ}t|ddd    d
}td gddggd d gd d ggddgd}tdddœdddœdœ|d d¡}t ||¡t|ddd    dgd
}td    dgd gddggd d d d gd d d d gd d d d ggdddgd}tdddœdddœdddœdddœdœ|d d¡}t ||¡dS)Nr%r&r'r(r+rur,r-rTrnr.rrrrÛr:)r&r%ryrÝ))r.r')r.r(r|rDç@rÂr‚g«ªªªªª@))rDr.r')rDr.r()rTr.r')rTr.r()rr~rr rNr;r<)r5r6rWrPrHrrrÚtest_pivot_string_as_func stõõ åÿ  ÿþý  ýüùø    z(TestPivotTable.test_pivot_string_as_funcz
f, f_numpyrDrÕcCs<|jdd}t|dd|d}t|dd|d}t ||¡dS)Nr.r|r,r-rn)rÏrr;r<)r5r¯Zf_numpyr6rWrHrrrÚtest_pivot_string_func_vs_funcÞs z-TestPivotTable.test_pivot_string_func_vs_funcc CsžGdd„dtjƒ}| ¡z}| td|¡tt d¡t d¡ddœƒ}d}tjt    |d2t
j t d    d|j d
d d d d W5QRXW5QRXW5QRXdS)Ncs"eZdZddœ‡fdd„ Z‡ZS)zSTestPivotTable.test_pivot_number_of_levels_larger_than_int32.<locals>.MockUnstackerN)Úreturncstƒj||Žtdƒ‚dS)NúDon't compute final result.)ÚsuperÚ__init__Ú    Exception)r5ÚargsÚkwargs©Ú    __class__rrràösz\TestPivotTable.test_pivot_number_of_levels_larger_than_int32.<locals>.MockUnstacker.__init__)Ú__name__Ú
__module__Ú __qualname__ràÚ __classcell__rrrärÚ MockUnstackerõsrêÚ
_Unstackerir)Úind1Úind2rÊz$The following operation may generaterrÞrìrírÊr‘)Ú reshape_librëÚcontextÚsetattrrr2ršr;Úassert_produces_warningrrrrár)r5Z monkeypatchrêrmrVr rrrÚ-test_pivot_number_of_levels_larger_than_int32ñs
ÿÿz<TestPivotTable.test_pivot_number_of_levels_larger_than_int32c
CsÊtdddgdddgdddgdœƒ}dd    „}d
d „}d d „}t|d|||g|d}ddtjtjddgddtjtjddgg}tjdddgddggddgd}t|ddg|d}    |rº|    jdd}    t ||    ¡dS)NZappleZpeachrrJryrx)ÚfruitÚsizeÚtastecSsdS)NrrrŸrrrÚret_onesz?TestPivotTable.test_pivot_table_aggfunc_dropna.<locals>.ret_onecSst|ƒSr)rTrŸrrrÚret_sumsz?TestPivotTable.test_pivot_table_aggfunc_dropna.<locals>.ret_sumcSstjSr)r2rŒrŸrrrÚret_nonesz@TestPivotTable.test_pivot_table_aggfunc_dropna.<locals>.ret_noneró©r9rPrrr:r÷rørörjrôrõr{r9rÍ)    rrr2rŒr Z from_productrr;r<)
r5rrVrör÷rørWr6r·rHrrrÚtest_pivot_table_aggfunc_dropnas0ýÿÿ(þ z.TestPivotTable.test_pivot_table_aggfunc_dropnacCstdddgdtjdgdtjtjgdœƒ}t|dtj|d}d    tjgdtjgg}tddgdd
}t|d d g|d }|r€|jdd}t ||¡dS)Nr'r(rrJr)r,r\r]r,rùrªrwr\r]r{r9rÍ)    rr2rŒrrDr
rr;r<)r5rrVrWr6r·rHrrrÚ&test_pivot_table_aggfunc_scalar_dropna+s"ÿ z5TestPivotTable.test_pivot_table_aggfunc_scalar_dropnar—c    Cs‚tdddddgdddddgdd    d    dd    gdddddgd
œƒ}|jd d d tj|d}tgd d}ttgdd d|d}t ||¡dS)NrJrrKrxryrzrtÚpr)r,Úidr.r/r,r/rýr–rwr§r¦r{)rrr2rôr
r;r<)r5r—rVrWZexp_colsrHrrrÚtest_pivot_table_empty_aggfunc<s"    üÿÿ z-TestPivotTable.test_pivot_table_empty_aggfuncc    Cs`dd„}tddddgddddgddddgd    œƒ}tjtd
d |jd
d d |dW5QRXdS)NcSs
t |¡Sr)r2rD)ZarrrrrrCPsz=TestPivotTable.test_pivot_table_no_column_raises.<locals>.aggrrr™rÝr–é()r§r¨ÚZZ
notpresentrr§r¨)rP)rrrr&r)r5rCrVrrrÚ!test_pivot_table_no_column_raisesNs(z0TestPivotTable.test_pivot_table_no_column_raisescCs:tdddddddddg    dddddddddg    dddddddddg    dddd    d    d
d d d g    dd
d d d d dddg    dœƒ}t|ddgddgtjtttjgdœd}t ddddg¡}tjddddgddgd}t d d!d"d#gd d!d$d%gd&d'd(d)gd*d#d+d&gg¡}t|||d,}|d     tj
¡|d<|d     tj
¡|d<t   ||¡dS)-Nr%r&r'r(r?r@rrJrrrKrxryrzrtrAr/r0r,r.ry)r7r8rP)r/rD)r0rµ)r0rD)r0r)r&r@)r&r?)r%r@)r%r?rjr8g"@g@ç@g!@r9r‡rÚr¬r‰g["8ªªª@g.UUU@rT) rrr2rDrrµr rkrprUr§r;r<)r5rVrFr`r8ÚvalsrHrrrÚ0test_pivot_table_multiindex_columns_doctest_caseWsR÷ ñÿü
ÿ
þ
 
 
 
üÿz?TestPivotTable.test_pivot_table_multiindex_columns_doctest_casecCs¢tdddgdddgddd    gd
d
d gd œƒ}|jdd gddddd}tdtjgdtjgtjd    ggtd
d gddtjdddgdddggdd gdd}t ||¡dS)NÚd1Zd4Zd3rYrZr[érEé"Z2018Z2019)rYr·Únumrsr·rsrrTF)r8r9r7rPÚsortrwrjrT)    rrr2rŒr
r rr;r<rÂrrrÚtest_pivot_table_sort_false‹s.üÿÿÿýz*TestPivotTable.test_pivot_table_sort_falsecCs„tdddgtddgdddœƒ}|jd    d
d d d }tddgddgddggtdddgd    dtjddgdd
gddd}t ||¡dS)Nr,rrJr™r+ÚInt64r”)rYrZÚsalesrZrYTrTr-rEr˜rw©r r,©r r˜rj©r8r9r•)rr rr
r rkr;r<rÂrrrÚ!test_pivot_table_nullable_margins¡sÿÿúz0TestPivotTable.test_pivot_table_nullable_marginscCsztddgddgddgddgd    œƒ}|jd
d gd d gdd}tddgddggd d gtjddgd
d gdd}t ||¡dS)NÚJohnÚMichaelÚFooÚBaré­é¶é/rG)Ú    firstnameÚlastnameÚheightÚagerrrrF)r8r7r    )rr)rrrjrT)rrr rkr;r<rÂrrrÚ0test_pivot_table_sort_false_with_multiple_values²s*üÿÿþýz?TestPivotTable.test_pivot_table_sort_false_with_multiple_valuescCsªtdddgdddgdddgddd    ggƒ}d
d d g|_|jd
d d d ddd}tddddgddd    dgddd    d
ggƒ}ddddg|_dddg|_d |j_d
|j_t ||¡dS)NrYr\rr]rJrZrr^rr™rÝr–rTrT)r8r9r7rPrQr—ryrKr˜)rr9rr8rAr;r<rÂrrrÚ1test_pivot_table_with_margins_and_numeric_columnsÈs ( ÿ& z@TestPivotTable.test_pivot_table_with_margins_and_numeric_columnsrcCshtddtddgdddœƒ}|jdd    d
d |d }td ggtdgddtdgd    ddd}t ||¡dS)NrYrZrÝrÿr r”)r\r]rr\r]rrD)r8r9r7rPrr–rwZFloat64r)rr rr
r;r<rŽrrrÚtest_pivot_ea_dtype_dropnaÙsÿ  üz)TestPivotTable.test_pivot_ea_dtype_dropnac
CsÂtdddgt d¡ddgdœƒ}t d¡|jdd    gd
d d d }W5QRXtddgddgddggt tdddgddtt d¡t d¡dgt    d    dg¡tj
ddgdd
gdd}t  ||¡dS)Nr,rrJz
2019-12-31g$@r+)rYrZrr rZrrYTrTr-r~g5@r˜rwr)r¦r rrjr{) rrrÈr;rñrr rr
rrkr<rÂrrrÚ!test_pivot_table_datetime_warningès>üÿ ÿýþÿ
ÿôz0TestPivotTable.test_pivot_table_datetime_warningcCsBtdddddddddg    dddddddddg    dddddddddg    dddd    d    d
d d d g    dd
d d d d dddg    dddddddddg    dddddddddg    dddddddddg    dœƒ}t|dddgdgtjd}tddgddgddgtjdggtddgddtjddddgddgdgddgdd}|r2|d d¡|d<t     
||¡dS)Nr%r&r'r(r?r@rrJrrrKrxryrzrt)r,r-r.r/r0)Zcol5)Zcol6rx©ryZsevenr/r,r-r rÑr‰rÚr‚rr†rwrjrTr§) rrr2rTrŒr
r rrUr;r<)r5r”rVrWrHrrrÚ)test_pivot_table_with_mixed_nested_tuples    s‚÷ ÷ ÷ ÷Úÿ4ÿÿýz8TestPivotTable.test_pivot_table_with_mixed_nested_tuples)arærçrèrÚfixturer6rIrXrdrnrsr‚rrr’rœržr¢r£r°r½Z parametrizer»rÌrÐr×ràrçrûrr
r r2rpr r
rrr!r¾r%r'r+r/r7rDr rkrBrQrRrVrXrarfrxrzr|rrƒrˆr‹r•r˜r¥r©r~r°r±r³r·rÀrÁrÃrÈrÍrÔrÖrÙrÛrTrÕrÜZslowròrúrûrþrrr
rrrrrr!rrrrr$)s>
0 %    #
  ýþ
*    
 
 
;7
- 
 
üþ      
 
üþ     !ÿ &
ù
üþú÷ùùþ
#
3    
%GY
 
#, >úþ
 
#
    4
 r$c@sdeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dS)Ú    TestPivotcCsÔddddddgddddddgddddddgd    œ}t|ƒ}|jd
d d d    }tdddd œdddd œdœƒ}d\|j_|j_t ||¡|jjd
ks’t‚|jjd ks¢t‚|jd
d d}|jjd
ksÀt‚|jjdksÐt‚dS)Nr,r-r.ÚOneÚTwor†r‡rˆrµr8r9r7ru©r$r%r{©Nr9)    rrßr8rAr9r;r<r@r>)r5r6rØrwrHrrrÚ
test_pivotO    s$ý
 
þÿ zTestPivot.test_pivotc    Cs\tdddddgdddddgdddddgd    œƒ}tjtd
d |jd d ddW5QRXdS)Nr&r%r'r(r†r‡rˆr‰rÞzduplicate entriesrrYrZr[rµ)rrrrŠrß)r5r6rrrÚtest_pivot_duplicatesl    s   ýÿzTestPivot.test_pivot_duplicatescCs@tdddgd}|jdddd}tggd}tj||dddS)    NrYrZr[r|rµr{Fr()rrßr;r<rÂrrrÚtest_pivot_emptyw    s zTestPivot.test_pivot_emptycCsDtddgd}|jdddd}t|ƒt |jtdd    gdd
¡dS) N)r,r\ÚA1)r-r^ZB2rÔrrrJrµr,r-rw)rrßÚreprr;rlr9r
)r5rVrWrrrÚtest_pivot_integer_bug}    sz TestPivot.test_pivot_integer_bugcCsddddddgddddddgddddddgd    œ}t|ƒ d
¡}|jd d d }tddddœddddœdœƒ}d\|j_|j_t ||¡|jd d}tj    ddgdd gd|_d
|j_tj||dd|jjd
ksÒt
‚|jj dksât
‚|j  d¡|_|jd d d }d |j_t ||¡dS)Nr,r-r.r$r%r†r‡rˆrµr8r9r7©r9r7rur&r{r|)r7r$)r7r%rjFr(r'r) rrrßr8rAr9r;r<r rkr@r>r¬)r5r6rØrWrHrrrÚtest_pivot_index_none„    s4ý
 
þÿ  ÿzTestPivot.test_pivot_index_nonec Cstddddddgddddddgddddddgddddddgddddddgdœƒ}d    d
g}d g}|j||d }tt d ddd gdtjdtjgddddgtjdtjdgg¡tjddgd    d
gdtjddgdd gdd }t ||¡|d    d
gksðt    ‚|d gksþt    ‚dS)NrrJrrrKrxr)Úlev1Úlev2Úlev3Úlev4r7r0r1r2r{r†r‡r…rˆrÚr‰r)rrrJrJ)rrJrrJrj)r3r3r7r7)
rrßr2rprŒr rr;r<r@)r5rVr8r9rWrHrrrÚ0test_pivot_index_list_values_none_immutable_args¨    s>ûÿ    
 
üÿÿþô z:TestPivot.test_pivot_index_list_values_none_immutable_argsc    Cs6tdgddœƒ}tjtdd| ¡W5QRXdS)NrrSz(missing 1 required keyword-only argumentrr)r5rVrrrÚtest_pivot_columns_not_givenΠ   sz&TestPivot.test_pivot_columns_not_givencCs¨tdgdddœƒ}|jdd}tdgddœƒ}t ||¡|jddd}td    ditdgdd
d }t ||¡|jddd d }tdditdgdd
d }t ||¡dS)NrrJr©NrZr[r|))rZr©r[rrZrTr7rwrrr[©r9r8r7)rrßr;r<r
rÂrrrÚtest_pivot_columns_is_noneÔ    s   z$TestPivot.test_pivot_columns_is_nonecCs„tdgdddœƒ}|jddd}tddidgd}ddg|j_t ||¡|jddd    d
}tddgtdgdd d }t ||¡dS) NrrJrr6rZrT)r[rJrrr[r8rwr{)rrßr9r>r;r<r
rÂrrrÚtest_pivot_index_is_noneã    s  z"TestPivot.test_pivot_index_is_nonecCsˆtdgdddœƒ}|jdddd}tdtdgddtdgddd    }t ||¡|jddd
}tdd gtdgddd    }t ||¡dS) NrrJrr6rZr[r8rwr{r.r)rrßr
r;r<rÂrrrÚtest_pivot_values_is_noneð    s ÿ z#TestPivot.test_pivot_values_is_nonecCs>tdgdddœƒ}|jdd}|jddd    d
t ||¡dS) NrYrr)r'r(ÚthreeT)Údeepr'r(r<rµ)rrMrßr;r<)r5rVrHrrrÚ"test_pivot_not_changing_index_nameþ    s z,TestPivot.test_pivot_not_changing_index_nameN)rærçrèr(r)r*r-r/r4r5r9r:r;r>rrrrr#N    s $& r#)%rrrÚ    itertoolsrÚnumpyr2rZ pandas.errorsrZpandasrrrr    r
r r r rZpandas._testingZ_testingr;Zpandas.api.typesrrZpandas.core.reshaperrîZpandas.core.reshape.pivotrr"rr~r#r$r#rrrrÚ<module>sD  (
 
.
7