gL iunzddlmZmZmZddlmZddlZddlZddlZddl m Z ddl m Z ddl Zddl mZmZmZmZmZmZmZmZddlmZddlmZddlmZdd lm Z ejBd d g d Z"ejBdgdzdgdzfe#de#ddfg dZ$GddZ%GddZ&y))datedatetime timedelta)productN)using_string_dtype)PerformanceWarning) Categorical DataFrameGrouperIndex MultiIndexSeriesconcat date_range)CategoricalDtype)reshape pivot_tableTF)paramsc|jSN)param)requests e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/reshape/test_pivot.pydropnar!s ==ct|j\}}ttjj |||Sr)rr pd IntervalIndex from_arrays)rclosedleftrights rinterval_valuesr'&s/--KD% r''33D%H IIrc eZdZejdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZej(j+ddddgfdgdfdgdfgdZdZdZdZej(j+dddgdZej(j+dddgdZej(j+dddgdZd Zej(j+dddgd!Zd"Zej(j+d#d$d%ge jBd$d%ge"d$d%ge#d$d%ggej(j+dddgd&Z$ej(j+d#d'd$ge jBd'd$ge"d'd$ge#d'd$ggej(j+dddgd(Z%d)Z&ej(jOd*+ej(j+dddgd,Z(ej(j+dddgd-Z)d.d/gd0gd1fd2Z*d3Z+d4Z,ej(j+d5d.d6gd7gd8ge#gd9d.:fd.d/gd;gd<gd=ge-j\gd>d.d/g?fgd@Z/dAZ0dBZ1ej(j+dCgdDdEZ2dFZ3dGZ4dHZ5dIZ6dJZ7dKZ8dLZ9dMZ:dNZ;ej(j+dOdPdQdRdSdTdUggdVZdYZ?dZZ@d[ZAd\ZBd]ZCd^ZDd_ZEd`ZFdaZGdbZHdcZIddZJdeZKdfZLdgZMej(j+dhd;e jfd6e jfdie jfd;d6ge je jgfd;dige je jgfdid6ge je jgfgdjZQej(jdkZSdlZTdmZUej(j+dnddgdoZVdpZWdqZXdrZYdsZZdtZ[duZ\ej(j+dvddgdwZ]dxZ^dyZ_dzZ`yS){TestPivotTablec :tgdgdgdtjjdj dtjjdj dtjjdj ddS)N foor,r,r,barr-r-r-r,r,r, oner/r/twor/r/r/r0r0r0r/) dullr1shinyr1r1r2r2r1r2r2r2 )ABCDEF)r nprandom default_rngstandard_normal)selfs rdatazTestPivotTable.data-s}   YY**1-==bAYY**1-==bAYY**1-==bAU+ - - rchddg}d}t|d|||}|jd|||}tj||t|d||t|dkDr$|jj t |k(s J|jj|dk(sJt|dkDr|jj |k(s J|jj|dk(sJ|j||gzdjd j}tj||y) Nr5r6r7r8)valuesindexcolumnsobserved)rBrCrErrmean) rtmassert_frame_equallenrCnamestuplenamerDgroupbyaggunstack)r?rEr@rCrDtabletable2expecteds rtest_pivot_tablezTestPivotTable.test_pivot_table^s(c  E7X !!eWx"  eV, DEHE u:>;;$$e 4 44;;##uQx/ // w>ST" "..z:#++22:>''..,''..,    fh/rcNtgdgdgdd}|jdd}|jddj}tj|||jdd d i}|jdd d ij}tj||y) Nabcxyzrr3r)rowscolsrBrqr])rDr^rCr^rBrF)r rTrGrH)r?rcrsxps rtest_pivot_table_nocolsz&TestPivotTable.test_pivot_table_nocolss $o S ^^FE^ : ^^&%^ 8 : : b"% ^^FXv4F^ G ^^&8V2D^ E G G b"%rc jtddddddddddd d d d dd dddddddddd}|jddddgd}|jdddgdd}tjgdddg}t j |j |t j |j|y)Ni`iiPi0u)rrr3rr5r6r7i[i]i\i^rhrirjdii i@B)amountcustomermonthrquantityr|r{rzrF)r) )r5rh)r5ri)r5rj)r5rx)r6rh)r6ri)r6rj)r6rx)r7rh)r7ri)r7rj)r7rxrJ)r rr from_tuplesrGassert_index_equalrDrC)r?rcpv_colpv_indms rtest_pivot_table_dropnaz&TestPivotTable.test_pivot_table_dropnas #5UC #<#6fE"sss; 'Fw7K    *i!8   Y/    " " y) " fnna0 fllA.rcxtgdgdd}tgdgdd}t||gdd}d }tjt| 5t |d d d gd}dddt j||gd d g}td gdi|}tj|y#1swYLxYw)Nrhrhriri)rhrirnT categoriesordered)rjrxrjrx)rjrxrmrr3rr)r5r6rB1The default value of observed=False is deprecatedmatchrBr5r6)rBrCrr})?@@@rC) r r rGassert_produces_warning FutureWarningrr r#rH)r?cat1cat2rcmsgrd exp_indexrRs rtest_pivot_table_categoricalz+TestPivotTable.test_pivot_table_categoricals _d  _d T E FA  ' ' S A U HS#JtTF U**D$<SzJ h(<=YO fh/  U Us B00B9c<gd}tgdgdtdd}|djt|d|d<d }t j t | 5|jd dd | }dddtgdd}|jt|d}tgdd }tgdgdgdg||}|s*|jt|jd}t j|y#1swYxYw)Nrhrirjrx) rhrhrhriririrjrjrj) rr3rrr3rrr3r r5r6r7r5Frrrr6r7)rCrDrBrrgrLro)r@)rr@)r@ @rCrDrDfloat) r rangerbrrGrrrrreindexr rH) r?rrrcrrdexpected_columnsexpected_indexrRs r$test_pivot_table_dropna_categoricalsz3TestPivotTable.test_pivot_table_dropna_categoricalss) B01X  S'..!1*e!LM3A  ' ' S A W^^#s3v^VF W!/<+22 Z 7  4 o ? $  '' J0G'HOOPWXH fh/! W Ws DDc tttjddddgddgdgdd}d}t j t |5|jd d | }ddd|r d d g}ddg}ngd}gd}td |ittj|ddg|d }t j|y#1swYexYw)NlowhighTr)rrrrrr5r6rrr5r6rCrBrrrrrrrr)rrrr) r r r;nanrGrrrr from_codesrH)r?rrcrrdrBcodesrRs r%test_pivot_with_non_observable_dropnaz4TestPivotTable.test_pivot_with_non_observable_dropnas  VVUFE6: %v  /    B  ' ' S A J^^#c&^IF J 3ZFFE%FE &M&&ufov   fh/' J Js CCc ttgdgddtdd}d}tjt |5|j d d | }dddtd gd ittjgd gddd }|s|d jt|d <tj|y#1swYsxYw)N)r%rrrr)rrr%TrrXrrrr5r6rr)rrr3rr) r r rrGrrrr rrbrrH)r?rrcrrdrRs r/test_pivot_with_non_observable_dropna_multi_catz>TestPivotTable.test_pivot_with_non_observable_dropna_multi_cats  :6  1X    B  ' ' S A J^^#c&^IF J / "&&*A4  $SM007HSM fh/ J Js C  CcVt|dd}d}tjt|5|j dd|}dddtddit |j d  }|s|jt}tj|y#1swY_xYw) Nrrrrr5r6rrrr) r rGrrrr uniquerbrrH)r?r'rrcrrdrRs rtest_pivot_with_interval_indexz-TestPivotTable.test_pivot_with_interval_index7s _15 6A  ' ' S A J^^#c&^IF J #JeO$:$:$<3G u-H fh/ J Js BB(c Ttjjgdgd}tt j dddtj gdt|d jd d }d }tjt|5t|ddddd}dddd}tgdttjddtjdddgddtj }tj ||y#1swYzxYw)Nrrrrrrr3r3rrrdtyperhrirhriTrF) ascendingrrrr7r6r5r]rCrDrBr^marginsAll)r rr3r)rCrLr)r!r"r#r r;arangeintpr sort_valuesrGrrrrr Intervalassert_series_equal)r? ordered_catrcr pivot_tabrdrRs r&test_pivot_with_interval_index_marginsz5TestPivotTable.test_pivot_with_interval_index_marginsEs&&22<N YYq!Rrww7) d;GG#H  B  ' ' S A ##s3tI  5! Q*BKK1,=uECP''   vx0  s DD'c|jd|j|j}|jddd}tj||y)Nr8rr5r7)rr5r7rGrHr?r@rdrRs rtest_pass_arrayzTestPivotTable.test_pass_arrayasH!!#TVVTVV!D##CsC#@ fh/rc|jdd|j}|jd|jdzd}tj||y)Nr8c |dzS)NrXrls rz3TestPivotTable.test_pass_function..gs qAvrrrXr7)rr7rCrGrHrs rtest_pass_functionz!TestPivotTable.test_pass_functionfsM!!#-=tvv!N##CtzzQ#L fh/rcddg}d}t|||}|j||gzjdj}t j ||y)Nr5r6r7rrF)rrMrNrOrGrH)r?r@rCrDrPrRs rtest_pivot_table_multiplez(TestPivotTable.test_pivot_table_multipleksWc Dw?<< 1266v>FFH eX.rc\tgdgdgdd}|jddk(sJt|ddgdgd d }|j}tt j dgd zt td d}tj||tgdgdgdd}|jddk(sJt|ddgdgd d }|j}tt j dgd zt td d}tj||y)N)catbatrrrr)rhvirint64rhrrr])rBrCrDr_r^r3abrr)?@ @@float64rF) r dtypesrrr;rr rarGr)r?frnrdrRs rtest_pivot_dtypesz TestPivotTable.test_pivot_dtypesrs" 1!)  xx}'''  c#!U 288G,-1tDzPS9TU vx0 1))  xx} )))  c#!V 288I./!35dRU;VW vx0rzcolumns,valuesbool1float1float2)rrrbool2cLtjdtj}t||dz|dk|dkd}|j j d||}t |j}|Dcic]}|tjd }}||k(sJycc}w) NrXrrr3r)rrrrrCrCrDrBr) r;rrr reset_indexrdictrr) r?rDrBrrcdf_resrdcolrRs rtest_pivot_preserve_dtypesz)TestPivotTable.test_pivot_preserve_dtypess IIarzz * AGa1fqAv N !--76. fmm$8>?C),,??!!!@s:B!cdtjgd}tdgdi|}|j|jj |jj }tjddg}|j|jdjtjd }td d gd tjggtdd gtj|}t!j"||tgdt%dddd|}|j|jj t'dd}tj(dgtjdgdgddg}tdd gtdd gtj|}t!j"|||jt'dt'dd}tdgtjdgd|}t!j"||y)N) 2011-01-01z 2011-02-01 2011-01-02rrr5rWrr)r5r)r5r3r)levelrrrr3rrr8rX)freqperiods)r5dtrME)keyrz 2011-01-31zM8[ns]r} @YErrz 2011-12-31)r! DatetimeIndexr rrCr{dayr r~ set_levelslevelsrbr;int32rr rGrHrr r#)r?idxrcres exp_columnsexps rtest_pivot_no_valuesz#TestPivotTable.test_pivot_no_valuess R _-S 9nn288>>288<>7tRV;WnX ,,UB$$l^8D E,  3KuaV288=  c3'rct|ddgdddgd}t|jdgd dddgd }tj||y) Nr8r9r5r6r7r)rBrCrDr_r:raxis)rCrDr_)rdroprGrHrs rtest_pivot_multi_valuesz&TestPivotTable.test_pivot_multi_valuessZ #s3c q  IIse!I $C#sPQ  fh/rc"fd}|ddg}|d}|d}t||gddgd}tj||fd}|ddg}|d}|d}t||gddgd}tj||y)Nc,tddgddgd|S)Nr8r9r5r6r7rBrCrDr^rfuncr@s rrz;TestPivotTable.test_pivot_multi_functions..s #sC:sD rrFstdr)keysr c.tddgddgd|dS)Nr8r9r5r6r7T)rBrCrDr^rrrs rrz;TestPivotTable.test_pivot_multi_functions..s& :*  r)rrGrH)r?r@rrdmeansstdsrRs ` rtest_pivot_multi_functionsz)TestPivotTable.test_pivot_multi_functionss FE?#& x5$-vuoAF fh/ FE?#& x5$-vuoAF fh/rmethodTFc tj}tdd|dggdgdd}|r|jddd }nt j|ddd }t||d |gd |||g|d ||g|||dggt |dddgdt gdd}t j||t j|jddd |jy)NR1R2R4)C1C2C3C4)rrgrhrirjrr%rr$r&rr) r;rr pivotr!r rGrHrs)r?rrrcrdrRs rtest_pivot_index_with_nanz(TestPivotTable.test_pivot_index_with_nansff D#t,-%   XXCSXAFXXbSEFc2s#S#s#b#s#c3#   dD$/c:2=   fh/ bhhS#chJHJJWrc*ttddddtjdzd}|dt j dz |d <tj x|jd <|jd <tj x|jd <|jd <|r|jdd d}nt j|dd d}|jjjt|k(sJ|jD]$\}}|j|d|d f|dk(r$J|r|jd dd}nt j|d dd}tj||j y)Nz 2014-02-01r8)rrd)rhrjrhz 2014-02-02ri)rrh)rrhrri)rrirjr)r rr;rr! Timestamprlocr'notnarBr]rIiterrowsrGrHrs)r?rrcpv_rowrds rtest_pivot_index_with_nan_datesz.TestPivotTable.test_pivot_index_with_nan_datess\ acB299Q<'   S'BLL663*,&&0v*,&&0v S=B"CSABxxz  $$&#b'111kkm :FAs66#c(CH,-S9 99 : XXCSXAFXXbSEF fbdd+rcttjtdddddtdddddtdddddtdddddgd|dtjtd ddddtd ddddtd ddddtd ddddgd|d t j d d t j d d d }t gd}tjddgdzdd|d }tj||g}tjddgdd|d}tgdgdg||}|r|jdd} ntj|dd} tj| |tddgddgg||dd}|r|jddd} ntj|ddd} tj| |y)Nrrrr3zM8[z , US/Pacific]rz , Asia/Tokyo]rr)dt1dt2data1data2r:r:r;r;z2014/01/01 09:00z2014/01/02 09:00r9rLrz2013/01/01 09:00z2013/01/02 09:00r8rr3rr3rrrrrrr:r) r r!rrr;rr r r#r'rGrH) r?runitrcexp_col1exp_col2exp_colexp_idxrRr1s rtest_pivot_with_tzz!TestPivotTable.test_pivot_with_tz4s$'' q!Q2 q!Q2 q!Q2 q!Q2   v]3'' q!Q2 q!Q2 q!Q2 q!Q2   v]31G41G4)  2=>## !3 4q 8v]+  (((H)=>"" !3 4v]+   < (  u5B"E59B b(+VaV RaL  uWEB"E5IB b(+rc $tdtjddddtjddddtjddddtjddddtjd ddg}|jd j }|j j d }t|jd j d d g|gd }ttjddtjddggtdgd tjtjddtjddgd }tj||y)Naaz2016-08-12 13:00:00-0700z US/Pacific)tz)uidtsz2016-08-12 08:00:00-0700z2016-08-12 14:00:00-0700z2016-08-25 11:00:00-0700z2016-08-25 13:00:00-0700rJc,|jddddS)Nr)hourminutesecond microsecond)replacers rrz8TestPivotTable.test_pivot_tz_in_values..s199!AaUV9#WrrIminrrz2016-08-12 00:00:00z2016-08-25 00:00:00r) r r!r- set_indexrrJmaprr rrGrH)r?rcminsrdrRs rtest_pivot_tz_in_valuesz&TestPivotTable.test_pivot_tz_in_valuestsu  ,,'AlS  ,,'AlS  ,,'AlS  ,,'AlS  ,,'AlS#  2\\$  + + -uuyyWX LL  * * ,'F  LL!; MLL!; M  U+$$LL!6<HLL!6<H   fh/rc >ttjddtjddtjddtjddgtjddtjddtjddtjddgtjdd tjdd d }t gd }tj ddgd zd d}tj||g}tgdgdgtj ddgdd|}|r|jdd }ntj|dd }tj||tdd gddggtj ddgddtj ddgd d}|r|jdd d}ntj|dd d}tj||y)Nz 2013-01-01r8z 2013-01-02z2013-01Mz2013-02rrr)p1p2r:r;r<r3rY)rLrr>r?rXrrrrr:r) r r!Periodr;rr PeriodIndexr r#r'rGrH)r?rrcrArBrCrRr1s rtest_pivot_periodsz!TestPivotTable.test_pivot_periodss IIlC0IIlC0IIlC0IIlC0 IIi-IIi-IIi-IIi-  1G41G4  &=>>>9i"81"<4cR(((H)=> < (.., !=DsS  d3B"D$7B b(+VaV .., !=DsSNNIy#93O  d7CB"D$wGB b(+rc tgdtjdtjdtjdtjdgdd}tdtgddttjdtjdd gd  }|j dd d d }t j ||y)Nr2019Q12019Q2r)rhrirlrr3rrhrrrir@rCrDrlT)rCrDrBr)r r!rZr rrGrH)r?rcrRrds rtest_pivot_periods_with_marginsz.TestPivotTable.test_pivot_periods_with_marginss !IIh'IIh'IIh'IIh'      C0299X. (0CUKRUV  c3sDQ h/rrBbazzoocxtgdgdgdgdd}|r|jdd|}ntj|dd|}gd gd g}td d gd }t ddggdggdgdgddg}t|||}|dj t |d<tj||y)Nr/r/r/r0r0r0r5r6r7r5r6r7rr3rrrXr*rlrmrnqwtr,r-rcrdr,r-r)rr3rrlrmrn)rrXr*rjrkrlr/r0r@rLrcrdr)rrrrrr)rrr3rrr3rrrJra) r r'r!r r rbobjectrGrH r?rBrrcrdr@rCrDrRs r test_pivot_with_list_like_valuesz/TestPivotTable.test_pivot_with_list_like_valuessA5)5    XXE5XHFXXbuVLF(*BCE5>6ENO4%'9:-  $eWE"5/008 fh/rr-c tgdgdgdgdd}|r|jdd|}ntj|dd|}tjd tjd gtjd tjd gtjd tjdgd tjdtjgd tjdtjgd tjdtjgg}t gdd}t ddgddgggdgdgddg}t|||}|djt|d<tj||y)Nrfrgrhrirmrdr,rr5rr7r*r6rXrr3r)rjrlrkrlrmrnrnr-rcr/r0rrrrrrora) r r'r!r;rr r rbrprGrHrqs r%test_pivot_with_list_like_values_nansz4TestPivotTable.test_pivot_with_list_like_values_nanss=A5)5    XXE5XHFXXbuVLFVVS"&&! $ VVS"&&! $ VVS"&&! $ "&&!RVV $ "&&!RVV $ "&&!RVV $  9FENUEN3.-  $eWE"5/008 fh/rctgdgdgdd}d}tjt|5|j dddddy#1swYyxYw) NrgrorYz=pivot\(\) missing 1 required keyword-only argument: 'columns'rrZr\)rCrBr pytestraises TypeErrorr')r?rcrs r#test_pivot_columns_none_raise_errorz2TestPivotTable.test_pivot_columns_none_raise_errorBsK IV WN ]]9C 0 2 HH6&H 1 2 2 2s AAzBMultiIndexed unstack with tuple names fails with KeyError GH#19966reasonctgd}gdgdgdgdgdgdg}td d gd d gggd gdg}t|||d}|r|jddd}nt j|ddd}t ddgddgt ddgddgt ddgddgd}t|}t j||y) Nrrr3rrrX)r@)r/r5rrl)r/r6r3rm)r/r7rrn)r0r5rrj)r0r6rXrk)r0r7r*rlr-rcfirstrNrrt)rrrp)r@rCrDr)r-r)r-rN)rcrrrrr/r0rr3rXrr*r)r r r r'r!rrGrH)r?rrCr@rDrcrdrRs rtest_pivot_with_multiindexz)TestPivotTable.test_pivot_with_multiindexIs -.  ENWh$78. Dwh O XX&)'F XX&)' FAuen5Auen5Auen5  T? fh/rctgdgdgdgdd}tjtd5|r|j dd d nt j|dd d dddy#1swYyxYw) Nrfrgrhrirmz^\('bar', 'baz'\)$rrdr,)r-rcr)r rxryKeyErrorr'r!)r?rrcs rtest_pivot_with_tuple_of_valuesz.TestPivotTable.test_pivot_with_tuple_of_valuessspA5)5   ]]8+@ A PueNK5%O  P P Ps 1A..A7r5r6r7rc&|j|jdd|f}|j||j}t j ||d|j |k(sJ|j}|j|dfjdd} |j||j} t j | | d| j |dfk(sJ|j|df|f} ||j} | | k(sJy)NrF check_names) r.rCrMrFrGrrL sort_indexiloc) r?rd values_colr@rCrD margins_col col_marginsexpected_col_margins index_marginsexpected_ix_marginsgrand_total_marginsexpected_total_marginss r _check_outputzTestPivotTable._check_outputsjjcr!2K!?@ #||E2:>CCE {,@eT;...""$ K#45::3B? "ll73J?DDF }.AuU!!k2%6666$jj+r):K)GH!%j!1!6!6!8"&<<<mean,dtype->-dtype 'str' does not support operation 'mean'rAABBTrF)rCrr^CCrrr)DDEEFF) rDreescaperxryrzrrr.rF) r?r@using_infer_stringkrrPrtotalsitems r test_no_colzTestPivotTable.test_no_cols(,||4!A4 ii@A AC ]]9C 0 O   D$<v  N O $ '33,f4  4IYY{I56FT)_1133 33 4]]9C 0 O   D$<v  N O $ '33,f4 ' /DYY{D01FT$Z__.. .. /%5 O O O Os E'E,1E8,E58Fz*columns, aggfunc, values, expected_columnsrF)@r皙@r)rr皙@r)r-rr,rrr])r rXr*r4) r4r4r))r-r/)r-r0)r-r)r,r/)r,r0)r,rr}ctgdgdgdgdgdd}|dk7rQtjd}|rd }tjt | 5|j |d | dddd |vr|jd }|jdj |d | }t|tddg|} tj|| y#1swYsxYw)N r,r,r,r,r,r-r-r-r- r/r/r/r0r0r/r/r0r0 smalllargerrrrrrr rr3r3rrrrXr*r r3rrXrXr*r*rrr5r6r7r8r9r]rrrT)rDrr^r6rr7r8r9r) r rrrxryrzrrr rGrH) r?rDr^rBrrrcrrdrRs r%test_margin_with_only_columns_definedz4TestPivotTable.test_margin_with_only_columns_definedsDTT 10  & e ))DEC!Ey4 OwgN O g %B%11T72 V5#s++N  # #F* ='2F Gr +c+ " #6*Xg->>*    h/rc8ttddgddgdgz}tj|d}t gdgd d | j d d }|d|dz|d<|j dddgd dtd}tj||y)Nr-r,r/r0rrr})rrr3rrX)r3rr3r3r*rrr7rr r1r2rr8r5r6Trr) rarr r~r rrrIrGrH)r?r@rrrRrds rtest_margins_dtype_lenz%TestPivotTable.test_margins_dtype_len-sguenuen=>+N  # #F* =$ ?r +c+ " #6*Xg->>!!* "  h/rrq))rr3rhrir,)rhrc t|dgd|dgddgdi}|jd|}tgdgtjgd| t dg|d k(rd nd }t j ||y)Nrrorr)rrXr*)rBrD)rrr))rr)r3r3)rrr}rstrrprrDrC)r rr r~r rGrH)r?rqdf2rdrRs r test_pivot_table_multiindex_onlyz/TestPivotTable.test_pivot_table_multiindex_only@s}a)T!WiiPQT:  **+C4Pdj.@UhO  fh/rcltddd}ttjj dj dtjj dj d|d}|j ddgd }|jjd j|sJy) Nz 2016-01-01rzEurope/Amsterdam)rrHr3rr6r7F)rCrr) rr r;r<r=r>rrCrequals)r?dtircrds rtest_pivot_table_retains_tzz*TestPivotTable.test_pivot_table_retains_tzNsq5GH YY**1-==a@YY**1-==a@  sCj?||""1%,,S111rctj}ttddggdddgt dDcgc]}|t |zc}dg}t |}|jdgd d g }|jt }|jd gddg }tj||dycc}w)Nr,r-rx1x2r&rr)rrrr3)rBrCrDr4)0132Fr) rrQrarrrr rrenamerrGrH)r?rxrr@rcrPrrQs rtest_pivot_integer_columnsz)TestPivotTable.test_pivot_integer_columns\s HH t +095aYq\!5   t_ay1#Fiii$?SER eV?6sB;ctgddzgddzdgdzdgdzzdztjjdj dd}|j d d d d g }|j gdd j}|jd jd jdd}tj||y)N)rhrhrhrhririririr3)rrrrrrrrr,rr-)rhrirjvaluerrhrirjrrgrall)r how) r r;r<r=r>rrMrFrOrrGrH)r?r@rPgroupedrRs rtest_pivot_no_level_overlapz*TestPivotTable.test_pivot_no_level_overlapqs=A-1gkUGaK/14..q1AA"E     c3Z H,,/8==???3'//4;;;N eX.rc d}tjdtfdtfdtfdtfdtfdtfdtfg}tj gd dtfdtfg }tj || }tjjd jd t||}|d||d<|d||d<ttd ddtddd}|tjjd jd t||}|j|d<|j|d<|j|d<tjjd j!dd||d<t#|}|j%dddggdd} | j&j(sJy)Ni'r SymbolYearMonthDayQuantityPrice) )SP500ADBE)rNVDA)rORCL)NDQ100AAPL)rMSFT)rGOOG)FTSEzDGE.L)rzTSCO.L)rzGSK.Lrr3ririrrr)r rrrFrCrDr^)r;rrpintrarrayemptyr<r=integersrIrryearr{r lognormalr rrDis_monotonic_increasing) r?nrproductsitemsiproductdrdatesrcpivoteds rtest_pivot_columns_lexsortedz+TestPivotTable.test_pivot_columns_lexsorteds &!6" # S!%    88 V$x&89  %(99((+44QH qI!'*84g"8,X6h T1a($tR*< =299((+44QBCD f gyye ..q1;;CaHg u .. E"/ ! 6666rcdgdgd}|jddgj|jd}|jdd|}t j ||y)Nrr]r8r9r5r6r)rMrNrOrrGrH)r?r@rrRrds rtest_pivot_complex_aggfuncz)TestPivotTable.test_pivot_complex_aggfuncs_' (<<c +//2::3?!!S!!D fh/rc|ddgjddgtd}|j}t|dd|dk(sJy)Nr5r6T)rCr^rr)rrItolistr])r?r@rd result_lists rtest_margins_no_values_no_colsz-TestPivotTable.test_margins_no_values_no_colssVsCj!--*c4. mmo ;s#$ B777rc|gdjddgdtd}|jjgdk(sJy)Nrr5r6r7TrCrDr^rrrrr&@rrIrrr?r@rds rtest_margins_no_values_two_rowsz.TestPivotTable.test_margins_no_values_two_rowssIo&22*c33 zz  "&@@@@rc|ddgjddtd}|jjgdk(sJy)Nr5r6Tr)rrrrrs r&test_margins_no_values_one_row_one_colz5TestPivotTable.test_margins_no_values_one_row_one_colsIsCj!--sC. zz  "&6666rcgd|d<|gdjddgddgtd}|jjgd k(sJy) N) rhrirjrxerghrjrr8r5r6r7r8r5r6r7Trrrrs r'test_margins_no_values_two_row_two_colsz6TestPivotTable.test_margins_no_values_two_row_two_colssXLS *+77*sCj#t8 zz  "&@@@@r margin_namer,r/iNrhric d|d}tjt|5t|dddgdgd| dddtjt|5t|ddgddgd| dddtjt|5t|ddgdgd| dddy#1swYyxYw#1swYMxYw#1swYyxYw) NzConflicting name "z3" in margins|margins_name argument must be a stringrr8r5r6r7T)rBrCrDrr)rxry ValueErrorr)r?r#r@rs r-test_pivot_table_with_margins_set_margin_namez""HT2r$:#;$G#))+  % ' t$   fh/ &   fhjj1 HHaAr2662 3 ; ;Aq A""$1%xa';<5$))+  % ' '/66w?HV  u%   fh/ '   fhjj1^^  u&1   fh/ F3   fhjj13 ]]83 /  5e4!   ]]83 /  U6!   \\& ! uF3   fh/ f5   fhjj1* ]]:S 1  56!   ]]:S 1  U%8!    ]    <    s0R;SSS!;SSS!S*c tdjdjgdtdddddtdd ddd tdd dd dtdd d d dtdddd dtdd d d dtdd d ddtddd ddgtdd dddtdd ddd tdd d d dtddd d dtdd dd dtdd d d dtdddddtddd ddgd}t|t ddt dddd}tt j t jdt jt jdt jdd t jd t jt jt jt jdt jgjddtjtdd dtdd dtdddtdddgdtjtdd dtdd dtdddtdddgd }d|j_ d|j_ tj||t|t ddt dddd}tj||j tdd dtdd dftdd dtdd dftdd dtdddftdd dtdddftdddtdd dftdddtdddfg}t#j$|ddg!}tt j dt jdt jdt jd t jd t jt jdg jdd |d"d#g }d$|j_ t|t ddt ddgd$gdd}tj||t|d$gt ddt ddgdd}tj||j y)%Nr(r)r*r6r4rrrrrXrr&r3rrrr$r)r+r,rr-PayDayrr-r1r7rr]r.rr*rrrr}r5r6r+)r r2rrr r;rrrr!rrCrLrDrGrHrsr r~)r?rcrdrRtuplesrs rtest_pivot_timegrouper_doublez,TestPivotTable.test_pivot_timegrouper_doubles +113?EEG4T2q"a0T1aQ/T2q"a0T2q"a0T2q"a0T2q"a0T2q"a0T2q"a0 T2q!Q/T2r2q1T1aQ/T2q"a0T2q"a0T1aQ/T2r2q1T2r2q1   8 t084   HHFFFFFFFFFFFFFFFFFFFF! &gam""T1b)T2r*T2r*T2r*  $$T1b)T2r*T2r*T2r*  =' P% ( fh/ t262   fhjj1dAr "HT2r$: ; dB #XdAr%: ; dB #XdB%; < dB #XdB%; < dB #XdB%; < dB #XdB%; <  $$VFH3EF HHBFFArvvq"&&!RVVQPQR gam#J  !) &17(3STJ   fh/ *$F3W$H5UV   fhjj1rc tjgddd}tjgdd}tgd||tjd d d d gd zd}|dd }t ddg}t ddgd}t j||g}tddgddgddgg||}t|dgdgdg} tj| |t gd}t gdd z}tjddgd zdd!} t j||| g}ttjgd"gd#gd$gd ||dd } ttjgd%gd&gd'g||d d} t| | gd (}t|dgd!gdd)gd*d+g,} tj| |y)-N2011-07-19 07:00:002011-07-19 08:00:002011-07-19 09:00:00r<r=r>zM8[ns, US/Pacific]r8rrL2013-01-01 15:00:00rArA2013-02-01 15:00:00rBrBzM8[ns, Asia/Tokyo]rrhrhrhriririr*rrr3rlabelr8r9value1value2rFrhrirErrrrrrrrr)r]r]r]r]rFrFrFrF)rFrFrGrGrArBrr9)rrrr3)rrr3r)r3rXrr3)rrrr)rrrr)rrrrr rGr]rFr.) r!rr r;rr r r#rrGrHrr) r?dates1dates2rcrDrArBrCrRrdexp_col3 expected1 expected2s rtest_pivot_datetime_tzz%TestPivotTable.test_pivot_datetime_tzs !! '  !! '  7))AW5a&1*   !*(H-.#s'2(((H)=>3Z#sc3Z 0 Rw 8*U fh/UVAAEF## "$9 :Q >&  (((Hh)GH HH !   BQK " HH((( ABK  9i0q9 'Gh'FO   fh/rc tjgd}tjgd}tgd||tjddddgd zd }t |d |d j jd }tddgd }tddgddgddgd|tgdtjd }tj||t ||dj j|d j jd }tddgddgddgdtddgtjdtgdtjd }tj||t ||dj jj|d j j|dj jgd }tj tj"gdtjtj"ddgd ztjgd dg}ttj"gdgtdgtj|}tj||t |tj"gd |d j j|dj jgd }ttj"d!d dtj$dtj$gtj$tj$tj$d"tj$d#ggd$d%g|}tj||y)&Nr;r@rCr*rrrr3rrDrEr8rFrrhrirrrrrrr)rrrr?rr9)rrrrrrr})rrrrrrr6)XrOrOrOYrPrrrXrOrP)r!rr r;rrrrLr rrGrHr{rrBr r#rr)r?rHrIrcrdrDrRrCs rtest_pivot_dtaccessorz$TestPivotTable.test_pivot_dtaccessorvs!!   !!   7))AW5a&1*    gr%y||'8'8 c 1c SzsCj 9)288%@  fh/ bill(("U),,2C2CH c SzsCj 9AbhhU;)288%@  fh/ U),,##**Y\\&&5 (:(:;  ((+288<!Q!2884 %.   HH45 6bhh/  fh/ ((9:Y\\&&5 (:(:;    HHQ2661bff-266ST/UV *   fh/rctddd}ttjt ||}t t ||jj|jj}|jjd|_ tj|jj}i}|jjjjD];}|jj|k(}t|j|||||<=t |tj }t#j$||y) N1/1/2000 12/31/2004r8rrrrr)rrr;rrIrr rCr dayofyearrD droplevelasarrayrrBrrsrGrH)r?rngrJrddoyrRrmmasks r test_dailyzTestPivotTable.test_dailys\< BIIc#h's 3 bM8J8J  11!4jj++,%%'.. CA88==A%D 4D BHQK CXU355 fh/rctddd}ttjt ||}t t ||jj|jj}|jjd|_ tj|jj}i}|jjjjD];}|jj|k(}t|j|||||<=t |tj }t#j$||y) NrSrTrrrrrr)rrr;rrIrr rCrr{rDrVrWrrBrrsrGrH)r?rXrJrdr{rRrmrZs r test_monthlyzTestPivotTable.test_monthlys\= BIIc#h's 3Yr]"((--X11!4 288>>*%%'.. EA88==A%D 4d DHQK EXU355 fh/rc"ddd}t|dgt|j|}t|dg|j|}tj||d|D}t|dg||}tj||y)Nr]rFr r5)rCrBr^c3 K|]}|ywrr).0rs r zGTestPivotTable.test_pivot_table_with_iterator_values..s2E%2s )rrarrGrH)r?r@aggspivot_values_listpivot_values_keysagg_values_genpivot_values_gens r%test_pivot_table_with_iterator_valuesz4TestPivotTable.test_pivot_table_with_iterator_valuess(' d499;&7 ( diik4  /1BC2T2& nd  .0ABrc,d}tgdgdgdd}|jddd|d d g }td d |gd}ddd d|fddd d|fg}tj|gd}t|j ||}t j||y)NWeekly)baconcheeserjrk)rrg @gffffff @)rrrsrs)rcostrrrTrFmax)rCrDrrr^rjrkr)rFrlr)rFrlrsrl)rmrlr)rmrlrs)NNrr}r)r rr r r~rBrGrH)r?rcostsrPixtupsrqrRs r/test_pivot_table_margins_name_with_aggfunc_listz>TestPivotTable.test_pivot_table_margins_name_with_aggfunc_lists >,-  !!%UO " GX|46 B " ! V\ * ! FL )  %%d2EFU\\TB eX.rcpttjdtjddztjddzd}tgdgdgdg}tgdd |_tgdd |_|j d d d |d }tj||y)Nrrr3rkrrrrXr*rrrrrrrrmrrnrlTrr) r r;rr rCrDrrGrH)r?rErcrRrPs rtest_categorical_marginsz'TestPivotTable.test_categorical_margins#s ))A,RYYq\Q%6RYYq\A=M N o{KHI}37 S9sCXtL eX.rcTttjdtjddztjddzd}tgdgdgdg}tgdd |_tgdd |_|j jd |_|jjd |_d }tjt|5|jdd d |d}dddtj|y#1swY xYw)Nrrr3rkrsrtrurvrmrrnr`rrrlTrw)r r;rr rCrDrmrbrnrGrrrrH)r?rErcrRrrPs r!test_categorical_margins_categoryz0TestPivotTable.test_categorical_margins_category0s ))A,RYYq\Q%6RYYq\A=M N o{KHI}37 S9tt{{:&tt{{:&A  ' ' S A QNN3S4NPE Q eX. Q Qs (DD'ctgdgdgdgdd}t|dd}tgd gd gd d tgd d}tj||y)N)r3rr*r)rrrXr)rrrr*)rOrOrPrPr!r8T)rCr)rrrX)rg@r)rrrr)rOrPrrrr rr rGrHr?rcrdrRs rtest_margins_casted_to_floatz+TestPivotTable.test_margins_casted_to_float@s^ !!!)   RsD9oO L)4  fh/rctjdddtjg}tjddtjdg}tt|ddg|t|ddg|t ddd}|j d d d | }t jddg|d }tdtjgtjdgg|}ttddgddg|d |_ tj|||j d d |}tddgg|td g}tj||y)Nrrr5r6rrr*)InColValrrr)rCrDrBrE)rrLrr)r@rDr)rDrBrEr)r@rDrC) r;rr r rrr!CategoricalIndexr rCrGrH) r?rErrrrcrd expected_colsrRs rtest_pivot_with_categoricalz*TestPivotTable.test_pivot_with_categoricalRs=vvufeRVV4vvsC- !#5&/7S"3C:wOQ{  eh  ++S#JeT C=2663-"@-X UFOW U  fh/ehO*}E5'N  fh/rctgdgdgdd}|djd|d<d}tjt|5|j d dd |d }dddt jgd gd dd}tddgd }tjddgddgddggtj}t|||}tj|y#1swYxYw)N)r5r6r7r7rr)r r!Vr r`rrrr!count)rCrDrr^rFrrrLrhrirrrr3rr) r rbrGrrrr!rr r;rrrH) r?rErcrrdrr expected_datarRs rtest_categorical_aggfuncz'TestPivotTable.test_categorical_aggfuncus '/C, W d8??:.4A  ' ' S A ^^4h$F  ,, T !#s$71a&1a&1a&!9J  9I  fh/  s C((C1ctgdgdgdd}gd}|djdjj||d<|j ddd |d }t d d gd d}t j||dd}ddggddggdzz}t|||}|r|jdg}tj||y)N)r+r)Januaryrr)r6r7r6)Salesrr) rFebruaryMarchAprilMayJuneJulyAugust SeptemberOctoberNovemberDecemberrr`rrr])rBrCrDrEr^r6r7rr=Fri@rrr4rr) r rbrset_categoriesrr r!rr.rGrH) r?rErcmonthsrdrrrrRs r%test_categorical_pivot_index_orderingz4TestPivotTable.test_categorical_pivot_index_orderings (:*    k((488GGO7    !$F'J,, vu7 s Ax"}4  9I  ||YK0H fh/rctgdgdgdd}|jdddgd }tjgdgdgddg }tgd|dg }t j |||jdddd }td t jt jgt jdt jgt jt jdggtgddtgdd }t j |||jdddg }tjdgdgg}tgdtgdd| }t j ||y)N)rrrX)r7r8r9)rrrrYrZr\r[r]rrr}rrrrrXr) r rr r#rGrHr;rr )r?rcrdrrRs rtest_pivot_table_not_seriesz*TestPivotTable.test_pivot_table_not_seriess=  ?IV Wvv.>N  " "I#?PVGW XYa&B fh/ffeT 2661bff"57J K //7  fh/fugF  " "UGfX#6 7YeIF.KUVW fh/rcd}tdgditdgt}t|dgtd|}tdd d |gd d }t|g }t j ||y)Nu Δοκιμήr,rorrT)rCr^rrrr3rrpr?r)r r rprrIrGrH)r?greekframerPrCrRs rtest_pivot_margins_name_unicodez.TestPivotTable.test_pivot_margins_name_unicodesm65),eUG66RS %#t% q!Q&hUC5"5 eX.rctgdgdtdd}t|ddd}td gd d ggd d gd d ggddg}tddddddd|j d}t j ||t|ddddg}tddgd gd d gggdgdgdggd}tddddddddddddd|j d}t j ||y) Nr+r.r4rr5r6r]rr7r/r0rrror$r)r-r,rr&))r7r/)r7r0rrFr)rrrrrt)NNr6rrrg@))rFr7r/)rFr7r0)r]r7r/)r]r7r0)r rrr rrGrH)r?r@rdrrRs rtest_pivot_string_as_funcz(TestPivotTable.test_pivot_string_as_funcsA  2Y7  @Tc5I EE5>*Aq6Aq62B4QT+ #%b1SUAV W  +c   fh/TcE6?S FOcUUEN;|<#  .1$&?.1:K&L-/%;-.r%:     +c   fh/rz f, f_numpyrcB|jd}t|dd|}t|trdj |n|}d|d}t j t| 5t|dd|}dddt j|y#1swY xYw) Nr7rr5r6r|zusing DataFrameGroupBy.[]r) rr isinstancerajoinrGrrrH)r?rf_numpyr@rdopsrrRs rtest_pivot_string_func_vs_funcz-TestPivotTable.test_pivot_string_func_vs_funcsyyy%Tc1E'40chhqka(Q/  ' ' S A R"4sCQH R fh/ R Rs &BBc Gddtj}|j5}|jtd|t t j dt j ddd}d}tjt|5tjtd 5|jd d d d dddddddddy#1swYxYw#1swYxYw#1swYyxYw)Nc eZdZdfd ZxZS)STestPivotTable.test_pivot_number_of_levels_larger_than_int32..MockUnstackerc8t||i|td)NDon't compute final result.)super__init__ Exception)r?argskwargs __class__s rrz\TestPivotTable.test_pivot_number_of_levels_larger_than_int32..MockUnstacker.__init__7s! $1&1 =>>r)returnN)__name__ __module__ __qualname__r __classcell__)rs@r MockUnstackerr6s  ? ?rr _Unstackerir)ind1ind2rz$The following operation may generaterrrrrr.) reshape_librcontextsetattrr r;rrGrrrxryrr)r? monkeypatchrrrcrs r-test_pivot_number_of_levels_larger_than_int32zcJ ]]94QRNN$fWg#       s<A*C7C+0CC+C7C( $C++C4 0C77Dctgdgdgdd}d}d}d}t|d|||g| }d d tjtjd d gd d tjtjd d gg}t j gdddggddg}t|ddg|} |r| j d} tj|| y)N)applepeachr)rrr3)rr*r*)fruitsizetastecy)Nrrrs rret_onez?TestPivotTable.test_pivot_table_aggfunc_dropna..ret_oneSsrct|Sr)r]rs rret_sumz?TestPivotTable.test_pivot_table_aggfunc_dropna..ret_sumVs q6Mrc"tjSr)r;rrs rret_nonez@TestPivotTable.test_pivot_table_aggfunc_dropna..ret_noneYs 66MrrrDr^rrrrr*)rrrrrr}rrrrDr ) r rr;rr from_productrrGrH) r?rrcrrrrdr@rrRs rtest_pivot_table_aggfunc_dropnaz.TestPivotTable.test_pivot_table_aggfunc_dropnaIs 4!"      '8W)Ef Arvvrvvq!,r1bffbffa.KL%% /'71C D/ T&'):CH I6H fh/rc~tgddtjdgdtjtjgd}t|dd|}d tjgdtjgg}t d d gd }t|d dg|}|r|j d}t j||y)N)r/r0r/rr3r)r5rlrmr5rFrrr/r0rrlrmrrDr )r r;rrr rrGrH)r?rrcrdr@rrRs r&test_pivot_table_aggfunc_scalar_dropnaz5TestPivotTable.test_pivot_table_aggfunc_scalar_dropnals 'q"&&!nArvvrvvCV W RfVLbff 266{+UEN-T#sSA I6H fh/rrctgdgdgdgdd}|jdddtj| }t gd }tt gd d | }t j ||y)N)r3r3rrr3)rXr*rrr)prjrjrrj)NNNNN)r5idr7r8r5r8rrrrr?r)r rr;rr rGrH)r?rrcrdexp_colsrRs rtest_pivot_table_empty_aggfuncz-TestPivotTable.test_pivot_table_empty_aggfunc}sv$%.3   s4'  #&57#ExX fh/rcd}tgdgdgdd}tjtd5|j ddd | dddy#1swYyxYw) Nc,tj|Sr)r;rF)arrs rrNz=TestPivotTable.test_pivot_table_no_column_raises..aggs773< rrrt)rr&r6()rOrPZ notpresentrrOrP)r^)r rxryrr)r?rNrcs r!test_pivot_table_no_column_raisesz0TestPivotTable.test_pivot_table_no_column_raisessV \ CST U ]]8< 8 @ NN<c3N ? @ @ @s AActgdgdgdgdgdd}t|ddgd d gd gd d }tjgd}tjgdd d g}t j gdgdgdgdg}t|||}|dj tj|d<|dj tj|d<tj||y)Nrrrrrrr8r9r5r7rF)rQrmrFr )rBrCr^))r8rFr9rm)r9rFr9rQ))r-r)r-r)r,r)r,rr})r"@g@r)rrg!@r)rrrr)g["8@rg.UUU@rrrr) r rr r~r;rrbrrGrH)r?rcrPrqrCvalsrRs r0test_pivot_table_multiindex_columns_doctest_casez?TestPivotTable.test_pivot_table_multiindex_columns_doctest_cases TT 10  ( :* '=>   %% F && T* xx$$$2   T4u=!),!7!>!>rxx!H!),!7!>!>rxx!H eX.rc ftgdgdgdgdd}|jddgdd d d }td tjgdtjgtjdggt ddgdt j gdgdgddg}tj||y)N)d1d4d3rg)r")2018r2019)rhrnumrrhrrrr]F)rCrDrBr^sortrrrrrrr}r) r rr;rr r r#rGrHr}s rtest_pivot_table_sort_falsez*TestPivotTable.test_pivot_table_sort_falses '&#0   ,ueRW  "&&\B<"&&" 666*8((#_5c5\  fh/rc tdddgtddgdd}|jd d d d }tddgddgddggtgdd t j ddgdd gd}t j||y)Nr5rr3rr4Int64r)rhrisalesrirhTr]rrr`rrr5rrr}rCrDr)r rrr r r~rGrHr}s r!test_pivot_table_nullable_marginsz0TestPivotTable.test_pivot_table_nullable_marginss QFVRHG-L M c3eT"XBx"b * C0**!124+   fh/rc tddgddgddgddgd }|jd d gd d gd}tddgddggd d gtjddgd d g}t j ||y)NJohnMichaelFooBar/r) firstnamelastnameheightagerrrrF)rCrBrge@gG@gf@g@@)rr)rrr}r)r rr r~rGrHr}s r0test_pivot_table_sort_false_with_multiple_valuesz?TestPivotTable.test_pivot_table_sort_false_with_multiple_valuess $i0"EN*Bx   {+Xu4EE  T]UDM *u%(( "45!;/  fh/rc.tgdgdgdgdg}gd|_|jdddd d d }tgd gdgdg}gd|_gd|_d|j_d|j_t j ||y)Nrhrlrrhrmr3rirmrrirnr)rr&r6rr&r6r]rTrCrDrBr^r_rrr3rrrrrrrrXrrrlrmrnrrhrir)r rDrrCrLrGrHr}s r1test_pivot_table_with_margins_and_numeric_columnsz@TestPivotTable.test_pivot_table_with_margins_and_numeric_columns s  }m]S T! bUqRV  lL-HI1* "  fh/rrctddtddgdd}|jdd d d | }td ggtdgdtdgd d}t j ||y)Nrhrir&rrr)rlrmrrlrmrrF)rCrDrBr^rr6rFloat64r)r rrr rGrH)r?rrcrdrRs rtest_pivot_ea_dtype_dropnaz)TestPivotTable.test_pivot_ea_dtype_dropna s~Ss62r('3RS Ts5&  TFC(3%c*   fh/rc tdddgtjdddgd}tjd5|j dd gd d d }dddtddgddgddggt jtgddttjdtjddgtd gt jddgdd g}tj|y#1swYxYw)Nr5rr3z 2019-12-31g$@r4)rhrirrrirrhTr]rrg5@r`rrr?rrr}r) r r!r-rGrrr r#r rpr~rHr}s r!test_pivot_table_datetime_warningz0TestPivotTable.test_pivot_table_datetime_warning) s V \2    ' ' - ^^FmS$$F D\D$<$ 6((-c2l3R\\,5OQST$# **!124+  fh/)  s C??Dc ztgdgdgdgdgdgdgdgdd}t|ddd gd gd }td dgddgd dgtjdggt ddgd t j gdddgdzgdd g}|r|djd|d<tj||y)Nrrrrr)r5r6r7r8r9)col5)col6r*rsevenr8r5r6rr]rrrrrrrrr)r-r-r,r,r/r0r3r}rr) r rr;rr r r#rbrGrH)r?r3rcrdrRs r)test_pivot_table_with_mixed_nested_tuplesz8TestPivotTable.test_pivot_table_with_mixed_nested_tuplesI s TT 10   M1 3 h s3*|ne 3Z#sc3Z"&&# ?7G,<@((-u~/AB3PS*   ( 1 8 8 AHW  fh/rc8ttdtdtdtdd}tjtdDcgc]}dc}tdDcgc]}dc}tdgd}t j dtj }t j|dt|ttdd | }|jd gd gdgdg }tj||ycc}wcc}w)Nrrnuniquerj)NNrir})rrrrhrrrir.) r rr r#r;fullr fill_diagonalr rrGrH)r?testr columnvalnparrrRrds r6test_pivot_table_aggfunc_nunique_with_different_valueszETestPivotTable.test_pivot_table_aggfunc_nunique_with_different_values s2Y2Y2Y2Y   **$)"I.q.#Bi((b   $  "&&) $U%b *DiX!!K"   fh///(s  D) D )arrrrxfixturer@rSrervrrrrrrrrrrrmark parametrizerr rrr(r4rErUr\rbr;rrr rrrur{xfailrrrrrr r~rrrrrrrr rrrrr"r&r4r9rMrQr[r]rgrqrxrzr~rrrrrrr]rFrrslowrrrrrrrrrrrrrr'rrrr)r),s ^^. . `/806 &#/J0 0@!0F0< 0180 0 /!1F [[ x* + 3 4 3 4  " ",(\002 [[Xe}5X6X6 [[Xe}5,6,6 [[Xe}5=,6=,~50n [[Xe}5+,6+,Z00 [[ EN BHHeU^ $ E5> " 5%. !   [[Xe}50606 [[ EN BHHeU^ $ E5> " 5%. !   [[Xe}5 06 0D2 [[S [[Xe}5$06$0L [[Xe}5P6P,Cj=2B2/4 [[4%';<2=  c ),' &&*   <$0=<$0L000& [[V%MN 0O 0 2@*/$17f08A7A [[]UE3sCj,QR#S#JVp}2~Y0vY0v0$ 0C&/< // 0$!0F0,*0X08 /<0| [[ BFFO RWW  BFFOV_rvvrww/ 0U^bffbff- .V_rvvrww/ 0    0  0 [[,!0F0" [[Yu 6070"@2/h0,0"0,0" [[Xe}5 06 00@C0J#0rr)ceZdZdZdZdZdZdZdZdZ e jje d d Zd Zd Zd ZdZdZdZy) TestPivotcgdgdgdd}t|}|jddd}tdd d d dd d d d }d \|j_|j_t j |||jjdk(sJ|jjdk(sJ|jdd }|jjdk(sJ|jjdk(sJy)Nr5r6r7r7r6r5Oner2r2Twor3r3rrrrrrrrCrDrBrrrrr2r3rNrD)r r'rCrLrDrGrHrJ)r?r@rr rRs r test_pivotzTestPivot.test_pivot s3A4  $++GYx+P s5 s5  6H2X--2 gx0}}!!W,,,##y000++GY+?}}!!W,,,$$(9999rctgdgdgdd}tjtd5|j ddd dddy#1swYyxYw) N)r-r-r,r,r,)r/r0r/r/r0)rrrrrrgzduplicate entriesrrhrirjr)r rxryr%r')r?r@s rtest_pivot_duplicateszTestPivot.test_pivot_duplicates sR88.  ]]:-@ A ; JJS#cJ : ; ; ;s AActgd}|jddd}tgg}tj||d y) NrgrrhrirjrrFr)r r'rGrHr}s rtest_pivot_emptyzTestPivot.test_pivot_empty s>  /S=2r2 fhEBrctddg|}|jddd}tdd gd| }|d k(r|jd }t j |j |y) N)r5rA1)r6rB2)r@rrrr3rr5r6r=rpr)r r'r rbrGrrD)r?any_string_dtypercrdrs rtest_pivot_integer_bugz TestPivot.test_pivot_integer_bug sp "$45=M 1Q7 #s!;KL x '/66u=  fnn.>?rcgdgdgdd}t|jd}|jdd}td d d d d d d d d }d\|j_|j _t j|||jd}tjddgddg|_d|j_t j||d|jjdk(sJ|j jdk(sJ|j jd|_|jdd}d|j _t j||y)Nr0r1r4rrCrDrBrDrBrrrrr5rr)rBr2)rBr3r}Frr6r) r rRr'rCrLrDrGrHr r~rJrV)r?r@rrdrRs rtest_pivot_index_nonezTestPivot.test_pivot_index_none s[4A4  $))'2Yx@ s5 s5  6H2X--2 fh/Y/%11  1 24:K & fhEB||  G+++~~##'8888#++55a8Yx@ ) fh/rc tgdgdgdgdgdd}ddg}d g}|j|| }ttjgd d tjd tjggdtjdtjdggt j ddgddgt j ddgdd g }tj|||ddgk(sJ|d gk(sJy)N)rrrr3r3r3)rrr3rrr3)rr3rr3rr3rhr)lev1lev2lev3lev4rBrErFrGr)rrrrrr)rrrrrrr)rr3rr3r})rHrHrBrB) r r'r;rrr r#rGrH)r?rcrCrDrdrRs r0test_pivot_index_list_values_none_immutable_argsz:TestPivot.test_pivot_index_list_values_none_immutable_args s ****,    (w7 HH("&&#rvv.(VVS"&&#.  ((|,VV4D**5|DVn $ fh/((((6("""rctdgdd}tjtd5|j dddy#1swYyxYw)Nrrz(missing 1 required keyword-only argumentrrw)r?rcs rtest_pivot_columns_not_givenz&TestPivot.test_pivot_columns_not_given8 s@ aSq) * ]]9,V W  HHJ   s AAz&TODO(infer_string) None is cast to NaNr|ctdgddd}|jd}tdgdd}tj|||jdd}td dit dgd  }tj|||jddd }tddit dgd  }tj||y)Nrr3rNrirjr))rirrjrrirrNrrrjrDrCrB)r r'rGrHr r}s rtest_pivot_columns_is_nonez$TestPivot.test_pivot_columns_is_none@ s qc2 3$'q9: fh/$c2h]%#2FG fh/$c#>aV5!3+?@ fh/rctdgddd}|jdd}tddidg}ddg|j_t j |||jddd }tddgt dgd  }|rtj|j_ t j ||y) Nrr3rrMrir)rjr3rrjrOrr) r r'rDrJrGrHr r;rrCrL)r?rrcrdrRs rtest_pivot_index_is_nonez"TestPivot.test_pivot_index_is_noneR s qc2 3#T2h]1#6"& fh/#T#>Qqc5!33GH "$&&HNN  fh/rcLtdgddd}|jddd}tdtdgdtdgd }tj|||jdd }tdd gtdgd }tj||y) Nrr3rrMrirjrOrrrBr)r r'r rGrHr}s rtest_pivot_values_is_nonez#TestPivot.test_pivot_values_is_nonea s qc2 3#S> UA3S)5!33G  fh/#d3Qqc5!33GH fh/rctdgddd}|jd}|jddd tj||y) Nrhrr)r/r0threeT)deepr/r0rVr)r rr'rGrH)r?rcrRs r"test_pivot_not_changing_index_namez,TestPivot.test_pivot_not_changing_index_nameo sG uQ; <777% ueG< b(+rctggd}|jdddd}tgdd }tj|j |y) N)rhrirrrhrirrr.rpr?)r rr rGrrDr?rcr'rRs r.test_pivot_table_empty_dataframe_correct_indexz8TestPivot.test_pivot_table_empty_dataframe_correct_indexv sG r#6 7S#gwW8#6 emmX6rc tdddddddddd d dg}tj|d |d <tjd 5|j dd gdgdd}dddt jdtjddfdtjddfdtjddfdgdd g}tjj|y#1swYxYw)Nrlz 2023-01-01r)rhdate_strryrmz 2023-01-02r3rnz 2023-01-03rr]rFrhryr]T)rCrBr^rz2023-01-01 00:00:00z%Y-%m-%d %H:%M:%Sz2023-01-02 00:00:00z2023-01-03 00:00:00rr}) r r! to_datetimerGrrr r~rstrptimerrCrZs r0test_pivot_table_handles_explicit_datetime_typesz:TestPivot.test_pivot_table_handles_explicit_datetime_types~ s  |qA|qA|qA  ^^BzN36  ' ' . NNFmXJt#E  ))h''(=?RSTh''(=?RSTh''(=?RST   -  ekk84  s C,,C5ctgdgdgdgdg}|jdddddd }tgd gd gd gtgddtgdd}tj||y)Nr r r r rrr3r]Trrrrrrrrr|r}s r6test_pivot_table_with_margins_and_numeric_column_namesz@TestPivot.test_pivot_table_with_margins_and_numeric_column_names ss  }m]S TQq%At   < 70q9)2  fh/rN)rrrr7r9r;r@rCrIrKrxr)r+rrPrRrTrXr[r`rbrrrr.r. sx:: ;C @"0H$#L [[%M 0 0 0 0,756 0rr.)'rrr itertoolsrrnumpyr;rxpandas._configr pandas.errorsrpandasr!r r r r r rrrpandas._testing_testingrGpandas.api.typesrpandas.core.reshaperrpandas.core.reshape.pivotrr(rrr'r)r.rrrrms   -,   -61e}%&!q1#'*U1XuQ{,CDEJFJ E&0E&0PLr0r0r