
    Egp                       d dl mZ d dlmZmZ d dlmZmZmZm	Z	 d dl
Z
d dlZd dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZmZ d d
lmZ d dlmZmZ d dlm c m!Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 erd dl1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7  ed           ee$d         d          ddddddddej8        df
dHd)                        Z9dId+Z:	 	 dJdKd.Z;	 dLdMd/Z<	 dLdNd0Z=	 dLdOd1Z>d2 Z? ed           ee$d3         d          ej8        ej8        d4dPd:                        Z@	 	 	 	 	 	 	 	 dQdRd=ZA	 dLdSd>ZBdTdUdBZCdVdGZDdS )W    )annotations)HashableSequence)TYPE_CHECKINGCallableLiteralcastN)lib)AppenderSubstitution)find_stack_level)maybe_downcast_to_dtype)is_list_likeis_nested_list_like	is_scalar)ExtensionDtype)ABCDataFrame	ABCSeries)_shared_docs)Grouper)Index
MultiIndexget_objs_combined_axis)concat)cartesian_product)Series)AggFuncTypeAggFuncTypeBaseAggFuncTypeDict
IndexLabel	DataFramez
data : DataFramepivot_table   )indentsmeanFTAlldatar"   aggfuncr   marginsbooldropnamargins_namer   observedbool | lib.NoDefaultsortreturnc                   t          |          }t          |          }t          |t                    rg }g }|D ]U}t          | |||||||||	|
          }|                    |           |                    t          |d|                     Vt          ||d          }|                    | d          S t          | |||||||||	|
          }|                    | d          S )N)
valuesindexcolumns
fill_valuer)   r*   r,   r-   r.   r0   __name__r$   )keysaxisr#   )method)_convert_by
isinstancelist__internal_pivot_tableappendgetattrr   __finalize__)r(   r3   r4   r5   r)   r6   r*   r,   r-   r.   r0   piecesr8   func_tabletables                   N/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/core/reshape/pivot.pyr#   r#   =   s+    E'""G'4   >"$ 	9 	9D+%)!  F MM&!!!KKj$778888vDq111!!$}!===" E d=999    !AggFuncTypeBase | AggFuncTypeDictc                	   ||z   }|du}|rt          |          rd}t          |          }nd}|g}|D ]}|| vrt          |          g }||z   D ]H}t          |t                    r|j        }	 || v r|                    |           9# t          $ r Y Ew xY wt          |          t          | j	                  k     r| |         } nN| j	        }|D ]5}	 |
                    |          }# t          t          t          f$ r Y 2w xY wt          |          }|	t          j        u rdn|	}|                     |||
|          }|	t          j        u rKt          d |j        j        D                       r(t%          j        dt(          t+                                 |                    |          }|r?t          |t.                    r*t          |j	                  r|                    d	          }|}|j        j        d
k    r|r|j        j        dt          |                   }g }t9          t          |          t          |                    D ]E}|j        j        |         }|||v r|                    |           0|                    |           F|                    ||          }|st          |j        t<                    rOt=          j        tA          |j        j!                  |j        j                  }|"                    |d|          }t          |j	        t<                    rOt=          j        tA          |j	        j!                  |j	        j                  }|"                    |d
|          }|
du r+t          |t.                    r|#                    d
          }|S|$                    |          }|t          u r5|	s3t          j%        |          r|&                    tN          j(                  }|rH|r.| | )                                *                    d
                   } tW          || |||||||	  	        }|r1|s/|j	        j        d
k    r|j	        ,                    d          |_	        t          |          dk    rt          |          dk    r|j-        }t          |t.                    r|r|                    dd
          }|S )zL
    Helper of :func:`pandas.pivot_table` for any non-list ``aggfunc``.
    NTF)r.   r0   r,   c              3  $   K   | ]}|j         V  d S N)_passed_categorical).0pings     rF   	<genexpr>z)__internal_pivot_table.<locals>.<genexpr>   s6       * *%) * * * * * *rG   zThe default value of observed=False is deprecated and will change to observed=True in a future version of pandas. Specify observed=False to silence this warning and retain the current behavior)category
stacklevelall)howr$   r6   namesr   )r9   r6   r9   )rowscolsr)   r.   r-   r6   )rS   r9   ).r   r=   KeyErrorr<   r   keyr?   	TypeErrorlenr5   drop
ValueErrorr
   
no_defaultgroupbyany_grouper	groupingswarningswarnFutureWarningr   aggr   r,   r4   nlevelsrV   rangeunstackr   from_arraysr   levelsreindex
sort_indexfillna
is_integerastypenpint64notnarR   _add_margins	droplevelT)r(   r3   r4   r5   r)   r6   r*   r,   r-   r.   r0   r8   values_passedvalues_multii	to_filterxr[   observed_boolgroupedaggedrE   index_names
to_unstacknamems                             rF   r>   r>   v   sK     7?D$&M   	L&\\FF LXF  	" 	"A}}qkk!  	 	 	A!W%% E99$$Q'''   y>>C----	?D  	 	CS))z84   f%77EEXMll4-d6lRRG3>!!c * *-4-=-G* * * ' '! 	U #'))	
 	
 	
 	
 KK  E (*UL11 (c%-6H6H (''E {Q5 k'#e**5
s5zz3t99-- 	( 	(A;$Q'D|t{22!!!$$$$!!$''''jZ@@ Dek:.. 	D&!%+"455U[=N  A MM!!
MCCEemZ00 	D&!%-"677u}?R  A MM!!
MCCEt||
5,77|  a ((Z((c>>(>s~j/I/I> LL**E 
 	2

((a(001D%!

 

 

  3\ 3em.Ca.G.G//22
5zzQ3w<<!++ %&& 06 0Q//Ls$   0B


BBC**DDrE   DataFrame | Seriesc	           
        t          |t                    st          d          d| d}	| j        j        D ]-}
|| j                            |
          v rt          |	          .t          ||||          }| j        dk    rB| j        j        dd          D ]-}
|| j                            |
          v rt          |	          .t          |          dk    r|fdt          |          dz
  z  z   }n|}|sEt          | t                    r0|                     |                     |||         i                    S |r4t          | |||||||          }t          |t                    s|S |\  }}}nIt          | t                    sJ t!          | ||||||          }t          |t                    s|S |\  }}}|                    |j        |          }|D ]4}t          |t                    r||         ||<   #||d                  ||<   5dd	lm}  ||t)          |g          
          j        }|j        j        }t-          |j                  D ]Y}t          |t0                    r|                    |g          j        }||                             t6          |f          ||<   Z|                    |          }||j        _        |S )Nz&margins_name argument must be a stringzConflicting name "z" in margins   r$    rT   r   r!   )r5   )args)r<   strr_   r4   rV   get_level_values_compute_grand_marginndimr5   r]   r   _append_constructor_generate_marginal_resultstupler   )_generate_marginal_results_without_valuesrn   pandasr"   r   rx   setdtypesr   select_dtypesapplyr   )rE   r(   r3   rX   rY   r)   r.   r-   r6   msglevelgrand_marginr[   marginal_result_setresultmargin_keys
row_marginkr"   margin_dummy	row_namesdtypes                         rF   rv   rv      s9    lC(( CABBB
9|
9
9
9C" " "5;77>>>>S//! ? )vwMMLzQ](, 	& 	&Eu}==eDDDD oo% E 4yy1}}oTQ 77 >j	22 > }}U//l<6P0QRRSSS	 >84tWh
 
 -u55 	'&&*='ZZ %.....G4tWh
 
 -u55 	'&&*='Z##FNz#JJJ / /a 	/(OJqMM(1.JqMM      9Zu>>>@L"I V]## 
 
e^,, 	##UG,,4)$/55#5( 6 
 
T ^^L))F"FLMrG   c                   |ri }| |                                          D ]\  }}	 t          |t                    r t          ||                      ||<   nut          |t                    rRt          ||         t                    r" t          |||                               ||<   n# ||         |          ||<   n ||          ||<   # t
          $ r Y w xY w|S | || j                  iS rK   )itemsr<   r   r@   dictr\   r4   )r(   r3   r)   r-   r   r   vs          rF   r   r   U  s     3L&&(( 	 	DAqgs++ 1&9ga&9&9&;&;LOO.. 1!'!*c22 8*@'!WQZ*@*@*B*BQ*4'!*Q--Q&-gajjLO   ggdj1122s   B&C
CCc                4   t                    dk    r
g }g }	fd}
t          |          dk    r|||z                                ||                              |          }d}| j                            d|          D ]`\  }}|j        } |
|          }|                                }||         ||<   |                    |           |	                    |           anddlm} d}|                     d|          D ]\  }}t                    dk    r |
|          }n}|                    |            ||                    |                    j        }t          |j
        t                    r+t          j        |g|j
        j        d gz             |_
        n!t          |g|j
        j                  |_
        |                    |           |	                    |           |s| S t!          ||	          }t          |          dk    r|S n	| }| j        }	t                    dk    r||z                                |                              |                              d
          t                    gt'          t)          t                                        z   }fd|D             }j
                            |          _
        n&|                    t.          j        |j                  ||	fS )Nr   c                8    | fdt                    dz
  z  z   S )Nr   r$   r]   )r[   rY   r-   s    rF   _all_keyz,_generate_marginal_results.<locals>._all_key|  s"    &#d))a-)@@@rG   r.   r$   )r   r.   r!   rU   r   rW   T)future_stackc                4    g | ]}j         j        |         S  )r4   rV   )rM   r{   r   s     rF   
<listcomp>z._generate_marginal_results.<locals>.<listcomp>  s$    PPP:+1!4PPPrG   r4   )r]   ra   rh   rx   copyr?   r   r"   r   r<   r4   r   from_tuplesrV   r   r   r   r5   stackr=   rj   reorder_levels_constructor_slicedrs   nan)rE   r(   r3   rX   rY   r)   r.   r-   table_piecesr   r   margincat_axisr[   pieceall_keyr"   transformed_piecer   new_order_indicesnew_order_namesr   s       `  `             @rF   r   r   l  sY    4yy1}}	A 	A 	A 	A 	A 	A t99q==$-(000IIMMgVVFH#gooAoII 	, 	,
U"(3-- 

!'g##E***""7++++	, )(((((H#mm!hmGG , ,
Ut99q==&hsmmGG*G##E*** %.Iekk'.B.B$C$C$E!ek:66 V.8.D 	):dV)C/ / /%++ /4WIEKDT.U.U.U%+ ##$5666""7++++ 	9LLx888Ft99>>M  m
4yy1}}$-(000IIMMgVV
%%4%88
 !YYK$uSYY/?/?*@*@@PPPP>OPPP%+::?KK
--bfFN-KK
;
**rG   c                   t                    dk    rg }fd}t          |          dk    rW|                    ||          |                             |          }	 |            }
|	| |
<   | }|                    |
           n\|                    dd|                              |          }	 |            }
|	| |
<   | }|                    |
           |S | }| j        }t                    r1|                    |                                       |          }n t          t          j        |j                  }|||fS )Nr   c                 `    t                     dk    rS fdt                     dz
  z  z   S )Nr$   r   r   )rY   r-   s   rF   r   z;_generate_marginal_results_without_values.<locals>._all_key  s4    4yyA~~## ?Uc$ii!m%<<<rG   r   )r   r9   r.   r   )r]   ra   r   r?   r5   r   rs   r   )rE   r(   rX   rY   r)   r.   r-   r   r   r   r   r   r   s      `  `      rF   r   r     sa    4yy1}}	= 	= 	= 	= 	= 	=
 t99q==\\$\::4@FFwOOFhjjG#E'NFw'''' \\H\EEKKGTTFhjjG#E'NFw'''Mm
4yy :\\$\::4@FFwOO

BF&.999
;
**rG   c                    | g } n^t          |           s<t          | t          j        t          t
          t          f          st          |           r| g} nt          |           } | S rK   )	r   r<   rs   ndarrayr   r   r   callabler=   )bys    rF   r;   r;     sd    	z"b2:uiABB B<<
 T"XXIrG   pivot)r4   r3   r5   r    r4   IndexLabel | lib.NoDefaultr3   c                   t          j        |          }                     d            j                                         _        d  j        j        D              j        _        |t
          j        u rO|t
          j        urt          j        |          }ng }|t
          j        u }                     ||z   |          }nW|t
          j        u rht           j        t                    r& fdt           j        j                  D             }nH                      j         j        j                  g}n  fdt          j        |          D             } fd|D             }	|                    |	           t          j        |          }
t!          |          rYt          |t"                    sDt%          t&          t(                   |          }                      |         j        |
|	          }n"                      |         j        |

          }|                    |          }d |j        j        D             |j        _        |S )NF)deepc                .    g | ]}||nt           j        S rK   r
   r`   rM   r   s     rF   r   zpivot.<locals>.<listcomp>  s0       9= cn  rG   )r?   c                D    g | ]}j                             |          S r   )r4   r   )rM   r{   r(   s     rF   r   zpivot.<locals>.<listcomp>!  s6       78DJ//22  rG   r   c                     g | ]
}|         S r   r   )rM   idxr(   s     rF   r   zpivot.<locals>.<listcomp>)  s    OOO$s)OOOrG   c                     g | ]
}|         S r   r   )rM   colr(   s     rF   r   zpivot.<locals>.<listcomp>+  s    >>>cS	>>>rG   )r4   r5   r   c                2    g | ]}|t           j        ur|nd S rK   r   r   s     rF   r   zpivot.<locals>.<listcomp>;  s5       9=CN**  rG   )comconvert_to_list_liker   r4   rV   r
   r`   	set_indexr<   r   rj   ri   r   r   extendrl   r   r   r	   r   r   r   _valuesrk   )r(   r5   r4   r3   columns_listlikerY   r?   indexed
index_listdata_columns
multiindexr   s   `           rF   r   r     sw    /88
 99%9  D""DJ AEAQ  DJ
 &&+E22DDD#.( ..##F ! 
 

 CN""$*j11    <A$*BT<U<U  


 ,,TZdjo,NN

 POOOs/G/N/NOOOJ>>>>-=>>>,'''+J77
 	W
65(A(A 	W(8,f55F''V$J (  GG ..tF|/C:.VVG __-..F AGAS  FL MrG   	normalize/bool | Literal[0, 1, 'all', 'index', 'columns']c
           
        ||t          d          ||t          d          t          |           s| g} t          |          s|g}d}
d | |z   D             }|rt          |dd          }
t          | |d	          }t          ||d
	          }t	          ||          \  }}}}ddlm} i t          t          ||                     t          t          ||                    } |||
          }|d|d<   t          dd}n	||d<   d|i} |j
        	 d|||||dd|}|	durt          ||	||          }|                    |d          }|                    |d          }|S )a  
    Compute a simple cross tabulation of two (or more) factors.

    By default, computes a frequency table of the factors unless an
    array of values and an aggregation function are passed.

    Parameters
    ----------
    index : array-like, Series, or list of arrays/Series
        Values to group by in the rows.
    columns : array-like, Series, or list of arrays/Series
        Values to group by in the columns.
    values : array-like, optional
        Array of values to aggregate according to the factors.
        Requires `aggfunc` be specified.
    rownames : sequence, default None
        If passed, must match number of row arrays passed.
    colnames : sequence, default None
        If passed, must match number of column arrays passed.
    aggfunc : function, optional
        If specified, requires `values` be specified as well.
    margins : bool, default False
        Add row/column margins (subtotals).
    margins_name : str, default 'All'
        Name of the row/column that will contain the totals
        when margins is True.
    dropna : bool, default True
        Do not include columns whose entries are all NaN.
    normalize : bool, {'all', 'index', 'columns'}, or {0,1}, default False
        Normalize by dividing all values by the sum of values.

        - If passed 'all' or `True`, will normalize over all values.
        - If passed 'index' will normalize over each row.
        - If passed 'columns' will normalize over each column.
        - If margins is `True`, will also normalize margin values.

    Returns
    -------
    DataFrame
        Cross tabulation of the data.

    See Also
    --------
    DataFrame.pivot : Reshape data based on column values.
    pivot_table : Create a pivot table as a DataFrame.

    Notes
    -----
    Any Series passed will have their name attributes used unless row or column
    names for the cross-tabulation are specified.

    Any input passed containing Categorical data will have **all** of its
    categories included in the cross-tabulation, even if the actual data does
    not contain any instances of a particular category.

    In the event that there aren't overlapping indexes an empty DataFrame will
    be returned.

    Reference :ref:`the user guide <reshaping.crosstabulations>` for more examples.

    Examples
    --------
    >>> a = np.array(["foo", "foo", "foo", "foo", "bar", "bar",
    ...               "bar", "bar", "foo", "foo", "foo"], dtype=object)
    >>> b = np.array(["one", "one", "one", "two", "one", "one",
    ...               "one", "two", "two", "two", "one"], dtype=object)
    >>> c = np.array(["dull", "dull", "shiny", "dull", "dull", "shiny",
    ...               "shiny", "dull", "shiny", "shiny", "shiny"],
    ...              dtype=object)
    >>> pd.crosstab(a, [b, c], rownames=['a'], colnames=['b', 'c'])
    b   one        two
    c   dull shiny dull shiny
    a
    bar    1     2    1     0
    foo    2     2    1     2

    Here 'c' and 'f' are not represented in the data and will not be
    shown in the output because dropna is True by default. Set
    dropna=False to preserve categories with no data.

    >>> foo = pd.Categorical(['a', 'b'], categories=['a', 'b', 'c'])
    >>> bar = pd.Categorical(['d', 'e'], categories=['d', 'e', 'f'])
    >>> pd.crosstab(foo, bar)
    col_0  d  e
    row_0
    a      1  0
    b      0  1
    >>> pd.crosstab(foo, bar, dropna=False)
    col_0  d  e  f
    row_0
    a      1  0  0
    b      0  1  0
    c      0  0  0
    Nz&aggfunc cannot be used without values.z)values cannot be used without an aggfunc.c                J    g | ] }t          |t          t          f          |!S r   )r<   r   r   )rM   r}   s     rF   r   zcrosstab.<locals>.<listcomp>  s,    XXXqz!i=V/W/WXXXXrG   TF)	intersectr0   row)prefixr   r   r!   r   	__dummy__)r)   r6   r)   )r4   r5   r*   r-   r,   r.   )r   r*   r-   )r4   r9   r$   )r5   r9   )r   )r_   r   r   
_get_names_build_names_mapperr   r"   r   zipr]   r#   
_normalizerename_axis)r4   r5   r3   rownamescolnamesr)   r*   r-   r,   r   
common_idx	pass_objsrownames_mapperunique_rownamescolnames_mapperunique_colnamesr"   r(   dfkwargsrE   s                        rF   crosstabr   B  s   T ~'-ABBBgoDEEEu%% w'' )JXXEGOXXXI S+IERRR
%%888H'8E:::H 	Hh// !     
s?E**
+
+
s?G,,
-
-D 
4z	*	*	*B~; 22 ;W% BN	!	 	 	 	E Yl
 
 
 O!<<EoA>>ELrG   c                   t          |t          t          f          s1ddd}	 ||         }n"# t          $ r}t	          d          |d }~ww xY w|du rbd d d d	}|d
         |d<   	 ||         }n"# t          $ r}t	          d          |d }~ww xY w ||           } |                     d          } n|du r| j        }| j        }	| j        dd d f         j	        }
||
v||
k    z  rt	          | d          | j        d ddf         }| j        dd df         }| j        d dd df         } t          | |d          } |dk    rG||                                z  }t          | |gd          } |                     d          } |	| _        n|dk    rI||                                z  }|                     |          } |                     d          } || _        n|d
k    s|du r||                                z  }||                                z  }d|j        |<   t          | |gd          } |                     |          } |                     d          } || _        |	| _        nt	          d          t	          d          | S )Nr4   r5   )r   r$   zNot a valid normalize argumentFc                \    | |                      d                               d          z  S Nr$   rW   r   sumr}   s    rF   <lambda>z_normalize.<locals>.<lambda>  s(    QA!2!2!2!:!:: rG   c                0    | |                                  z  S rK   r   r   s    rF   r   z_normalize.<locals>.<lambda>  s    QUUWW rG   c                X    |                      |                     d          d          S r   )divr   r   s    rF   r   z_normalize.<locals>.<lambda>  s"    quuQUUU]]u;; rG   )rR   r5   r4   rR   Tr   z not in pivoted DataFrame)r   r*   r$   rW   zNot a valid margins argument)r<   r+   r   rZ   r_   rp   r4   r5   ilocr   r   r   r   r   loc)rE   r   r*   r-   	axis_subserrnormalizersftable_indextable_columnslast_ind_or_colcolumn_marginindex_margins                rF   r   r     s!    i$-- HI..		H!),II 	H 	H 	H=>>CG	H % ;:,,;;3
 3
 (.D	HI&AA 	H 	H 	H=>>CG	H %Q	Dk*RU+0 /LO4ST 	IGGGHHH
3B37+z"crc'* 
3B38$ 5IuEEE 	!!)M,=,=,?,??ME=1:::ELLOOE)EMM'!!',*:*:*<*<<LMM,//ELLOOE%EKK%9#4#4)M,=,=,?,??M',*:*:*<*<<L-.L\*E=1:::EMM,//ELLOOE%EK)EMM =>>> 7888Ls,   , 
AAA'A0 0
B:B

Br   r   r   c                   |ig }t          |           D ]V\  }}t          |t                    r"|j        |                    |j                   <|                    | d|            WnSt          |          t          |           k    rt          d          t          |t                    st          |          }|S )N_z*arrays and names must have the same length)	enumerater<   r   r   r?   r]   AssertionErrorr=   )arrsrV   r   r{   arrs        rF   r   r   ?  s    }oo 	. 	.FAs#y)) .ch.BSX&&&&____----		. u::T"" !MNNN%&& 	 KKELrG   r   	list[str]r   ;tuple[dict[str, str], list[str], dict[str, str], list[str]]c                   d }t          |                               t          |                    } ||            ||          z  |z  fdt          |           D             }fdt          |           D             }fdt          |          D             }fdt          |          D             }||||fS )a  
    Given the names of a DataFrame's rows and columns, returns a set of unique row
    and column names and mappers that convert to original names.

    A row or column name is replaced if it is duplicate among the rows of the inputs,
    among the columns of the inputs or between the rows and the columns.

    Parameters
    ----------
    rownames: list[str]
    colnames: list[str]

    Returns
    -------
    Tuple(Dict[str, str], List[str], Dict[str, str], List[str])

    rownames_mapper: dict[str, str]
        a dictionary with new row names as keys and original rownames as values
    unique_rownames: list[str]
        a list of rownames with duplicate names replaced by dummy names
    colnames_mapper: dict[str, str]
        a dictionary with new column names as keys and original column names as values
    unique_colnames: list[str]
        a list of column names with duplicate names replaced by dummy names

    c                <    t                      fd| D             S )Nc                    h | ]}|v|	S r   r   )rM   r   seens     rF   	<setcomp>z>_build_names_mapper.<locals>.get_duplicates.<locals>.<setcomp>p  s#    ;;;$d*:*:*:*:*:rG   )r   )rV   r  s    @rF   get_duplicatesz+_build_names_mapper.<locals>.get_duplicatesn  s&    EE;;;;;;;;rG   c                *    i | ]\  }}|v 	d | |S row_r   rM   r{   r   	dup_namess      rF   
<dictcomp>z'_build_names_mapper.<locals>.<dictcomp>u  6       $Qty?P?P
q

D?P?P?PrG   c                ,    g | ]\  }}|v rd | n|S r  r   r  s      rF   r   z'_build_names_mapper.<locals>.<listcomp>x  >       6=adi''
q


T  rG   c                *    i | ]\  }}|v 	d | |S col_r   r  s      rF   r  z'_build_names_mapper.<locals>.<dictcomp>|  r   rG   c                ,    g | ]\  }}|v rd | n|S r$  r   r  s      rF   r   z'_build_names_mapper.<locals>.<listcomp>  r"  rG   )r   intersectionr  )	r   r   r  shared_namesr   r   r   r   r  s	           @rF   r   r   P  s'   << < < x==--c(mm<<Lx((>>(+C+CClRI   (1((;(;  O   AJ8ATAT  O   (1((;(;  O   AJ8ATAT  O O_oMMrG   )r(   r"   r)   r   r*   r+   r,   r+   r-   r   r.   r/   r0   r+   r1   r"   )r(   r"   r)   rH   r*   r+   r,   r+   r-   r   r.   r/   r0   r+   r1   r"   )r'   N)rE   r   r(   r"   r.   r+   r-   r   )r'   )r(   r"   r-   r   )r(   r"   r.   r+   r-   r   )rE   r"   r(   r"   r.   r+   r-   r   )
r(   r"   r5   r    r4   r   r3   r   r1   r"   )NNNNFr'   TF)
r*   r+   r-   r   r,   r+   r   r   r1   r"   )rE   r"   r*   r+   r-   r   r1   r"   )r   )r   r   )r   r  r   r  r1   r  )E
__future__r   collections.abcr   r   typingr   r   r   r	   re   numpyrs   pandas._libsr
   pandas.util._decoratorsr   r   pandas.util._exceptionsr   pandas.core.dtypes.castr   pandas.core.dtypes.commonr   r   r   pandas.core.dtypes.dtypesr   pandas.core.dtypes.genericr   r   pandas.core.commoncorecommonr   pandas.core.framer   pandas.core.groupbyr   pandas.core.indexes.apir   r   r   pandas.core.reshape.concatr   pandas.core.reshape.utilr   pandas.core.seriesr   pandas._typingr   r   r   r    r   r"   r`   r#   r>   rv   r   r   r   r;   r   r   r   r   r   r   rG   rF   <module>r>     s   " " " " " "                                     5 4 4 4 4 4 ; ; ; ; ; ;         
 5 4 4 4 4 4       
 !                 * * * * * * ' ' ' ' ' '         
 . - - - - - 6 6 6 6 6 6 % % % % % % !            !     
 "##	,}
%q111 
!"%(^4: 4: 4: 4: 21 $#4:nG G G Gd #R R R R Rl @E3 3 3 3 3> #Q+ Q+ Q+ Q+ Q+v #*+ *+ *+ *+ *+Z   "##	,w
+++
 ),),B B B B B ,+ $#BP "AFj j j j j\ JOM M M M M`    "3N 3N 3N 3N 3N 3NrG   