
    Pi-                        d dl mZm Z mZ d dlmZ d dlZd dlZd dlZd dl	m
Z
 d dlZd dlmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ  G d	 d
          Z  G d d          Z!dS )    )datedatetime	timedelta)productN)using_string_dtype)	
ArrowDtypeCategorical	DataFrameGrouperIndex
MultiIndexSeriesconcat
date_range)CategoricalDtype)reshapepivot_tablec                   <   e Zd Zej        d             Zd Zd Zd Zd Z	d Z
d Zd Zd	 Zej                            d
dgdz  dgdz  f ed           edd          fg          d             Zd Zd Zd Zd Zd Zej                            ddddgfdg dfdg dfg          d             Zd Zd Zd Zej                            dd d!g          d"             Zej                            dd d!g          d#             Zej                            dd d!g          d$             Zd% Zej                            dd d!g          d&             Zd' Z ej                            d(e!e"j#        e$e%g          ej                            dd d!g          d)                         Z&ej                            d*d+d,g e"j#        d+d,g           e$d+d,g           e%d+d,g          g          ej                            dd d!g          d-                         Z'd. Z(ej        )                    d/0          ej                            dd d!g          d1                         Z*ej                            dd d!g          d2             Z+	 	 	 dd5Z,d6 Z-d7 Z.ej                            d8d9d:g d;g d<g e%g d=d9>          fd9d?gd@g dAg dBg e/j0        g dCd9d?gD          fg          dE             Z1dF Z2dG Z3ej                            dHg dI          dJ             Z4dK Z5dL Z6dM Z7dN Z8dO Z9dP Z:dQ Z;dR Z<dS Z=ej                            dTdUdVdWd3dXdYgg          dZ             Z>d[ Z?d\ Z@d] ZAd^ ZBd_ ZCd` ZDda ZEdb ZFdc ZGdd ZHde ZIdf ZJdg ZKdh ZLdi ZMdj ZNdk ZOej                            dldXdmidmddnddmdog          dp             ZPej                            dli dYdqidXdiddqdndqddog          dr             ZQej                            dsd@e"jR        fd:e"jS        fdte"jT        fd@d:ge"jR        e"jS        gfd@dtge"jR        e"jT        gfdud:ge"jU        e"jS        gfg          dv             ZVej        jW        dw             ZXdx ZYdy ZZej                            dzd d!g          d{             Z[d| Z\d} Z]d~ Z^d Z_d Z`d Zaej                            dddg          d             Zbd Zcd Zdd Zed Zfej                            dddde"jg        de"jg        ge"jg        de"jg        dgg e%d9d?gd           e%g dd          fddde"jg        ge"jg        dgde"jg        ge"jg        dgg e%g dd           e%d9d?gd          fgddg          d             Zhd Zid3S )TestPivotTablec           
      Z   t          g dg dg dt          j                            d                              d          t          j                            d                              d          t          j                            d                              d          d          S )Nfoor   r   r   barr   r   r   r   r   r   oner   r   twor   r   r   r   r   r   r   )dullr   shinyr   r   r   r   r   r   r   r         )ABCDEF)r
   nprandomdefault_rngstandard_normalselfs    s/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/reshape/test_pivot.pydatazTestPivotTable.data!   s           Y**1--==bAAY**1--==bAAY**1--==bAAU+ +-
 -
 -	
    c                    ddg}d}t          |d|||          }|                     d|||          }t          j        ||           t          |d||           t          |          dk    r |j        j        t          |          k    sJ n|j        j        |d         k    sJ t          |          dk    r|j        j        |k    sJ n|j        j        |d         k    sJ |	                    g ||          d         
                    d	                                          }t          j        ||           d S )
Nr"   r#   r$   r%   )valuesindexcolumnsobserved)r2   r3   r5      r   mean)r   tmassert_frame_equallenr3   namestuplenamer4   groupbyaggunstack)r-   r5   r/   r3   r4   tabletable2expecteds           r.   test_pivot_tablezTestPivotTable.test_pivot_tableR   sb   c
E7X
 
 
 !!eWx " 
 
 	eV,,, 	DEHEEEEu::>>;$e44444;#uQx////w<<!=&'11111=%3333<< 1% 1 12237;;FCCKKMM
eX.....r0   c                    t          t          d          t          d          g dd          }|                    ddddd	
          }|j                            d          |_        |j                            d          |_        |j                            d          |_        |j                            d          |_        |                    ddddd	|          }t          j	        ||           d S )Nabcdefghijr6   r             col1col2col3rM   rO   rN   sumr   )r3   r2   r4   aggfunc
fill_valuecategory)r3   r2   r4   rQ   rR   r5   )
r
   listr   r3   astyper4   rM   rN   r8   r9   )r-   r5   dfrC   results        r.   +test_pivot_table_categorical_observed_equalz:TestPivotTable.test_pivot_table_categorical_observed_equaln   s    ']]DMM???SS
 
 >>ST " 
 
 "..z::#+22:>>'..,,'..,,   
 
 	fh/////r0   c                 `   t          g dg dg dd          }|                    dd          }|                    dd          j        }t          j        ||           |                    dd	d
i          }|                    dd	d
i          j        }t          j        ||           d S )Nabcxyzr6   r    rI   )rowscolsr2   rd   rP   )r4   rQ   r3   rQ   r2   r7   )r
   r   Tr8   r9   )r-   rV   rsxps       r.   test_pivot_table_nocolsz&TestPivotTable.test_pivot_table_nocols   s    $__oooSS
 
 ^^FE^::^^&%^88:
b"%%%^^FXv4F^GG^^&8V2D^EEG
b"%%%%%r0   c                 j   t          ddddddddddd	d
dddddddddddddd          }|                    ddddgd          }|                    dddgdd          }t          j        g dddg          }t	          j        |j        |           t	          j        |j        |           d S )Ni`  i iP  i0u  )r   r6   r    rI   r"   r#   r$   i[ i] i\ i^ r[   r\   r]   di i  i@B )amountcustomermonthr   quantityro   rn   rm   r   F)dropna))r"   r[   )r"   r\   )r"   r]   )r"   rk   )r#   r[   )r#   r\   )r#   r]   )r#   rk   )r$   r[   )r$   r\   )r$   r]   )r$   rk   r;   )r
   r   r   from_tuplesr8   assert_index_equalr4   r3   )r-   rV   pv_colpv_indms        r.   test_pivot_table_dropnaz&TestPivotTable.test_pivot_table_dropna   s   #5UCC #<<#6fEE"sss;; 'Fw7KK 
 
 *i!8   
 
 Y/   
 
 "   y)
 
 
" 	fna000
flA.....r0   c                 <   t          g dg dd          }t          g dg dd          }t          ||g dd          }t          |d	d
dgdd          }t          j        ||gd
dg          }t          d	g di|          }t          j        ||           d S )Nr[   r[   r\   r\   )r[   r\   ra   T
categoriesordered)r]   rk   r]   rk   )r]   rk   r`   r6   r    rI   rJ   )r"   r#   r2   r2   r"   r#   F)r2   r3   rp   r5   rq   )      ?       @      @      @r3   )r	   r
   r   r   from_arraysr8   r9   )r-   cat1cat2rV   rW   	exp_indexrC   s          r.   test_pivot_table_categoricalz+TestPivotTable.test_pivot_table_categorical   s       ___d
 
 
    ___d
 
 
 TEEFFxSz$
 
 
 *D$<SzJJJ	h(<(<(<=YOOO
fh/////r0   c                 H   g d}t          g dg dt          d          d          }|d                             t          |d                    |d<   |                    d	dd
|d          }t          g dd          }|                    t          |d                    }t          g dd	          }t          g dg dg dg||          }|s6|                    t          |                                        d          }t          j	        ||           d S )Nr[   r\   r]   rk   )	r[   r[   r[   r\   r\   r\   r]   r]   r]   )	r6   r    rI   r6   r    rI   r6   r    rI   	   r"   r#   r$   r"   Fr|   r#   r$   )r3   r4   r2   rp   r5   rZ   r=   rb   )        r         @)r~   r         @)r         @       @r3   r4   r4   float)
r
   rangerU   r   r   r   reindexr	   r8   r9   )r-   rp   r{   rV   rW   expected_columnsexpected_indexrC   s           r.   $test_pivot_table_dropna_categoricalsz3TestPivotTable.test_pivot_table_dropna_categoricals   se   )))
BBB0001XX 
 
 S'..!1*e!L!L!LMM3s3v   
 
 "///<<<+22Z777
 
  			444__ooo? $
 
 

  	Y''J0G0G'HHOOPWXXH
fh/////r0   c           
      d   t          t          t          j        ddddgddgd          g dd          }|                    dd|d	
          }|r	ddg}ddg}ng d}g d}t          d|it          t          j        |ddgd          d                    }t          j        ||           d S )NlowhighTrz   )r   r~   r   r   r   r"   r#   r"   r#   Fr3   r2   rp   r5   r   r   r   r6   r   r   r   )r   r6   r   r   )	r
   r	   r(   nanr   r   
from_codesr8   r9   )r-   rp   rV   rW   r2   codesrC   s          r.   %test_pivot_with_non_observable_dropnaz4TestPivotTable.test_pivot_with_non_observable_dropna   s    VUFE6: %v   
 /.. 	
 	
 c#fuUU 	3ZFFEE %__FJJE&M&u%RVWWW  
 
 
 	fh/////r0   c           
         t          t          g dg dd          t          d          d          }|                    dd|d	
          }t          dg dit	          t          j        g dg dd          d                    }|s#|d                             t                    |d<   t          j	        ||           d S )N)leftr   r   r   r   )r   r   r   Trz   rK   r   r"   r#   Fr   r   r   r6   r    r   r   )
r
   r	   r   r   r   r   rU   r   r8   r9   )r-   rp   rV   rW   rC   s        r.   /test_pivot_with_non_observable_dropna_multi_catz>TestPivotTable.test_pivot_with_non_observable_dropna_multi_cat	  s    :::666   
 1XX 	
 	
 c#fuUU///"&II*A*A*A4   	  
 
 
  	8$SM0077HSM
fh/////r0   
left_rightr   rJ   r6   rI   c                    |\  }}t          t          j                            |||                    }t	          |dd          }|                    dd|d          }t	          ddit          |                                d          	          }	|s|	                    t                    }	t          j        ||	           d S )
Nr6   r   r"   r#   Fr   r~   r   r   )r	   pdIntervalIndexr   r
   r   r   uniquerU   r   r8   r9   )
r-   r   rp   closedr   rightinterval_valuesrV   rW   rC   s
             r.   test_pivot_with_interval_indexz-TestPivotTable.test_pivot_with_interval_index%  s    
 !e%b&6&B&B4PV&W&WXX_15566c#fuUU#JeO$:$:$<$<3GGG
 
 
  	.u--H
fh/////r0   c           
         t           j                            g dg d          }t          t	          j        dddt          j                  g dt          |d	                              d
          d          }t          |dddddd
          }|d         }t          g dt          t          j        dd          t          j        dd          dgd          dt          j                  }t          j        ||           d S )Nr   r   r6   r6   r6   r6   r    r    rJ   r   r   dtyper[   r\   r[   r\   Tr   F)	ascendingr   r$   r#   r"   rP   )r3   r4   r2   rQ   marginsr5   All)rI      
   r6   r    r   )r3   r=   r   )r   r   r   r
   r(   arangeintpr	   sort_valuesr   r   r   Intervalr8   assert_series_equal)r-   ordered_catrV   	pivot_tabrW   rC   s         r.   &test_pivot_with_interval_index_marginsz5TestPivotTable.test_pivot_with_interval_index_margins6  s)   &22<<<NNYq!Rrw777))) d;;;GG# H   
 
  
 
 
	 5!JJQ**BK1,=,=uECPPP'	
 
 
 	vx00000r0   c                     |                     d|j        |j                  }|                     ddd          }t          j        ||           d S )Nr%   r   r"   r$   )r   r"   r$   r8   r9   r-   r/   rW   rC   s       r.   test_pass_arrayzTestPivotTable.test_pass_arrayV  sS    !!#TVTV!DD##CsC#@@
fh/////r0   c                     |                     dd |j                  }|                     d|j        dz  d          }t          j        ||           d S )Nr%   c                     | dz  S )NrK    r_   s    r.   <lambda>z3TestPivotTable.test_pass_function.<locals>.<lambda>\  s
    qAv r0   r   rK   r$   )r   r$   r3   r8   r9   r   s       r.   test_pass_functionz!TestPivotTable.test_pass_function[  s[    !!#-=-=tv!NN##CtzQ#LL
fh/////r0   c                     ddg}d}t          |||          }|                    g ||                              d                                          }t	          j        ||           d S )Nr"   r#   r$   r   r7   )r   r>   r?   r@   r8   r9   )r-   r/   r3   r4   rA   rC   s         r.   test_pivot_table_multiplez(TestPivotTable.test_pivot_table_multiple`  ss    c
Dw???<< 1% 1 12266v>>FFHH
eX.....r0   c                    t          g dg dg dd          }|j        d         dk    sJ t          |ddgdgd	d
          }|j        }t          t	          j        d          gdz  t          t          d          d                    }t          j	        ||           t          g dg dg dd          }|j        d         dk    sJ t          |ddgdgd	d          }|j        }t          t	          j        d          gdz  t          t          d          d                    }t          j	        ||           d S )N)catbatr   r   r}   r   )r[   vir   int64r[   r   r   rP   )r2   r3   r4   rR   rQ   r    abr   r   )      ?      @      @      @float64r7   )
r
   dtypesr   r   r(   r   r   rT   r8   r   )r-   fra   rW   rC   s        r.   test_pivot_dtypesz TestPivotTable.test_pivot_dtypesg  s   111!\\))) 
 
 x}''''c#!U
 
 
 28G,,-1tDzzPS9T9T9TUUU
vx000 111)))))) 
 
 x}	))))c#!V
 
 
 28I../!35dRU;V;V;VWWW
vx00000r0   zcolumns,valuesbool1float1float2)r   r   r   bool2c                 (   t          j        dt           j                  }t          ||dz   |dk    |dk    d          }|                                                    d||          }t          |j                  }d	 |D             }||k    sJ d S )
NrK   r   r   r    rI   )r   r   r   r   r3   r3   r4   r2   c                 8    i | ]}|t          j        d           S )r   )r(   r   ).0cols     r.   
<dictcomp>z=TestPivotTable.test_pivot_preserve_dtypes.<locals>.<dictcomp>  s$    ???C),,???r0   )r(   r   r   r
   reset_indexr   dictr   )r-   r4   r2   r   rV   df_resrW   rC   s           r.   test_pivot_preserve_dtypesz)TestPivotTable.test_pivot_preserve_dtypes  s     Iarz***AGa1fqAvNN
 
 !!--76 . 
 
 fm$$?????!!!!!!r0   c           	      x   t          j        g d          }t          dg di|          }|                    |j        j        |j        j                  }t          j        ddg          }|	                    |j
        d                             t          j                  d	          }t          d
dgdt          j        ggt          ddgt          j                  |          }t!          j        ||           t          g dt%          dddd          d|          }|                    |j        j        t'          dd                    }t          j        dgt          j        dgd          gd dg          }t          ddgt          ddgt          j                  |          }t!          j        ||           |                    t'          d          t'          dd                    }t          dgt          j        dgd          |          }t!          j        ||           d S ) N)
2011-01-01z
2011-02-01
2011-01-02r   r   r"   rH   r   r   )r"   r6   )r"   r    r6   )levelr   r   r   r    r   r   r%   rK   ns)freqperiodsunit)r"   dtr   ME)keyr   z
2011-01-31zM8[ns]rq         
@YEr   r   z
2011-12-31)r   DatetimeIndexr
   r   r3   rn   dayr   rr   
set_levelslevelsrU   r(   int32r   r   r8   r9   r   r   r   )r-   idxrV   resexp_columnsexps         r.   test_pivot_no_valuesz#TestPivotTable.test_pivot_no_values  sf   RRR
 
 ___-S999nn28>28<nHH ,h-ABB!,,q!((22! - 
 
 3Z#rv'Abh///
 
 

 	c3'''$__ CNNN  
 
 
 nn28>7tRV;W;W;WnXX ,UB$l^8DDDE,
 
 
 3KuaV28<<<k
 
 
 	c3'''nnt$$$g$T.J.J.J  
 
 E"L>===
 
 

 	c3'''''r0   c                     t          |ddgdddgd          }t          |                    dgd	
          dddgd          }t          j        ||           d S )Nr%   r&   r"   r#   r$   r   )r2   r3   r4   rR   r'   r6   axis)r3   r4   rR   )r   dropr8   r9   r   s       r.   test_pivot_multi_valuesz&TestPivotTable.test_pivot_multi_values  sz    #s3c
q
 
 
 IIse!I$$C#sPQ
 
 
 	fh/////r0   c                 T   fd} |ddg          } |d          } |d          }t          ||gddgd          }t          j        ||           fd} |ddg          } |d          } |d          }t          ||gddgd          }t          j        ||           d S )Nc                 4    t          ddgddgd|           S )Nr%   r&   r"   r#   r$   r2   r3   r4   rQ   r   funcr/   s    r.   r   z;TestPivotTable.test_pivot_multi_functions.<locals>.<lambda>  s)    #sC:sD
 
 
 r0   r7   stdr6   )keysr  c                 6    t          ddgddgd| d          S )Nr%   r&   r"   r#   r$   T)r2   r3   r4   rQ   r   r   r  s    r.   r   z;TestPivotTable.test_pivot_multi_functions.<locals>.<lambda>  s0    :*
 
 
 r0   )r   r8   r9   )r-   r/   r   rW   meansstdsrC   s    `     r.   test_pivot_multi_functionsz)TestPivotTable.test_pivot_multi_functions  s    
 
 
 
 FE?##&		qxx5$-vuoAFFF
fh///
 
 
 
 FE?##&		qxx5$-vuoAFFF
fh/////r0   methodTFc           	         t           j        }t          dd|dgg dg dd          }|r|                    ddd	
          }nt	          j        |ddd	
          }t          ||d|gd|||g|d||g|||dggt          |dddgd          t          g dd                    }t          j        ||           t          j        |                    ddd	
          |j                   d S )NR1R2R4)C1C2C3C4)r            rZ   r[   r\   r]   r   r   r   r  r!  r   r   )	r(   r   r
   pivotr   r   r8   r9   rf   )r-   r  r   rV   rW   rC   s         r.   test_pivot_index_with_nanz(TestPivotTable.test_pivot_index_with_nan  s;    fD#t,---%%% 
 
  	FXXCSXAAFFXbSEEEFc2s#S#s#b#s#c3#	 dD$/c:::222===	
 	
 	
 	fh///
bhhS#chJJHJWWWWWr0   c                 *   t          t          ddd          dt          j        d          z   d          }|d         t	          j        d          z
  |d	<   t          j        x|j        d
<   |j        d<   t          j        x|j        d<   |j        d<   |r|                    dd	d          }nt	          j        |dd	d          }|	                                j
                                        t          |          k    sJ |                                D ],\  }}|j        |d         |d	         f         |d         k    sJ -|r|                    d	dd          }nt	          j        |d	dd          }t          j        ||j                   d S )Nz
2014-02-01   r%   )r   r   d   )r[   r]   r[   z
2014-02-02r\   )r6   r[   )rI   r[   r6   r\   )rJ   r\   r]   r   )r
   r   r(   r   r   	Timestampr   locr"  notnar2   rP   r:   iterrowsr8   r9   rf   )r-   r  rV   pv_rowrW   s          r.   test_pivot_index_with_nan_datesz.TestPivotTable.test_pivot_index_with_nan_dates  s    acBBB29Q<<' 
 
 S'BL6663*,&0v*,&0v 	BS==BB"CSAAABxxzz $$&&#b''1111kkmm 	: 	:FAs6#c(CH,-S99999 	FXXCSXAAFFXbSEEEF
fbd+++++r0   c                 R   t          t          j        t          ddddd          t          ddddd          t          ddddd          t          ddddd          gd| d          t          j        t          d	dddd          t          d	dddd          t          d	dddd          t          d	dddd          gd| d
          t	          j        dd          t	          j        dd          d          }t          g d          }t          j        ddgdz  dd| d
          }t          j        ||g          }t          j        ddgdd| d          }t          g dg dg||          }|r|	                    dd          }	nt          j	        |dd          }	t          j        |	|           t          ddgddgg||d d                   }|r|	                    ddd          }	nt          j	        |ddd          }	t          j        |	|           d S )N  r6   r   r   r    zM8[z, US/Pacific]r     z, Asia/Tokyo]rJ   r   )dt1dt2data1data2r5  r5  r6  r6  z2014/01/01 09:00z2014/01/02 09:00r4  r=   r   z2013/01/01 09:00z2013/01/02 09:00r3  r   r    r   r    r6   rI   r6   rI   r   rI   r5  r   )r
   r   r   r   r(   r   r   r   r   r"  r8   r9   )
r-   r  r   rV   exp_col1exp_col2exp_colexp_idxrC   r,  s
             r.   test_pivot_with_tzz!TestPivotTable.test_pivot_with_tz)  s    ' q!Q22 q!Q22 q!Q22 q!Q22	 4333   ' q!Q22 q!Q22 q!Q22 q!Q22	 4333   1G4441G444) 
 
2 ===>>#!34q8++++
 
 

 ((H)=>>"!34++++
 
 

 \\<<<(
 
 
  	:u55BB"E5999B
b(+++VaVRaRL
 
 
  	JuWEEBB"E5IIIB
b(+++++r0   c                 N   t          dt          j        dd          ddt          j        dd          ddt          j        dd          ddt          j        dd          ddt          j        d	d          dg          }|                    d
                                          }|j                            d           }t          |                    d
                                          d
dg|gd          }t          t          j        dd          t          j        dd          ggt          dgd          t          j	        t          j        dd          t          j        dd          gd
                    }t          j        ||           d S )Naaz2016-08-12 13:00:00-0700z
US/Pacifictz)uidtsz2016-08-12 08:00:00-0700z2016-08-12 14:00:00-0700z2016-08-25 11:00:00-0700z2016-08-25 13:00:00-0700rE  c                 2    |                      ddd          S )Nr   )hourminutesecond)replacer   s    r.   r   z8TestPivotTable.test_pivot_tz_in_values.<locals>.<lambda>  s    199!Aa9#H#H r0   rD  minr  r   z2016-08-12 00:00:00z2016-08-25 00:00:00r   )r
   r   r(  	set_indexr   rE  mapr   r   r   r8   r9   )r-   rV   minsrW   rC   s        r.   test_pivot_tz_in_valuesz&TestPivotTable.test_pivot_tz_in_valuesi  s     ,'AlSSS 
  ,'AlSSS 
  ,'AlSSS 
  ,'AlSSS 
  ,'AlSSS #
 
2 \\$++--uyyHHIILL**,,'F
 
 
  L!;MMML!;MMM U+++$L!6<HHHL!6<HHH   
 
 
  	fh/////r0   c           
      J   t          t          j        dd          t          j        dd          t          j        dd          t          j        dd          gt          j        dd          t          j        dd          t          j        dd          t          j        dd          gt          j        dd	          t          j        dd	          d
          }t          g d          }t          j        ddgdz  dd          }t          j        ||g          }t          g dg dgt          j        ddgdd          |          }|r|	                    dd          }nt          j	        |dd          }t          j        ||           t          ddgddggt          j        ddgdd          t          j        ddgdd                    }|r|	                    ddd          }nt          j	        |ddd          }t          j        ||           d S )Nz
2013-01-01r%   z
2013-01-02z2013-01Mz2013-02rJ   r   r   )p1p2r5  r6  r7  r    rS  )r=   r   r9  r:  rR  r   r   r6   rI   r5  r   )r
   r   Periodr(   r   r   PeriodIndexr   r   r"  r8   r9   )r-   r  rV   r;  r<  r=  rC   r,  s           r.   test_pivot_periodsz!TestPivotTable.test_pivot_periods  sG    IlC00IlC00IlC00IlC00	 Ii--Ii--Ii--Ii--	 1G4441G444 
 
& ===>>>9i"81"<4cRRR((H)=>>\\<<<(.,!=DsSSS
 
 

  	8d33BB"D$777B
b(+++VaV.,!=DsSSSNIy#93OOO
 
 

  	Hd7CCBB"D$wGGGB
b(+++++r0   c           
         t          g dt          j        d          t          j        d          t          j        d          t          j        d          gdd          }t          dt          g dd          t          t          j        d          t          j        d          d	gd
                    }|                    dd
dd          }t          j        ||           d S )Nr   2019Q12019Q2r~   )r[   r\   r_   r6   r    r   r[   r   r   r\   r/   r3   r4   r_   T)r3   r4   r2   r   )r
   r   rT  r   r   r8   r9   )r-   rV   rC   rW   s       r.   test_pivot_periods_with_marginsz.TestPivotTable.test_pivot_periods_with_margins  s    !\\Ih''Ih''Ih''Ih''	 	 	
 
 C00029X..	(0C0CUKRUVVV
 
 
 c3sDQQ
h/////r0   boxc                     |ddg          }t          g dg dg dg dd          }|r|                    dd	|
          }nt          j        |dd	|
          }g dg dg}t          ddgd          }t	          ddgg dgg dg dgd d	g          }t          |||          }	|	d                             t                    |	d<   t          j        ||	           d S )Nbazzoor   r   r   r   r   r   r"   r#   r$   r"   r#   r$   r6   r    rI   rJ   rK   r%  r_   r`   ra   qwtr   r   r_  r`  r   r   r   )r6   r    rI   r_   r`   ra   )rJ   rK   r%  re  rf  rg  r   r   r/   r=   r   )r   r   r   r6   r6   r6   )r   r6   r    r   r6   r    r   r   r;   r[  )	r
   r"  r   r   r   rU   objectr8   r9   )
r-   r]  r  r2   rV   rW   r/   r3   r4   rC   s
             r.    test_pivot_with_list_like_valuesz/TestPivotTable.test_pivot_with_list_like_values  sG    eU^$$AAA555)))555	 
 
  	MXXE5XHHFFXbuVLLLF(((*B*B*BCE5>666ENOOO4%%%'9'9'9:-
 
 

 $eWEEE"5/0088
fh/////r0   r2   r   r_  c           	         t          g dg dg dg dd          }|r|                    dd|          }nt          j        |dd|          }t          j        d	t          j        d
gt          j        dt          j        dgt          j        dt          j        dgd	t          j        dt          j        gdt          j        dt          j        gdt          j        dt          j        gg}t          g dd          }t          ddgddggg dg dgd dg          }t          |||          }|d                             t                    |d<   t          j
        ||           d S )Nra  rb  rc  rd  rh  r`  r   r   r"   rJ   r$   r%  r#   rK   r6   r    rI   )re  rg  rf  r_   r`   ra   ri  r   r_  r   r   r   r   r6   r   r6   rj  r[  )r
   r"  r   r(   r   r   r   rU   rk  r8   r9   )	r-   r2   r  rV   rW   r/   r3   r4   rC   s	            r.   %test_pivot_with_list_like_values_nansz4TestPivotTable.test_pivot_with_list_like_values_nans  s    AAA555)))555	 
 
  	MXXE5XHHFFXbuVLLLF VS"&!$VS"&!$VS"&!$"&!RV$"&!RV$"&!RV$
 999FFFENUEN3<<.-
 
 

 $eWEEE"5/0088
fh/////r0   c                     t          g dg dg dd          }d}t          j        t          |          5  |                    dd           d d d            d S # 1 swxY w Y   d S )	NrZ   rb   rL   z=pivot\(\) missing 1 required keyword-only argument: 'columns'matchrM   rO   )r3   r2   r
   pytestraises	TypeErrorr"  )r-   rV   msgs      r.   #test_pivot_columns_none_raise_errorz2TestPivotTable.test_pivot_columns_none_raise_error0  s    IIIVVWWN]9C000 	2 	2HH6&H111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   AA #A zBMultiIndexed unstack with tuple names fails with KeyError GH#19966reasonc                    t          g d          }g dg dg dg dg dg dg}t          d	d
gddggg dg dg          }t          |||d          }|r|                    ddd          }nt	          j        |ddd          }t          ddgddg          t          ddgddg          t          ddgddg          d}t          |          }t          j        ||           d S ) Nr   r6   r    rI   rJ   rK   )r/   )r   r"   r6   r_   )r   r#   r    r`   )r   r$   rI   ra   )r   r"   rJ   re  )r   r#   rK   rf  )r   r$   r%  rg  r   r_  firstrI  r   rn  )r   r   rk  )r/   r3   r4   r   )r   r}  )r   rI  )r_  r}  r   r6   rJ   r   r   r   r    rK   rI   r%  r   )r   r   r
   r"  r   r   r8   r9   )r-   r  r3   r/   r4   rV   rW   rC   s           r.   test_pivot_with_multiindexz)TestPivotTable.test_pivot_with_multiindex7  sr    ---...                  
 ENWh$78<<.
 
 
 DwhOOO 	XX&)'   FF X&)'	  F Auen555Auen555Auen555
 

 T??
fh/////r0   c                    t          g dg dg dg dd          }t          j        t          d          5  |r|                    dd	d
           nt          j        |dd	d
           d d d            d S # 1 swxY w Y   d S )Nra  rb  rc  rd  rh  z^\('bar', 'baz'\)$rq  r`  r   )r   r_  r   )r
   rt  ru  KeyErrorr"  r   )r-   r  rV   s      r.   test_pivot_with_tuple_of_valuesz.TestPivotTable.test_pivot_with_tuple_of_valuesa  s    AAA555)))555	 
 
 ]8+@AAA 	P 	P PueNKKKK5%OOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   4A99A= A=Nr   c                 b   |ddg}|dg}|j         |j        d d         |f         }|                    |          |                                         }t	          j        ||d           |j        |k    sJ |                                }|j         |df         j        d d         }	|                    |          |                                         }
t	          j        |	|
d           |	j        |dfk    sJ |j         |df|f         }||                                         }||k    sJ d S )Nr"   r#   r$   r   Fcheck_names )	r)  r3   r>   r7   r8   r   r=   
sort_indexiloc)r-   rW   
values_colr/   r3   r4   margins_colcol_marginsexpected_col_marginsindex_marginsexpected_ix_marginsgrand_total_marginsexpected_total_marginss                r.   _check_outputzTestPivotTable._check_outputs  sS    =#JE?eGjcrc!2K!?@#||E22:>CCEE
{,@eTTTT;....""$$
K#45:3B3?"ll733J?DDFF
}.AuUUUU!k2%66666$j+r):K)GH!%j!1!6!6!8!8"&<<<<<<<r0   c                 r   |                     dddgddd          }|                     |d|           |                     dddgdddd	          }|                     |d|d
           |                     ddgddd          }|j        j        d         D ]}|                     ||         ||            d S )Nr%   r"   r#   r$   Tr7   )r2   r3   r4   r   rQ   Totals)r2   r3   r4   r   rQ   margins_name)r  r3   r4   r   rQ   r   )r   r  r4   r   )r-   r/   rW   rA   	value_cols        r.   test_marginszTestPivotTable.test_margins  s   !!sCj#tV " 
 
 	63--- !!*! " 
 
 	63(CCC   *c4 ! 
 
 -a0 	B 	BIuY/DAAAA	B 	Br0   c                 (   d |j         D             |_         t          j        d          }|rd}t          j        t
          |          5  |                    ddgdd	           d d d            n# 1 swxY w Y   |                    d
                              ddgdd	          }|j         D ]1}|j        d|f         }|||         	                                k    sJ 2t          j        t
          |          5  |                    ddgdd	           d d d            n# 1 swxY w Y   |                    d
                              ddgdd	          }dD ]1}|j        d|f         }|||         	                                k    sJ 2d S )Nc                     g | ]}|d z  S )r    r   )r   ks     r.   
<listcomp>z.TestPivotTable.test_no_col.<locals>.<listcomp>  s    444!A444r0   &agg function failed [how->mean,dtype->-dtype 'str' does not support operation 'mean'rq  AABBTr7   )r3   r   rQ   CCr   r   r  )DDEEFF)
r4   reescapert  ru  rv  r   r	  r)  r7   )r-   r/   using_infer_stringrw  rA   r  totalsitems           r.   test_no_colzTestPivotTable.test_no_col  si    54t|444i@AA 	BAC]9C000 	O 	OD$<vNNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O		$	''33,f 4 
 
  	4 	4IY{I56FT)_113333333]9C000 	O 	OD$<vNNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O		$	''33,f 4 
 
 ' 	/ 	/DY{D01FT$Z__.......	/ 	/s$   
A11A58A5>D%%D),D)z*columns, aggfunc, values, expected_columnsr"   r7   )      @r  皙@r  )r   r   皙@r  )r   r   r   r   r   r#   rP   )r         rK   r%  r!   )          r!   r!   r  ))r   r   )r   r   )r   r   )r   r   )r   r   )r   r   rq   c                    t          g dg dg dg dg dd          }|dk    rct          j        d          }|rd	}t          j        t
          |
          5  |                    |d|           d d d            n# 1 swxY w Y   d|vr|                    d          }|                    d                              |d|          }t          |t          ddg          |          }	t          j
        ||	           d S )N	r   r   r   r   r   r   r   r   r   	r   r   r   r   r   r   r   r   r   	smalllarger  r  r  r  r  r  r  	r6   r    r    rI   rI   rJ   rK   r%  r   	r    rJ   rK   rK   r%  r%     r   r   r"   r#   r$   r%   r&   rP   r  r  rq  T)r4   r   rQ   r#   r   r$   r%   r&   r   )r
   r  r  rt  ru  rv  r   r	  r   r8   r9   )
r-   r4   rQ   r2   r   r  rV   rw  rW   rC   s
             r.   %test_margin_with_only_columns_definedz4TestPivotTable.test_margin_with_only_columns_defined  s   D TTTTTT
 
 
 100000 
 
& e)DEEC! FEy444 O OwgNNNO O O O O O O O O O O O O O Og%%B%%11T7 2 
 
 V5#s+<+<FVWWW
fh/////s   A>>BBc                 D   |                                 }t          j        t          |          dz                                t          |          d                              d          |g d<   g t          t          ddgddg                    d}t          j	        |d	
          }t          g dg dd|                              dd          }|d         |d         z   |d<   |                    dddgdddd          }t          j        ||           d S )NrI   i8)r%   r&   r'   r   r   r   r   r  r   rq   )      rI   r   -   )!   r   $   3   x   r   r   r   r$   r6   r  r   r   r   r%   r"   r#   TrP   r   r2   r3   r4   r   rQ   rR   )copyr(   r   r:   r   rU   rT   r   r   rr   r
   rename_axisr   r8   r9   )r-   r/   rV   mi_valmirC   rW   s          r.   test_margins_dtypez!TestPivotTable.test_margins_dtype  s;    YY[[ iB!44<<SWWaHHOOPTUU???N4??@@N+N#F*==='''2F2F2FGGr
 
 

+c+
"
" 	 #6*Xg->>*   
 
 	h/////r0   c                 l   g t          t          ddgddg                    d}t          j        |d          }t	          g dg d	d
|                              dd          }|d         |d         z   |d<   |                    dddgddt          d          }t          j	        ||           d S )Nr   r   r   r   r  r   rq   )r6   r6   r    r6   rK   )r    r   r    r    r%  r  r   r$   r6   r  r   r   r   r%   r"   r#   Tr   r  )
rT   r   r   rr   r
   r  r   r:   r8   r9   )r-   r/   r  r  rC   rW   s         r.   test_margins_dtype_lenz%TestPivotTable.test_margins_dtype_len  s    N4??@@N+N#F*===$__??r
 
 

+c+
"
" 	 #6*Xg->>!!* " 
 
 	h/////r0   rd   ))r6   r    r[   r\   r'  )r[   r6   c           	      2   t          |d         g d|d         g ddg di          }|                    d|          }t          g dgt          j        g d|	          t	          dg|d
k    rdnd                    }t          j        ||           d S )Nr   rb   r6   r   )rJ   rK   r%  )r2   r4   )r   r   r   ))r6   r6   )r    r    )rI   rI   rq   r  strrk  r   r4   r3   )r
   r   r   rr   r   r8   r9   )r-   rd   df2rW   rC   s        r.    test_pivot_table_multiindex_onlyz/TestPivotTable.test_pivot_table_multiindex_only2  s     a)))T!WiiiiiiPQQT::__*+C+C+C4PPPdj.@.@UUhOOO
 
 
 	fh/////r0   c                    t          ddd          }t          t          j                            d                              d          t          j                            d                              d          |d          }|                    ddgd	
          }|j        j        d         	                    |          sJ d S )Nz
2016-01-01rI   zEurope/Amsterdam)r   rC  r    r   r#   r$   F)r3   rp   r6   )
r   r
   r(   r)   r*   r+   r   r3   r   equals)r-   dtirV   rW   s       r.   test_pivot_table_retains_tzz*TestPivotTable.test_pivot_table_retains_tz@  s    q5GHHHY**1--==a@@Y**1--==a@@ 
 
 sCj?? |"1%,,S1111111r0   c                    t           j        t          t          ddgg dddgfdt	          d          D             dg                    }t          |          }|                    d	g d
dg          }|                    t                    }|                    dg ddg          }t          j
        ||d           d S )Nr   r   r   x1x2c                 4    g | ]}t          |          z   S r   )r   )r   r   rk   s     r.   r  z=TestPivotTable.test_pivot_integer_columns.<locals>.<listcomp>W  s$    555aYq\\!555r0   r!  r~   rJ   )r   r6   rI   r    )r2   r3   r4   r   4)0132Fr  )r   rK  rT   r   r   r
   r   renamer  r8   r9   )r-   r/   rV   rA   r  rB   rk   s         @r.   test_pivot_integer_columnsz)TestPivotTable.test_pivot_integer_columnsN  s     Ht5555599555 
 
 t__ayyy1#FFiii$$???SERR
eV??????r0   c                    t          g ddz  g ddz  dgdz  dgdz  z   dz  t          j                            d                              d          d          }|                    d	d
ddg          }|                    g d          d	                                         }|                    d                              d          	                    dd          }t          j        ||           d S )N)r[   r[   r[   r[   r\   r\   r\   r\   r    )r   r   r   r   r6   r6   r6   r6   r   rJ   r      )r[   r\   r]   valuer  r[   r\   r]   r   rZ   r6   all)r  how)r
   r(   r)   r*   r+   r   r>   r7   r@   rp   r8   r9   )r-   r/   rA   groupedrC   s        r.   test_pivot_no_level_overlapz*TestPivotTable.test_pivot_no_level_overlapc  s    ===A---1gkUGaK/14..q11AA"EE	 
 
   c3Z HH,,//8==????3''//44;;;NN
eX.....r0   c           
         d}t          j        dt          fdt          fdt          fdt          fdt          fdt          fdt          fg          }t          j        g d	dt          fdt          fg
          }t          j        ||
          }t           j                            d          	                    dt          |          |          }|d         |         |d<   |d         |         |d<   t          t          ddd          t          ddd                    }|t           j                            d          	                    dt          |          |                   }|j        |d<   |j        |d<   |j        |d<   t           j                            d                              dd|          |d<   t#          |          }|                    dddgg dd          }	|	j        j        sJ d S )Ni'  r   SymbolYearMonthDayQuantityPrice)	)SP500ADBE)r  NVDA)r  ORCL)NDQ100AAPL)r  MSFT)r  GOOG)FTSEzDGE.L)r  zTSCO.L)r  zGSK.Lr   r    r   i  r6   i  r     r   r   )r   r  r  r7   r3   r4   rQ   )r(   r   rk  intr   arrayemptyr)   r*   integersr:   r   r   yearrn   r   	lognormalr
   r   r4   is_monotonic_increasing)
r-   nr   productsitemsiproductdrdatesrV   pivoteds
             r.   test_pivot_columns_lexsortedz+TestPivotTable.test_pivot_columns_lexsortedu  s   &!6"#S!% 

 

 8
 
 
 V$x&89
 
 
 %(((9((++44QHqII!'*84g"8,X6hT1a(($tR*<*<==29((++44QBCCD
fgye..q11;;CaHHgu..E"///	 ! 
 
 666666r0   c                     dgdgd}|                     ddg                              |                              d          }|                    dd|          }t	          j        ||           d S )Nr  rP   r%   r&   r"   r#   r  )r>   r?   r@   r   r8   r9   )r-   r/   r   rC   rW   s        r.   test_pivot_complex_aggfuncz)TestPivotTable.test_pivot_complex_aggfunc  sw    '((<<c
++//22::3??!!S!!DD
fh/////r0   c                     |ddg                              ddgt          d          }|                                }t          |d d                   |d         k    sJ d S )Nr"   r#   T)r3   rQ   r   r   )r   r:   tolistrP   )r-   r/   rW   result_lists       r.   test_margins_no_values_no_colsz-TestPivotTable.test_margins_no_values_no_cols  sk    sCj!--*c4 . 
 
 mmoo;ss#$$B777777r0   c                     |g d                              ddgdt          d          }|j                                        g dk    sJ d S )Nr   r"   r#   r$   Tr3   r4   rQ   r   r   r~   r   r         &@r   r:   r   r  r-   r/   rW   s      r.   test_margins_no_values_two_rowsz.TestPivotTable.test_margins_no_values_two_rows  sb     ooo&22*c3 3 
 
 z  ""&@&@&@@@@@@@r0   c                     |ddg                              ddt          d          }|j                                        g dk    sJ d S )Nr"   r#   Tr  )r   r   r  r  r  s      r.   &test_margins_no_values_one_row_one_colz5TestPivotTable.test_margins_no_values_one_row_one_col  s^     sCj!--sC . 
 
 z  ""&6&6&6666666r0   c                     g d|d<   |g d                              ddgddgt          d          }|j                                        g d	k    sJ d S )
N)r[   r\   r]   rk   er   ghr   jr  r%   r"   r#   r$   r%   r"   r#   r$   Tr  r  r  r  s      r.   'test_margins_no_values_two_row_two_colsz6TestPivotTable.test_margins_no_values_two_row_two_cols  sy     LKKS	***+77*sCj#t 8 
 
 z  ""&@&@&@@@@@@@r0   margin_namer   r   i  r[   r\   c           	         d| d}t          j        t          |          5  t          |dddgdgd|	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          |ddgddgd|	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          |ddgdgd|	           d d d            d S # 1 swxY w Y   d S )
NzConflicting name "z3" in margins|margins_name argument must be a stringrq  r%   r"   r#   r$   T)r2   r3   r4   r   r  )rt  ru  
ValueErrorr   )r-   r#  r/   rw  s       r.   -test_pivot_table_with_margins_set_margin_namez<TestPivotTable.test_pivot_table_with_margins_set_margin_name  s   5 5 5 5 	 ]:S111 		 		Cj(   		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 ]:S111 		 		ec
(   		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 ]:S111 		 		e(   		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s5   AAA-BBB8CC!$C!c                 
   t          d                                d                                g dt          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          gd	                              d
          }t          t	          j        g dd                              dd          t          j        t          ddd          gd          d                                          }d
|j	        _
        d|j        _
        t          |t          d          ddd          }t          j        ||           t          |dt          d          dd          }t          j        ||j                   t          t	          j        dt          j        dddt          j        g                              dd          t          j        t          ddd          t          ddd          gd          d                                          }d
|j	        _
        d|j        _
        t          |t          d          ddd          }t          j        ||           t          |dt          d          dd          }t          j        ||j                   |                                }t          |t          dd
          ddd          }t          j        ||           t          |dt          dd
          dd          }t          j        ||j                   d}t'          j        t*          |          5  t          |t          dd          ddd           d d d            n# 1 swxY w Y   t'          j        t*          |          5  t          |dt          dd          dd           d d d            n# 1 swxY w Y   |                    d
          }t          |t          dd
           ddd          }t          j        ||           t          |dt          dd
           dd          }t          j        ||j                   d!}t'          j        t,          |          5  t          |t          dd           ddd           d d d            n# 1 swxY w Y   t'          j        t,          |          5  t          |dt          dd           dd           d d d            d S # 1 swxY w Y   d S )"NA A A A A A A B$Carl Mark Carl Carl Joe Joe Joe Carlr6   rI   rK   r6   r  r6   r   rI   r1  r6   r   r    r  )BranchBuyerr  Dater-  )r   r  rI   r   r   rI   r  r   r   zCarl Joe Markr   r,  r  rP   r3   r4   r2   rQ   r   r  r   6MSr   r   z#'The grouper name foo is not found'rq  r   )r   r   zThe level foo is not valid)r
   splitr   rL  r(   r  r   r   r   r3   r=   r4   r   r   r8   r9   rf   r   r   rt  ru  r  r%  )r-   rV   rC   rW   rw  s        r.   test_pivot_timegrouperz%TestPivotTable.test_pivot_timegrouper  s   +1133?EEGG444T1a((T1a((T2q))T2q))T2q))T2q))T2q))T2q))		 
 
  )F

! 	$ H[[[00088A>>"HT2r$:$:#;$GGG#))++
 
 

 % 't$$$
 
 
 	fh///&&&
 
 
 	fhj111HaAr26233;;AqAA"$1%%xa';';<5   $))++
 
 
 % 'u%%%
 
 
 	fh///'''
 
 
 	fhj111 ^^u&111
 
 
 	fh///F333
 
 
 	fhj1113]83/// 	 	5e444!   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]83/// 	 	U666!   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 \\&!!uF333
 
 
 	fh///f555
 
 
 	fhj111*]:S111 	 	5666!   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	 	U%888!   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   $OOO*$PP!P$S<<T T "$UUUc                 
   t          d                                d                                g dt          ddddd          t          dd	ddd
          t          ddddd          t          ddddd          t          ddddd          t          ddddd          t          ddddd          t          ddd
dd          gt          ddddd          t          ddddd
          t          dd	d
dd          t          ddddd          t          ddddd          t          dd	d
dd          t          ddddd          t          ddddd          gd          }t          |t	          dd          t	          dd          dd          }t          t          j        t
          j        dt
          j        t
          j        dt
          j        dd	t
          j        d	t
          j        t
          j        t
          j        t
          j        dt
          j        g                              dd          t          j
        t          dd	d          t          ddd          t          ddd          t          ddd          gd          t          j
        t          dd	d          t          ddd          t          ddd          t          ddd          gd                     }d|j        _        d|j        _        t          j        ||           t          |t	          dd          t	          dd          dd          }t          j        ||j                   t          dd	d          t          ddd          ft          ddd          t          dd	d          ft          ddd          t          ddd          ft          ddd          t          ddd          ft          ddd          t          ddd          ft          ddd          t          ddd          fg}t#          j        |ddg!          }t          t          j        dt
          j        dt
          j        dt
          j        d	t
          j        d	t
          j        t
          j        dg                              dd          |d"d#g           }d$|j        _        t          |t	          dd          t	          dd          gd$gdd          }t          j        ||           t          |d$gt	          dd          t	          dd          gdd          }t          j        ||j                   d S )%Nr(  r)  r*  r1  r!   r6   r  r   r   rK   r   r!  r    r  r  rJ   r  r      )r+  r,  r  r-  PayDayr   r-  r0  r5  r  rP   r.  rI   r%  r  r   r   rq   r"   r#   r+  )r
   r1  r   r   r   r(   r  r   r   r   r   r3   r=   r4   r8   r9   rf   r   rr   )r-   rV   rW   rC   tuplesr  s         r.   test_pivot_timegrouper_doublez,TestPivotTable.test_pivot_timegrouper_double  s   +1133?EEGG444T2q"a00T1aQ//T2q"a00T2q"a00T2q"a00T2q"a00T2q"a00T2q"a00	 T2q!Q//T2r2q11T1aQ//T2q"a00T2q"a00T1aQ//T2r2q11T2r2q11	 
 
8 t0008444
 
 
 HFFFFFFFFFF! & gamm"T1b))T2r**T2r**T2r**	    $T1b))T2r**T2r**T2r**	   ='
 '
 '
P % (
fh///t2226222
 
 
 	fhj111 dAr""HT2r$:$:;dB##XdAr%:%:;dB##XdB%;%;<dB##XdB%;%;<dB##XdB%;%;<dB##XdB%;%;<
 $VFH3EFFFHBFArvq"&!RVQPQR gamm#J
 
 
 !)&1117(3S3S3STJ
 
 
 	fh///*$F333W$H5U5U5UV
 
 
 	fhj11111r0   c           	         t          j        g ddd          }t          j        g dd          }t          g d||t          j        d	d
          ddgdz  d          }|d d         }t          ddg          }t          ddgd          }t          j        ||g          }t          ddgddgddgg||          }t          |dgdgdg          }	t          j
        |	|           t          g d          }t          g ddz            }t          j        ddgd z  dd!          }
t          j        |||
g          }t          t          j        g d"g d#g d$gd
          ||d d                    }t          t          j        g d%g d&g d'g          ||d d                    }t          ||gd(          }t          |dgd!gdd)gd*d+g,          }	t          j
        |	|           d S )-N2011-07-19 07:00:002011-07-19 08:00:002011-07-19 09:00:00r:  r;  r<  zM8[ns, US/Pacific]r3  r   r=   2013-01-01 15:00:00r?  r?  2013-02-01 15:00:00r@  r@  zM8[ns, Asia/Tokyo]r   r[   r[   r[   r\   r\   r\   r%  r   r6   r    rI   labelr3  r4  value1value2rD  r[   r\   rC  r   r   r   r~   r   r   r   r   r   )rP   rP   rP   rP   r7   r7   r7   r7   )rD  rD  rE  rE  r?  r@  rJ   r4  )r   rI   r6   r    )r6   rJ   r    r6   )r    rK   r6   r    )r   r   r~   r   )r~   r   r   r~   )r   r   r~   r   r  rE  rP   r7   r.  )r   r   r
   r(   r   r   r   r   r   r8   r9   r  r   )r-   dates1dates2rV   r>  r;  r<  r=  rC   rW   exp_col3	expected1	expected2s                r.   test_pivot_datetime_tzz%TestPivotTable.test_pivot_datetime_tz
  s   !   '
 
 
 !   '

 

 

 777)AW555a&1* 
 
 !*(H-..#s'222((H)=>>3Z#sc3Z0
 
 
 Rw	8*UUU
fh///UUUVVAAAAEFF#"$9:Q>&
 
 

 ((Hh)GHHH   !LL LL	    BQBK
 
 
	" H(((((((((  ABBK

 

 

	 9i0q999'Gh'FO
 
 
 	fh/////r0   c                    t          j        g d          }t          j        g d          }t          g d||t          j        dd          ddgd	z  d
          }t          |d|d         j        j        d          }t          ddgd          }t          ddgddgddgd|t          g dt          j	        d                    }t          j        ||           t          ||d         j        j        |d         j        j        d          }t          ddgddgddgdt          ddgt          j	        d          t          g dt          j	        d                    }t          j        ||           t          ||d         j        j        j        |d         j        j        |d         j        j        gd          }t          j        t          j        g dt          j	                  t          j        ddgd	z  t          j	                  gddg          }t          t          j        g dg          t          dgt          j	                  |          }t          j        ||           t          |t          j        g d           |d         j        j        |d         j        j        gd          }t          t          j        d!d	dt          j        dt          j        gt          j        t          j        t          j        d"t          j        d#gg          d$d%g|          }t          j        ||           d S )&Nr9  r>  rA  r%  r   r   r6   r    rI   rB  rC  r3  rD  r   r[   r\   r   r   r   r~   r   r   r   r   r  r   r=  r   r4  )r   r   r  r  r   r   rq   )r   r   r~   r   r   r   r1  )XrN  rN  rN  YrO  r   rJ   rK   rN  rO  )r   r   r
   r(   r   r   r   rG  r   r   r8   r9   rn   r  r2   r   r   r  r   )r-   rF  rG  rV   rW   r>  rC   r=  s           r.   test_pivot_dtaccessorz$TestPivotTable.test_pivot_dtaccessore  s   !  	
 	
 !  	
 	
 777)AW555a&1* 
 
 gr%y|'8
 
 
 c
111c
SzsCj99)))28%@@@
 
 

 	fh///bil("U),2CH
 
 
 c
SzsCj99AbhU;;;)))28%@@@
 
 

 	fh///U),#*Y\&5	(:;	
 
 
 (+++28<<<!Q!28444 %.
 
 
 H444566bh///
 
 

 	fh///(999::Y\&5	(:;	
 
 
 HQ261bf-26ST/UV  *
 
 
 	fh/////r0   c                    t          ddd          }t          t          j        t	          |                    |          }t          t          |          |j        j        |j        j	                  }|j
                            d          |_
        t          j        |j        j	                  }i }|j        j                                        j        D ]7}|j        j        |k    }t          |j        |         ||                   ||<   8t          |t                    j        }|j                            t          j                  |_        t'          j        ||           d S )	N1/1/2000
12/31/2004r%   r   r   r   r   r   )r   r   r(   r   r:   r   r
   r3   r  	dayofyearr4   	droplevelasarrayr   r2   r   rf   rU   r   r8   r9   )r-   rngrE  rW   doyrC   r`   masks           r.   
test_dailyzTestPivotTable.test_daily  s/   \<<<BIc#hh''s333bMM8J
 
 
  11!44j+,,%%''. 	C 	CA8=A%D 4D	BBBHQKKXU3335!..rx88
fh/////r0   c                    t          ddd          }t          t          j        t	          |                    |          }t          t          |          |j        j        |j        j	                  }|j
                            d          |_
        t          j        |j        j	                  }i }|j        j                                        j        D ]7}|j        j        |k    }t          |j        |         ||                   ||<   8t          |t                    j        }|j                            t          j                  |_        t'          j        ||           d S )	NrR  rS  r   r   r   r   r   r   )r   r   r(   r   r:   r   r
   r3   r  rn   r4   rU  rV  r   r2   r   rf   rU   r   r8   r9   )r-   rW  rE  rW   rn   rC   r`   rY  s           r.   test_monthlyzTestPivotTable.test_monthly  s$   \===BIc#hh''s333Yr]]"(-XXX11!44
28>**%%''. 	E 	EA8=A%D 4dDDDHQKKXU3335!..rx88
fh/////r0   c                 V   ddd}t          |dgt          |                                          |          }t          |dg|                                |          }t          j        ||           d |D             }t          |dg||          }t          j        ||           d S )NrP   r7   r  r"   )r3   r2   rQ   c              3      K   | ]}|V  d S Nr   )r   r  s     r.   	<genexpr>zGTestPivotTable.test_pivot_table_with_iterator_values.<locals>.<genexpr>  s"      22E%222222r0   )r   rT   r  r8   r9   )r-   r/   aggspivot_values_listpivot_values_keysagg_values_genpivot_values_gens          r.   %test_pivot_table_with_iterator_valuesz4TestPivotTable.test_pivot_table_with_iterator_values  s    (('d499;;&7&7
 
 
 (diikk4
 
 
 	/1BCCC22T222&nd
 
 
 	.0ABBBBBr0   c                 @   d}t          g dg dg dd          }|                    ddd|d	d
g          }t          dd|gd          }ddd	d|fddd
d|fg}t          j        |g d          }t          |j        ||          }t          j        ||           d S )NWeekly)baconcheeseri  rj  )r   r   g	@gffffff
@)r   r   rf   rf   )r  costr   r  r   Tr7   max)r3   r4   r   r  rQ   ri  rj  r   )r7   rk  r   )r7   rk  rf   rk  )rl  rk  r   )rl  rk  rf   )NNr   rq   r   )r
   r   r   r   rr   r2   r8   r9   )r-   r  costsrA   ixtupsrd   rC   s           r.   /test_pivot_table_margins_name_with_aggfunc_listz>TestPivotTable.test_pivot_table_margins_name_with_aggfunc_list  s    >>>,,,--- 
 
 !!%UO " 
 
 GX|46BBB"!V\*! FL)
 %d2E2E2EFFFU\TBBB
eX.....r0   c                    t          t          j        d          t          j        d          dz  t          j        d          dz  d          }t          g dg dg dg          }t          g dd	
          |_        t          g dd
          |_        |                    dd	d|d          }t          j        ||           d S )Nr  rJ   r    r^   r~   r   r   rK   r%  r  rI   rJ   r   r   r6   r   r`   r   ra   r_   T)rp   r   )	r
   r(   r   r   r3   r4   r   r8   r9   r-   r5   rV   rC   rA   s        r.   test_categorical_marginsz'TestPivotTable.test_categorical_margins  s    )A,,RYq\\Q%6RYq\\A=MNN
 
 ooo{{{KKKHII}}}3777 S999sCXtLL
eX.....r0   c                    t          t          j        d          t          j        d          dz  t          j        d          dz  d          }t          g dg dg dg          }t          g dd	
          |_        t          g dd
          |_        |j                            d          |_        |j                            d          |_        |	                    dd	d|dd          }t          j        ||           d S )Nr  rJ   r    r^   rr  rs  rt  ru  r`   r   ra   rS   r_   TF)rp   r   r5   )r
   r(   r   r   r3   r4   r`   rU   ra   r   r8   r9   rv  s        r.   !test_categorical_margins_categoryz0TestPivotTable.test_categorical_margins_category!  s    )A,,RYq\\Q%6RYq\\A=MNN
 
 ooo{{{KKKHII}}}3777 S999t{{:&&t{{:&&c(D5  
 
 	eX.....r0   c                     t          g dg dg dg dd          }t          |dd          }t          g d	g d
g ddt          g dd                    }t          j        ||           d S )N)r    rJ   r%  r  )r6   rJ   rK   r  )r6   rI   rJ   r%  )rN  rN  rO  rO  r!  r%   T)r3   r   )r   r   rK   )r   g      @r   )r   r   r   r   )rN  rO  r   r   r   r
   r   r   r8   r9   r-   rV   rW   rC   s       r.   test_margins_casted_to_floatz+TestPivotTable.test_margins_casted_to_float1  s    !\\!\\!\\)))	 
 
 RsD999--oooOOOLL)))444
 
 
 	fh/////r0   c                    t           j        dddt           j        g}t           j        ddt           j        dg}t          t          |ddg|          t          |ddg|          t	          dd          d          }|                    d	d
d|          }t          j        ddg|d
          }t          dt           j        gt           j        dgg|          }t          t          ddgddg|          d	          |_	        t          j        ||           |                    d
d|          }t          ddgg|t          dg                    }t          j        ||           d S )Nr   r   r"   r#   rz   r6   r%  )InColValr  r  r  )r3   r4   r2   r5   )r|   r=   r   r   )r/   r4   r   )r4   r2   r5   r   )r/   r4   r3   )r(   r   r
   r	   r   r   r   CategoricalIndexr   r3   r8   r9   )	r-   r5   r|   r  r   rV   rW   expected_colsrC   s	            r.   test_pivot_with_categoricalz*TestPivotTable.test_pivot_with_categoricalC  s   vufeRV4vsC-!#5&/7SSS"3C:wOOOQ{{ 
 
 eh   
 
 +S#JeTTTC=263-"@-XXXUFOWUUU
 
 

 	fh/// ehOO*}E5'NN
 
 
 	fh/////r0   c                    t          g dg dg dd          }|d                             d          |d<   |                    ddd|d	d
          }t          j        g dg dd
d          }t          ddgd          }t          j        ddgddgddggt          j                  }t          |||          }t          j
        ||           d S )N)r"   r#   r$   r$   ry   r}   )r  r  Vr  rS   r  r  countF)r3   r4   rp   rQ   r5   r   r{   r|   r=   r[   r\   r   r6   r   r    r   r   )r
   rU   r   r   r  r   r(   r  r   r8   r9   )r-   r5   rV   rW   r   r   expected_datarC   s           r.   test_categorical_aggfuncz'TestPivotTable.test_categorical_aggfuncf  s   '''/C/C/C,,,WW
 
 d8??:..4   
 
 ,OOT
 
 
 !#s$7771a&1a&1a&!9JJJ9I
 
 
 	fh/////r0   c                    t          g dg dg dd          }g d}|d                             d          j                            |          |d<   |                    ddd	|d
          }t          ddgd	d          }t          j        ||dd          }ddggddggdz  z   }t          |||          }|r|j        dg         }t          j
        ||           d S )N)r&  r     )Januaryr  r  )r1  r2  r1  )Salesr  r  )r  FebruaryMarchAprilMayJuneJulyAugust	SeptemberOctoberNovemberDecemberr  rS   r  r  rP   )r2   r3   r4   r5   rQ   r1  r2  r   r8  Fr  i@  r  r   r!   r   r  )r
   rU   r   set_categoriesr   r   r   r  r)  r8   r9   )	r-   r5   rV   monthsrW   r   r   r  rC   s	            r.   %test_categorical_pivot_index_orderingz4TestPivotTable.test_categorical_pivot_index_ordering  s>   (:::*** 
 

 
 
 k((448GGOO7   
 
 !$F'JJJ,vu7
 
 
 sAx"}49I
 
 
  	1|YK0H
fh/////r0   c                 &   t          g dg dg dd          }|                    dddgd	          }t          j        g dg dgddg
          }t          g d|dg          }t	          j        ||           |                    dddd          }t          dt          j        t          j        gt          j        dt          j        gt          j        t          j        dggt          g dd          t          g dd                    }t	          j        ||           |                    dddg	          }t          j        dgdgg          }t          g dt          g dd          |          }t	          j        ||           d S )N)rI   rJ   rK   )r$   r%   r&   )r6   rI   r   rL   rM   rO   rN   rP   re   rq   r   r  rI   rJ   rK   r   )	r
   r   r   r   r8   r9   r(   r   r   )r-   rV   rW   rv   rC   s        r.   test_pivot_table_not_seriesz*TestPivotTable.test_pivot_table_not_series  s   
 			???IIIVVWWvv.>NN"III#?PVGWXXXYYYa&BBB
fh///ffeTT 261bf"57JK			//////777
 
 
 	fh///fugFF"UGfX#677YYYeIIIF.K.K.KUVWWW
fh/////r0   c                 
   d}t          dg dit          dgt                              }t          |dgt          d|          }t          dd	d
|gdd          }t          |g           }t          j        ||           d S )Nu   Δοκιμήr   rb   r   r   T)r3   rQ   r   r  r6   r    rI   rk  r=  r   )r
   r   rk  r   r:   r8   r9   )r-   greekframerA   r3   rC   s         r.   test_pivot_margins_name_unicodez.TestPivotTable.test_pivot_margins_name_unicode  s    65))),eUG66R6R6RSSS%#t%
 
 
 q!Q&hUCCC5"555
eX.....r0   c                 >   t          g dg dt          d          d          }t          |ddd          }t          d	gd
dggddgddggd dg          }t          ddddddd|                              d          }t          j        ||           t          |ddddg          }t          ddgd	gd
dggg dg dg dgg d          }t          ddddddddddddd|                              d          }t          j        ||           d S ) Nr   r   r!   r   r"   r#   rP   r  r$   r   r   r   r6   rj  r  r  )r   r   r   r!  ))r$   r   )r$   r   r   r7   r   )r   r   r   r   rn  )NNr#   r   r   r   g@))r7   r$   r   )r7   r$   r   )rP   r$   r   )rP   r$   r   )r
   r   r   r   r  r8   r9   )r-   r/   rW   r  rC   s        r.   test_pivot_string_as_funcz(TestPivotTable.test_pivot_string_as_func  s         2YY7 
 
@ Tc5IIIEE5>*Aq6Aq62B4QT+
 
 
 #%b11SUAVAVWW
 
 
 +c

 	 	fh///TcE6?SSSFOcUUEN;<<|||<###
 
 

 .1$&?&?.1:K&L&L-/%;%;-.r%:%:	  
 
 
 +c

 	 	fh/////r0   kwargsr    r  )r\   r[   c                     ddfd}t          g dg dg dd          }t          |fdd	d
d}t          |dd	d
|          }t          j        ||           d S )NrI   c                 6    |                                  |z  |z   S r_  rP   r_   r[   r\   s      r.   r   z1TestPivotTable.test_pivot_table_kwargs.<locals>.f  s    5577Q;?"r0   c                      | fi S r_  r   r_   r   r  s    r.   r  z1TestPivotTable.test_pivot_table_kwargs.<locals>.g      1Q>>&>>!r0   )goodbadr  r  r  )r   r   r   threer   )r    rK   rJ   r!  r   )r"   r#   rN  r"   r#   rN  r.  )rI   r
   r   r8   r9   )r-   r  r  rV   rW   rC   r   s    `    @r.   test_pivot_table_kwargsz&TestPivotTable.test_pivot_table_kwargs  s    	# 	# 	# 	#	" 	" 	" 	" 	" 	" ;;;:::&&& 
 
 
3sA
 
AG
 
 rc#qQQQ
fh/////r0   r   c           
          ddfd} |j         ddddgdd	d
d}|                     dddgd|d	d
          }t          j        ||           d S )NrK   r   c                 6    |                                  |z   |z  S r_  r  r  s      r.   r   z8TestPivotTable.test_pivot_table_kwargs_margin.<locals>.f+  s    EEGGaK1$$r0   c                      | fi S r_  r   r  s    r.   r  z8TestPivotTable.test_pivot_table_kwargs_margin.<locals>.g.  r  r0   r%   r"   r#   r$   Tr   )r2   r3   r4   rQ   r   rR   )rK   r   r   )r   r8   r9   )r-   r/   r  r  rW   rC   r   s     `   @r.   test_pivot_table_kwargs_marginz-TestPivotTable.test_pivot_table_kwargs_margin&  s    
	% 	% 	% 	%	" 	" 	" 	" 	" 	" "! 
*
 
 
 
 ##* $ 
 
 	fh/////r0   z
f, f_numpyrK  rl  c                     |                     d          }t          |dd|          }t          |dd|          }t          j        ||           d S )Nr$   r   r"   r#   r  )r	  r   r8   r9   )r-   r   f_numpyr/   rW   rC   s         r.   test_pivot_string_func_vs_funcz-TestPivotTable.test_pivot_string_func_vs_funcF  s\     yyy%%Tc1EEEt3WMMM
fh/////r0   c           	      .    G d dt           j                  }|                                5 }|                    t           d|           t	          t          j        d          t          j        d          dd          }d}t          j        ||          5  t          j
        t          d	          5  |                    d
ddd           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                   (     e Zd Zd fdZddZ xZS )YTestPivotTable.test_pivot_number_of_levels_larger_than_int32_warns.<locals>.MockUnstackerreturnNc                 T     t                      j        |i | t          d          )NDon't compute final result.)super__init__	Exception)r-   argsr  	__class__s      r.   r  zbTestPivotTable.test_pivot_number_of_levels_larger_than_int32_warns.<locals>.MockUnstacker.__init__`  s.      $1&111 =>>>r0   c                     d S r_  r   r,   s    r.   _make_selectorsziTestPivotTable.test_pivot_number_of_levels_larger_than_int32_warns.<locals>.MockUnstacker._make_selectorse  s    r0   )r  N)__name__
__module____qualname__r  r  __classcell__)r  s   @r.   MockUnstackerr  _  sQ        ? ? ? ? ? ?
       r0   r  
_Unstackeri   r   )ind1ind2r  z$The following operation may generaterq  r  r  r  r  r.  )reshape_libr  contextsetattrr
   r(   r   r8   assert_produces_warningrt  ru  r  r   )r-   performance_warningmonkeypatchr  rv   rV   rw  s          r.   3test_pivot_number_of_levels_larger_than_int32_warnszBTestPivotTable.test_pivot_number_of_levels_larger_than_int32_warnsY  s   	 	 	 	 	K2 	 	 	   "" 	aIIk<???5))29U3C3CaPP B 9C+,?sKKK  ]94QRRR  NN$fWg #                               	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sZ   A,D
C25CC2CC2"C#C2&D
2C6	6D
9C6	:D

DDc                    t          g dg dg dd          }d }d }d }t          |d|||g|	          }d
dt          j        t          j        ddgddt          j        t          j        ddgg}t	          j        g dddggd dg          }t          |ddg|          }	|r|	                    d          }	t          j        ||	           d S )N)applepeachr  r6   r6   r    )r   r%  r%  )fruitsizetastec                     dS )Nr6   r   r   s    r.   ret_onez?TestPivotTable.test_pivot_table_aggfunc_dropna.<locals>.ret_one  s    1r0   c                      t          |           S r_  r  r   s    r.   ret_sumz?TestPivotTable.test_pivot_table_aggfunc_dropna.<locals>.ret_sum  s    q66Mr0   c                     t           j        S r_  )r(   r   r   s    r.   ret_nonez@TestPivotTable.test_pivot_table_aggfunc_dropna.<locals>.ret_none  s	    6Mr0   r  r4   rQ   rp   rI   r6   r  r%  )r  r  r  r  r  rq   r  r  r   r4   r  )	r
   r   r(   r   r   from_productrp   r8   r9   )
r-   rp   rV   r  r  r  rW   r/   r   rC   s
             r.   test_pivot_table_aggfunc_dropnaz.TestPivotTable.test_pivot_table_aggfunc_dropnau  s3   444!		" 
 
	 	 		 	 		 	 	 '8W)Ef
 
 
 Arvrvq!,r1bfbfa.KL%///'71CD/
 
 
 T&'):CHHH 	7I66H
fh/////r0   c                 ~   t          g ddt          j        dgdt          j        t          j        gd          }t          |dd|          }d	t          j        gdt          j        gg}t	          d
dgd          }t          |ddg|          }|r|                    d          }t          j        ||           d S )N)r   r   r   rI   r    r6   )r"   r_   r`   r"   r7   r  r   r   r   r   r_   r`   r   r4   r  )r
   r(   r   r   r   rp   r8   r9   )r-   rp   rV   rW   r/   r   rC   s          r.   &test_pivot_table_aggfunc_scalar_dropnaz5TestPivotTable.test_pivot_table_aggfunc_scalar_dropna  s    '''q"&!nArvrvCVWW
 
 RfVLLLbf26{+UEN---T#sSAAA 	7I66H
fh/////r0   r   c                    t          g dg dg dg dd          }|                    dddt          j        |	          }t	          g d
          }t          t	          g dd          |          }t          j        ||           d S )N)r    r    rI   rI   r    )rK   r%  r   r  r   )pre  re  r  re  )NNNNN)r"   idr$   r%   r"   r%   r  )r3   r4   r2   rQ   r   r   r   r=  r   )r
   r   r(   r  r   r8   r9   )r-   r   rV   rW   exp_colsrC   s         r.   test_pivot_table_empty_aggfuncz-TestPivotTable.test_pivot_table_empty_aggfunc  s     $__%oo...333	 
 
 s4'   
 
 #&&&57#E#E#ExXXX
fh/////r0   c                     d }t          g dg dg dd          }t          j        t          d          5  |                    ddd	|
           d d d            d S # 1 swxY w Y   d S )Nc                 *    t          j        |           S r_  )r(   r7   )arrs    r.   r?   z=TestPivotTable.test_pivot_table_no_column_raises.<locals>.agg  s    73<<r0   r   rn  )r   r!  r4  (   )rN  rO  Z
notpresentrq  rN  rO  )rQ   )r
   rt  ru  r  r   )r-   r?   rV   s      r.   !test_pivot_table_no_column_raisesz0TestPivotTable.test_pivot_table_no_column_raises  s    	  	  	  \\\CSCSCSTTUU]8<888 	@ 	@NN<c3N???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AA#&A#c                 
   t          g dg dg dg dg dd          }t          |ddgd	d
gdg dd          }t          j        g d          }t          j        g dd	d
g          }t	          j        g dg dg dg dg          }t          |||          }|d                             t          j                  |d<   |d                             t          j                  |d<   t          j	        ||           d S )Nr  r  r  r  r  r  r%   r&   r"   r$   r7   )rK  rl  r7   r  )r2   r3   rQ   ))r%   r7   r&   rl  )r&   r7   r&   rK  ))r   r  )r   r  )r   r  )r   r  rq   )r        "@g      @r   )r  r  g      !@r   )r   r   r   r   )g["8@r   g.UUU@r   r  r  r  )
r
   r   r   rr   r(   r  rU   r   r8   r9   )r-   rV   rA   rd   r3   valsrC   s          r.   0test_pivot_table_multiindex_columns_doctest_casez?TestPivotTable.test_pivot_table_multiindex_columns_doctest_case  sz    TTTTTT
 
 
 100000 
 
( :* '='='=>>	
 
 
 %FFF
 
 &TTT*
 
 
 x$$$$$$$$$222	
 
 T4u===!),!7!>!>rx!H!H!),!7!>!>rx!H!H
eX.....r0   c           	      l   t          g dg dg dg dd          }|                    ddgdd	d
d          }t          dt          j        gdt          j        gt          j        dggt	          ddgd          t          j        g dg dgddg                    }t          j        ||           d S )N)d1d4d3rZ   )   r  "   )2018r  2019)r[   r   numr  r[   r   r  r  rP   F)r3   r4   r2   rQ   sortr  r  r  r  r   r   rq   r  	r
   r   r(   r   r   r   r   r8   r9   r|  s       r.   test_pivot_table_sort_falsez*TestPivotTable.test_pivot_table_sort_false  s    '''&#||000	 
 
 ,ueRW   
 
 "&\B<"&"666*888(###___5c5\  
 
 
 	fh/////r0   c           	      8   t          dddgt          ddgd          d          }|                    d	d
dd          }t          ddgddgddggt          g dd	          t	          j        ddgd d
g          d          }t          j        ||           d S )Nr"   r6   r    r   r!   Int64r   )r[   r\   salesr\   r[   TrP   r  r  rZ  r   r  r"   r  r   rq   r3   r4   r   )r
   r   r   r   r   rr   r8   r9   r|  s       r.   !test_pivot_table_nullable_marginsz0TestPivotTable.test_pivot_table_nullable_margins	  s    QFVRHG-L-L-LMM
 
 c3eTT"XBx"b*C000*!124+   
 
 
 	fh/////r0   c           	         t          ddgddgddgddgd	          }|                    d
dgddgd          }t          ddgddggddgt          j        ddgd
dg                    }t	          j        ||           d S )NJohnMichaelFooBar      /   r  )	firstnamelastnameheightager  r  r  r  F)r3   r2   r  g     e@g     G@g     f@g     @@)r  r  )r  r  rq   r  )r
   r   r   rr   r8   r9   r|  s       r.   0test_pivot_table_sort_false_with_multiple_valuesz?TestPivotTable.test_pivot_table_sort_false_with_multiple_values	  s    $i0"EN*Bx	 
 
 {+Xu4EE   
 
 T]UDM*u%( "45!;/  
 
 
 	fh/////r0   c                 2   t          g dg dg dg dg          }g d|_        |                    dddd	d
d          }t          g dg dg dg          }g d|_        g d|_        d|j        _        d|j        _        t          j        ||           d S )Nr[   r_   r6   r[   r`   r    r\   r`   rI   r\   ra   rJ   )r   r!  r4  r   r!  r4  rP   r   Tr3   r4   r2   rQ   rR   r   r6   r    r   rI   r   rI   rJ   r   r6   rK   rJ   r   r_   r`   ra   r   r[   r\   r   )r
   r4   r   r3   r=   r8   r9   r|  s       r.   1test_pivot_table_with_margins_and_numeric_columnsz@TestPivotTable.test_pivot_table_with_margins_and_numeric_columns5	  s    }}}mmm]]]STT!\\
bUqRV   
 
 lllLLL---HII111*** " 
fh/////r0   zdtype,expected_dtype)r  Float64)r   r   c                    t          ddt          ddg|          d          }|                    ddd	d
|          }t          dggt          dgd          t          dgd          |          }t	          j        ||           d S )Nr[   r\   r!  r  r   )r_   r`   r  r_   r`   r  r7   )r3   r4   r2   rQ   rp   r4  r   r
  )r
   r   r   r   r8   r9   )r-   rp   r   expected_dtyperV   rW   rC   s          r.   test_pivot_ea_dtype_dropnaz)TestPivotTable.test_pivot_ea_dtype_dropnaF	  s     Ss62r(%3P3P3PQQRRs5&   
 
 TFC(((3%c*** 	
 
 
 	fh/////r0   c                 :   t          dddgt          j        d          ddgd          }t          j        d           5  |                    dd	gd
dd          }d d d            n# 1 swxY w Y   t          ddgddgddggt          j        t          g dd          t          t          j        d          t          j        d          dgt          d	          g          t          j
        ddgd d
g                    }t          j        ||           d S )Nr"   r6   r    z
2019-12-31g      $@r!   )r[   r\   r   r  r\   r   r[   TrP   r  r  g      5@rZ  r   r  r=  r  r	  rq   r   )r
   r   r(  r8   r  r   r   r   r   rk  rr   r9   r|  s       r.   !test_pivot_table_datetime_warningz0TestPivotTable.test_pivot_table_datetime_warningX	  s   V\22	 
 
 '-- 	 	^^FmS$ $  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 D\D$<$6(---c222l33R\,5O5OQST$#  	 	 *!124+  
 
 
  	fh/////s   A''A+.A+c                 ^   t          g dg dg dg dg dg dg dg dd          }t          |ddd	gd
gd          }t          ddgddgddgt          j        dggt	          ddgd
          t          j        g dddgdz  gdd	g                    }t          j        ||           d S )Nr  r  r  r  r  )r"   r#   r$   r%   r&   )col5)col6r%  r   sevenr%   r"   r#   r.  rP   r  r   r   r   r   r~   r  r  r   )r   r   r   r   r   r   r    rq   r  r  r|  s       r.   )test_pivot_table_with_mixed_nested_tuplesz8TestPivotTable.test_pivot_table_with_mixed_nested_tuplesx	  s=   TTTTTT
 
 
 100000
 
 

 
 

 
 
M1 13
 3
h s3*|ne
 
 
 3Z#sc3Z"&#?7G,<@@@(---u~/AB3PS*  
 
 
 	fh/////r0   c                 f   t          t          d          t          d          t          d          t          d          d          }t          j        d t          d          D             d t          d          D             t          d          gd          }t	          j        dt          j                  }t	          j        |d           t          |t          t          d          d	
          |          }|	                    d	gdgdgdg          }t          j        ||           d S )Nr   r   c                     g | ]}d S )nuniquer   r   r   s     r.   r  zYTestPivotTable.test_pivot_table_aggfunc_nunique_with_different_values.<locals>.<listcomp>	  s    ...q...r0   c                     g | ]}d S )r]   r   r4  s     r.   r  zYTestPivotTable.test_pivot_table_aggfunc_nunique_with_different_values.<locals>.<listcomp>	  s    ((((((r0   )NNr\   rq   )r   r   r~   r[   r   r   r\   r]   r3  r.  )r
   r   r   r   r(   fullr   fill_diagonalr   r   r8   r9   )r-   test	columnvalnparrrC   rW   s         r.   6test_pivot_table_aggfunc_nunique_with_different_valueszETestPivotTable.test_pivot_table_aggfunc_nunique_with_different_values	  s@   2YY2YY2YY2YY	 
 
 *..E"II...((eBii(((b		
 $
 
 
	 "&))
$$$U%b		*D*D*DiXXX!!   K " 
 
 	fh/////r0   c           	         d gt          d          g t          d          d t          d          d}t          |          }|                    ddd|          }g t          d          d }t          j        }|d|||g||d	||g|||d
|g||||dgd||||gg}t          |t          |d          t          |d                    }|r|j        g dg df         }t          j        ||           d S )NrJ   rK   )r.  r   valr=  r.  r   )r2   r3   r4   rp   r~   r   r   r   r   ri  r[  r   rb   )r   r   )	r   r
   r   r(   r   r   r)  r8   r9   )	r-   rp   r/   rV   rW   e_axisr   e_datarC   s	            r.   /test_pivot_table_index_and_column_keys_with_nanz>TestPivotTable.test_pivot_table_index_and_column_keys_with_nan	  s=   (uQxx(1B5881BT1B5QR88TTt__uE5QWXX"588"T"f#sC%#sC%#sC%#sC%#sC%
 V%000vE222
 
 

  	:|IIIyyy$89H
6::::::r0   z'index, columns, e_data, e_index, e_colsCategoryValuer~   ri  r   r!  r  2   zvalues-and-columnszvalues-and-index)idsc                     g dg dd}t          |          }|                    ||dd          }t          |||          }	t          j        ||	           d S )N)r"   r#   r"   r#   rC  )rA  rB  rB  r  r.  r[  r  )
r-   r3   r4   r?  e_indexe_colsr/   rV   rW   rC   s
             r.   %test_pivot_table_values_as_two_paramsz4TestPivotTable.test_pivot_table_values_as_two_params	  sz    @ 100;K;K;KLLt__'   
 
 &HHH
fh/////r0   c                 J   t          g dg dg dd          }|                    ddddd	d
          }t          ddt          j        ddt          j        t          j        ddddddddi          }d|j        _        d|j        _        t          j        ||d	           d S )Nrb   )r[   r\   r\   )r_   NN)r   g1g2rK  rL  r   r  FT)r3   r4   r2   rQ   rp   r   r_   r~   r#  r   r   r   )check_dtype)	r
   r   r(   r   r3   r=   r4   r8   r9   r|  s       r.   +test_pivot_table_margins_include_nan_groupsz:TestPivotTable.test_pivot_table_margins_include_nan_groups
  s    YY%oo''' 
 
    
 
 3RVC88bf3s;;Ss377
 
 # $
fhEBBBBBBr0   )NNr   )jr  r  r  rt  fixturer/   rD   rX   ri   rw   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r  r
  r  r#  r/  r?  rO  rV  r\  rT   r(   r  r   r   rl  ro  rx  xfailr~  r  r  r  r  r   rr   r  r  r  r  r  r  r  r  r  r  r  r  r"  r&  r2  r7  rK  rP  rZ  r\  rf  rp  rw  ry  r}  r  r  r  r  r  r  r  r  rP   r7   rK  rl  r  slowr  r  r  r  r  r  r  r  r  r$  r(  r*  r0  r;  r@  r   rI  rN  r   r0   r.   r   r       sY       ^.
 .
 ^.
`/ / /80 0 06
& 
& 
&#/ #/ #/J0 0 0 0 0 0@0 0 0>0 0 08 [a!q)EE!HHeeAqkk+BC 0 0 01 1 1@0 0 0
0 0 0
/ / /!1 !1 !1F [x*+33343334	
 " " ",( ,( ,(\0 0 00 0 02 [Xe}55X X 65X6 [Xe}55, , 65,6 [Xe}55=, =, 65=,~50 50 50n [Xe}55+, +, 65+,Z0 0 00 [UT28VU$CDD[Xe}550 0 65 ED08 [ENBHeU^$$FE5>""E5%.!!		
  [Xe}55 0  0 65  0D2 2 2 [S    [Xe}55$0 $0 65 $0L [Xe}55P P 65P, = = = =:B B B2/ / /4 [4 %%%';';';<222===	 c
))),,, '
&   *
 
 
	
 <$0 $0= <$0L0 0 000 0 0& [V%M%M%MNN0 0 ON02 2 2@ @ @*/ / /$17 17 17f0 0 08 8 8A A A7 7 7A A A []UE3sCj,QRR# # SR#JS S Sj}2 }2 }2~Y0 Y0 Y0vY0 Y0 Y0v0 0 0&0 0 0 C C C&/ / /</ / // / / 0 0 0$!0 !0 !0F0 0 02*0 *0 *0X0 0 08	/ 	/ 	/<0 <0 <0| [Xa2B2B!RSDTDT'UVV0 0 WV0* [2Ry3(!",=,=Ra?P?PQ 0 0 0: [BFORWBFOV_rvrw/0U^bfbf-.V_rvrw/0	

 
0 0
 
0 [  6!0 !0 !0F0 0 0" [Yu660 0 760"@ @ @2/ 2/ 2/h0 0 0,0 0 0"0 0 0,0 0 0" [!57K L 0 0 00 0 0@@0 @0 @0D#0 #0 #0J; ; ;0 [1 "&#rv.VS"&#. C:J777+++':::	 "&MVSM"&MVSM	 +++':::C:J777	
0 "#565   8
0 
09 8
0C C C C Cr0   r   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                             e            d	          d
             Zd Zd Zd Zd Zd Zd Ze
j                            dddg          d             Zd Zd Ze
j                            d          d             Ze
j                            dg d          d             ZdS )	TestPivotc                    g dg dg dd}t          |          }|                    ddd          }t          dd	d
ddd	d
dd          }d\  |j        _        |j        _        t          j        ||           |j        j        dk    sJ |j        j        dk    sJ |                    dd          }|j        j        dk    sJ |j        j        dk    sJ d S )Nr"   r#   r$   r$   r#   r"   OnerY  rY  TworZ  rZ  r~   r   r   r   r   r~   r   r3   r4   r2   r~   r   r   r   rY  rZ  r   Nr4   )r
   r"  r3   r=   r4   r8   r9   r;   )r-   r/   r  r
  rC   s        r.   
test_pivotzTestPivot.test_pivot?
  s#   333AAA444
 
 $++GYx+PP s55 s55 
 
 6H2X-2
gx000 }!W,,,,#y0000 ++GY+??}!W,,,,$(9999999r0   c                     t          g dg dg dd          }t          j        t          d          5  |                    ddd	
           d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   r   )r   r   r   r   r   )r~   r   r   r   r   rZ   zduplicate entriesrq  r[   r\   r]   r   )r
   rt  ru  r%  r"  )r-   r/   s     r.   test_pivot_duplicateszTestPivot.test_pivot_duplicates\
  s    888888... 
 
 ]:-@AAA 	; 	;JJS#cJ:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   AA"Ac                     t          g d          }|                    ddd          }t          g g           }t          j        ||d	           d S )
NrZ   r   r[   r\   r]   r   r   Fr  )r
   r"  r8   r9   r|  s       r.   test_pivot_emptyzTestPivot.test_pivot_emptyg
  s]    ///S==2r222
fhEBBBBBBr0   c                     t          ddg|          }|                    ddd          }t          dd	gd|
          }t          j        |j        |           d S )N)r"   r  A1)r#   r  B2)r/   r   r6   r   r    r   r"   r#   r8  )r
   r"  r   r8   rs   r4   )r-   any_string_dtyperV   rW   r   s        r.   test_pivot_integer_bugz TestPivot.test_pivot_integer_bugm
  sq    "$45=M
 
 
 1Q77 #s!;KLLL
fn.>?????r0   c                    g dg dg dd}t          |                              d          }|                    dd          }t          d	d
ddd	d
ddd          }d\  |j        _        |j        _        t          j        ||           |                    d          }t          j	        ddgd dg          |_        d|j        _        t          j        ||d           |j        j        dk    sJ |j        j
        dk    sJ |j                            d          |_        |                    dd          }d|j        _        t          j        ||           d S )NrW  rX  r[  r   r3   r4   r2   r4   r2   r~   r   r   r   r\  r   r   )r2   rY  )r2   rZ  rq   Fr  r]  r   )r
   rL  r"  r3   r=   r4   r8   r9   r   rr   r;   rU  )r-   r/   r  rW   rC   s        r.   test_pivot_index_nonezTestPivot.test_pivot_index_nonev
  s    433AAA444
 
 $))'22Yx@@ s55 s55 
 
 6H2X-2
fh/// Y//%1 124:K
 
 
 &
fhEBBBB| G++++~#'88888#+55a88Yx@@ )
fh/////r0   c                    t          g dg dg dg dg dd          }ddg}d	g}|                    ||
          }t          t          j        g ddt          j        dt          j        gg dt          j        dt          j        dgg          t          j        ddgddg          t          j        ddgd d	g          
          }t          j        ||           |ddgk    sJ |d	gk    sJ d S )N)r6   r6   r6   r    r    r    )r6   r6   r    r6   r6   r    )r6   r    r6   r    r6   r    rc  r|  )lev1lev2lev3lev4r2   rl  rm  rn  r   )r~   r   r   r~   r   r   )r   r   r   r   r   r   r   )r6   r    r6   r    rq   )ro  ro  r2   r2   )	r
   r"  r(   r  r   r   r   r8   r9   )r-   rV   r3   r4   rW   rC   s         r.   0test_pivot_index_list_values_none_immutable_argsz:TestPivot.test_pivot_index_list_values_none_immutable_args
  sZ   ************,,, 
 
  (w77H((("&#rv.(((VS"&#.	  (|,VV4D   *5|DVn  
 
 
$ 	fh///(((((6(""""""r0   c                     t          dgdd          }t          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr6   r  z(missing 1 required keyword-only argumentrq  rs  )r-   rV   s     r.   test_pivot_columns_not_givenz&TestPivot.test_pivot_columns_not_given
  s    aSq))**]9,VWWW 	 	HHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAz&TODO(infer_string) None is cast to NaNry  c                    t          dgddd          }|                    d           }t          dgdd          }t          j        ||           |                    d d          }t          d	dit	          dgd
                    }t          j        ||           |                    d dd          }t          ddit	          dgd
                    }t          j        ||           d S )Nr6   r    rI   Nr\   r]   r   ))r\   r6   r]   r6   r\   r  ru  r   r   r]   r4   r3   r2   )r
   r"  r8   r9   r   r|  s       r.   test_pivot_columns_is_nonez$TestPivot.test_pivot_columns_is_none
  s    
 qc2233$''q99::
fh///$c22h]%#2F2F2FGGG
fh///$c#>>aV5!3+?+?+?@@@
fh/////r0   c                    t          dgddd          }|                    dd           }t          ddidg          }d dg|j        _        t	          j        ||           |                    dd d	
          }t          ddgt          dgd                    }|rt          j        |j	        _
        t	          j        ||           d S )Nr6   r    rI   rt  r\   r  )r]   r    r   r]   rv  r   r   )r
   r"  r4   r;   r8   r9   r   r(   r   r3   r=   )r-   r  rV   rW   rC   s        r.   test_pivot_index_is_nonez"TestPivot.test_pivot_index_is_none
  s    qc2233#T22h]1#666"&
fh///#T#>>Qqc5!33G3G3GHHH 	)"$&HN
fh/////r0   c                    t          dgddd          }|                    ddd           }t          dt          dgd          t          dgd          	          }t          j        ||           |                    dd 
          }t          ddgt          dgd          	          }t          j        ||           d S )Nr6   r    rI   rt  r\   r]   rv  r   r   ri  r   )r
   r"  r   r8   r9   r|  s       r.   test_pivot_values_is_nonez#TestPivot.test_pivot_values_is_none
  s    qc2233#S>>UA3S)))5!33G3G3G
 
 
 	fh///#d33Qqc5!33G3G3GHHH
fh/////r0   c                     t          dgddd          }|                    d          }|                    ddd	
           t          j        ||           d S )Nr[   r   r6   )r   r   r  T)deepr   r   r  r   )r
   r  r"  r8   r9   )r-   rV   rC   s      r.   "test_pivot_not_changing_index_namez,TestPivot.test_pivot_not_changing_index_name
  s_    uQ;;<<777%%
ueG<<<
b(+++++r0   c                     t          g g d          }|                    dddd          }t          g dd	          }t          j        |j        |           d S )
N)r[   r\   r  r   r[   r\   r  r  r.  rk  r=  )r
   r   r   r8   rs   r4   r-   rV   r"  rC   s       r.   .test_pivot_table_empty_dataframe_correct_indexz8TestPivot.test_pivot_table_empty_dataframe_correct_index
  sc    r#6#6#6777S#gwWW8#666
emX66666r0   c           	         t          dddddddddd	d
dg          }t          j        |d                   |d<   t          j        d          5  |                    ddgdgdd          }d d d            n# 1 swxY w Y   t          j        dt          j	        dd          fdt          j	        dd          fdt          j	        dd          fdgddg          }t          j
        |j        |           d S )Nr_   z
2023-01-01r6   )r[   date_strrl   r`   z
2023-01-02r    ra   z
2023-01-03rI   r  r   Fr[   rl   rP   T)r3   r2   rQ   r   z2023-01-01 00:00:00z%Y-%m-%d %H:%M:%Sz2023-01-02 00:00:00z2023-01-03 00:00:00r  rq   )r
   r   to_datetimer8   r  r   r   rr   r   strptimers   r3   r  s       r.   0test_pivot_table_handles_explicit_datetime_typesz:TestPivot.test_pivot_table_handles_explicit_datetime_types  so   |qAA|qAA|qAA
 
 ^BzN336
'.. 	 	NNFmXJt #  E	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 )h'(=?RSSTh'(=?RSSTh'(=?RSST	 -
 
 
 	ek844444s   A99A= A=c                    t          g dg dg dg dg          }|                    dddddd	
          }t          g dg dg dgt          g dd          t          g dd                    }t          j        ||           d S )Nr  r  r  r  r   r6   r    rP   Tr  r  r   r!  r"  r   r#  r  r{  r|  s       r.   6test_pivot_table_with_margins_and_numeric_column_namesz@TestPivot.test_pivot_table_with_margins_and_numeric_column_names!  s    }}}mmm]]]STTQq%At   
 
 \\<<<7000q999)))222
 
 

 	fh/////r0   rv   r6   r   c                    t          j        |          }t          j        |gdz            }t          j        ||z  dz                                ||z  d          }t          ||t          j        d                    }|                                }|                    d          }d|j        d<   t          j
        ||           d S )Nr    r&  F)r  r   )r   r   )r(   r   r   r  r   r
   r  r@   r  r8   r9   )r-   rv   r   r3   r2   rV   df_origrW   s           r.   test_unstack_copyzTestPivot.test_unstack_copy0  s     1'1551q53;''//As;;vubinn55''))''D
b'*****r0   c                    t          t          g t          j        d                    t          g t                    t          g t                    d          }|                    ddd          }|j        sJ d S )	NUTCrB  r   )	timestamprS   r  rS   r  r  r   )r
   r   r   DatetimeTZDtyper  r   r  )r-   rV   
df_pivoteds      r.   test_pivot_empty_with_datetimez(TestPivot.test_pivot_empty_with_datetime<  s    #Bb.@E.J.J.JKKK"2S111#... 
 
 ^^gk $ 
 

 r0   c           
         t          g dg dg dg dd          }|                    d ddgdd	d
          }t          g dgdgt          ddgg dgg dg dgddg                    }t          j        ||           d S )Nr  )rI   rI   rJ   )rK   rK   r%  rM  )r_   r`   ra   rf  r`   ra   rf  Tr  )r3   r4   r2   r   rQ   )r    r    r6   r6   rI   rJ   )rK   r%  r   r   )r   r    r6   r    rj  r   )r
   r   r   r8   r9   r|  s       r.   "test_pivot_margins_with_none_indexz,TestPivot.test_pivot_margins_with_none_indexJ  s    YYYYYYYY	 
 
 #J   
 
 \\N%A.#||\\\2Cj  
 
 
 	fh/////r0   z0ignore:Passing a BlockManager:DeprecationWarningc           	      \   t          j        d          }t          g dg dd                              t	          |                    |                                |                                                    dd          }|                    dgdg          }t          j
        g d	g dgd
          }t          dt          j        t          j        gt          j        dt          j        gt          j        t          j        dgg|          }t          j        ||dd           d S )Npyarrowr   rb   )string_columnnumber_columnzfloat[pyarrow]r  r  ri  )r  r  r  )Nr  rq   r~   r   r   r   F)rM  check_column_type)rt  importorskipr
   rU   r   
dictionaryr   stringr"  r   r   r(   r   r8   r9   )r-   parV   multi_indexdf_expecteds        r.   #test_pivot_with_pyarrow_categoricalz-TestPivot.test_pivot_with_pyarrow_categoricalf  s:     ++-oo			JJ
 

&!+BMM"((**biikk,R,R!S!S!1 
 
 	 XX/8IXJJ ,@@@///R)
 
 
  2626"RVS"&$9BFBFC;PQ
 
 
 	%	
 	
 	
 	
 	
 	
r0   r   )r%   rQ  QrO  c                 J   t          j        |          }t          g g g d          }|                    d|i          }|                    ddd          }t          g dd          }t          g dd          }t          |||          }t          j        ||           d S )	Nr   r   r2   r3   r4   r   r8  r
  )r   PeriodDtyper
   rU   r"  r   r8   r9   )r-   r   r   rV   rW   r   r   rC   s           r.   'test_pivot_empty_dataframe_period_dtypez1TestPivot.test_pivot_empty_dataframe_period_dtype  s     D)))bAABBYY%())8LLryAAA )9EEE *:%
 
 
 	fh/////r0   N)r  r  r  r^  r`  rb  rg  rj  rp  rr  rt  rP  rR  r   rw  ry  r{  r~  r  r  r  rQ  r  r  r  filterwarningsr  r  r   r0   r.   rU  rU  >
  s       : : ::	; 	; 	;C C C@ @ @"0 "0 "0H$# $# $#L   [%M   0 0 00 0 00 0 0, , ,7 7 75 5 560 0 0 [S1b'**	+ 	+ +*	+     0 0 08 [ RSS
 
 TS
6 [V%9%9%9::0 0 ;:0 0 0r0   rU  )"r   r   r   	itertoolsr   r  numpyr(   rt  pandas._configr   pandasr   r   r	   r
   r   r   r   r   r   r   pandas._testing_testingr8   pandas.api.typesr   pandas.core.reshaper   r  pandas.core.reshape.pivotr   r   rU  r   r0   r.   <module>r     s           
       				      - - - - - -    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       - - - - - - 6 6 6 6 6 6 1 1 1 1 1 1[(C [(C [(C [(C [(C [(C [(C [(C|PS0 S0 S0 S0 S0 S0 S0 S0 S0 S0r0   