Ë
    ¤ehÅl  ã                  óö   — d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
mZ d dlmZmZm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mZ erd dlmZmZm Z  d d	l!m"Z"m#Z# d d
l$m%Z%  G d„ de«      Z& G d„ dee&«      Z'y)é    )Úannotations)Údedent)ÚTYPE_CHECKINGÚAnyÚCallableÚLiteral)Údeprecate_kwargÚdoc)ÚBaseIndexerÚExpandingIndexerÚGroupbyIndexer)	Ú_shared_docsÚcreate_section_headerÚkwargs_numeric_onlyÚnumba_notesÚtemplate_headerÚtemplate_returnsÚtemplate_see_alsoÚwindow_agg_numba_parametersÚwindow_apply_parameters)ÚBaseWindowGroupbyÚRollingAndExpandingMixin)ÚAxisÚQuantileInterpolationÚWindowingRankType)Ú	DataFrameÚSeries)ÚNDFramec                  óÂ  ‡ — e Zd ZU dZg d¢Zded<   	 	 	 	 df	 	 	 	 	 	 	 	 	 dgˆ fd„Zdhd„Z ee	d    e
d	«       e
d
«      dd¬«      ˆ fd„«       ZeZ ee ed«      e ed«      e ed«       e
d«      ddd¬«
      didjˆ fd„«       Z ee ed«      e ed«      e ed«      e ed«       e
d«      ddd¬«      	 	 	 	 	 dk	 	 	 	 	 	 	 	 	 	 	 dlˆ fd„«       Z ee ed«      e e«        ed«      e ed«      e ed«      e ed«       e
d«      ddd¬«      	 	 	 dm	 	 	 	 	 dnˆ fd „«       Z ee ed«      e e«        ed«      e ed«      e ed«      e ed«       e
d!«      dd"d#¬«      	 	 	 dm	 	 	 	 	 dnˆ fd$„«       Z ee ed«      e e«        ed«      e ed«      e ed«      e ed«       e
d%«      dd&d'¬«      	 	 	 dm	 	 	 	 	 dnˆ fd(„«       Z ee ed«      e e«        ed«      e ed«      e ed«      e ed«       e
d)«      dd*d*¬«      	 	 	 dm	 	 	 	 	 dnˆ fd+„«       Z ee ed«      e e«        ed«      e ed«      e ed«      e ed«       e
d,«      dd-d-¬«      	 	 	 dm	 	 	 	 	 dnˆ fd.„«       Z ee ed«       e
d/«      j9                  d0dd«      e ed1«       ed«      e ed«      d2e ed«       e
d3«      j9                  d0dd«       ed«       e
d4«      j9                  d0dd«      dd5d6¬«      	 	 	 	 do	 	 	 	 	 	 	 dpˆ fd7„«       Z ee ed«       e
d/«      j9                  d0dd«      e ed1«       ed«      e ed«      d8e ed«       e
d9«      j9                  d0dd«       ed«       e
d:«      j9                  d0dd«      dd;d<¬«      	 	 	 	 do	 	 	 	 	 	 	 dpˆ fd=„«       Z ee ed«       e
d/«      j9                  d0dd«      e ed«      e ed«      e ed«      d> ed«       e
d?«      j9                  d0dd«      dd@dA¬«      dqdrˆ fdB„«       Z ee ed«      e ed«      e ed«      dCe ed«      dD ed«       e
dE«      ddFdG¬«      didjˆ fdH„«       Z  ee ed«      e ed«      e ed«      dIe ed«      dJ ed«       e
dK«      j9                  d0dd«      ddLdM¬«      didjˆ fdN„«       Z! ee ed«       e
dO«      j9                  d0dd«      e ed«      e ed«      e ed«       e
dP«      ddQdQ¬«       e"dQdR¬S«      	 	 ds	 	 	 	 	 dtˆ fdT„«       «       Z# eedU ed«       e
dV«      j9                  d0dd«      e ed«      e ed«      e ed«       e
dW«      j9                  d0dd«      ddXdX¬«      	 	 	 	 du	 	 	 	 	 	 	 dvˆ fdY„«       Z$ ee ed«       e
dZ«      j9                  d0dd«      e ed«      e ed«      e ed«       e
d[«      dd\d]¬«      	 	 	 	 dw	 	 	 	 	 	 	 dxˆ fd^„«       Z% ee ed«       e
d_«      j9                  d0dd«      e ed«      e ed«       e
d`«      j9                  d0dd«      e ed«       e
da«       ed«       e
db«      ddcdd¬«      	 	 	 	 dw	 	 	 	 	 	 	 dxˆ fde„«       Z&ˆ xZ'S )yÚ	Expandingaï  
    Provide expanding window calculations.

    Parameters
    ----------
    min_periods : int, default 1
        Minimum number of observations in window required to have a value;
        otherwise, result is ``np.nan``.

    axis : int or str, default 0
        If ``0`` or ``'index'``, roll across the rows.

        If ``1`` or ``'columns'``, roll across the columns.

        For `Series` this parameter is unused and defaults to 0.

    method : str {'single', 'table'}, default 'single'
        Execute the rolling operation per single column or row (``'single'``)
        or over the entire object (``'table'``).

        This argument is only implemented when specifying ``engine='numba'``
        in the method call.

        .. versionadded:: 1.3.0

    Returns
    -------
    pandas.api.typing.Expanding

    See Also
    --------
    rolling : Provides rolling window calculations.
    ewm : Provides exponential weighted functions.

    Notes
    -----
    See :ref:`Windowing Operations <window.expanding>` for further usage details
    and examples.

    Examples
    --------
    >>> df = pd.DataFrame({"B": [0, 1, 2, np.nan, 4]})
    >>> df
         B
    0  0.0
    1  1.0
    2  2.0
    3  NaN
    4  4.0

    **min_periods**

    Expanding sum with 1 vs 3 observations needed to calculate a value.

    >>> df.expanding(1).sum()
         B
    0  0.0
    1  1.0
    2  3.0
    3  3.0
    4  7.0
    >>> df.expanding(3).sum()
         B
    0  NaN
    1  NaN
    2  3.0
    3  3.0
    4  7.0
    )Úmin_periodsÚaxisÚmethodz	list[str]Ú_attributesé   c                ó.   •— t         ‰| �  |||||¬«       y )N)Úobjr!   r"   r#   Ú	selection)ÚsuperÚ__init__)Úselfr'   r!   r"   r#   r(   Ú	__class__s         €úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/core/window/expanding.pyr*   zExpanding.__init__|   s&   ø€ ô 	‰ÑØØ#ØØØð 	õ 	
ó    c                ó   — t        «       S )z[
        Return an indexer class that will compute the window start and end bounds
        )r   )r+   s    r-   Ú_get_window_indexerzExpanding._get_window_indexerŒ   s   € ô  Ó!Ð!r.   Ú	aggregatez£
        See Also
        --------
        pandas.DataFrame.aggregate : Similar DataFrame method.
        pandas.Series.aggregate : Similar Series method.
        aœ  
        Examples
        --------
        >>> df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9]})
        >>> df
           A  B  C
        0  1  4  7
        1  2  5  8
        2  3  6  9

        >>> df.ewm(alpha=0.5).mean()
                  A         B         C
        0  1.000000  4.000000  7.000000
        1  1.666667  4.666667  7.666667
        2  2.428571  5.428571  8.428571
        zSeries/DataframeÚ )Úsee_alsoÚexamplesÚklassr"   c                ó*   •— t        ‰| �  |g|¢­i |¤ŽS )N)r)   r1   )r+   ÚfuncÚargsÚkwargsr,   s       €r-   r1   zExpanding.aggregate’   s    ø€ ô@ ‰wÑ  Ð7¨Ò7°Ñ7Ð7r.   ÚReturnszSee AlsoÚExampleszÍ        >>> ser = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
        >>> ser.expanding().count()
        a    1.0
        b    2.0
        c    3.0
        d    4.0
        dtype: float64
        Ú	expandingzcount of non NaN observationsÚcount)Úwindow_methodÚaggregation_descriptionÚ
agg_methodc                ó$   •— t         ‰| �  |¬«      S ©N)Únumeric_only)r)   r=   ©r+   rC   r,   s     €r-   r=   zExpanding.count¶   s   ø€ ô. ‰w‰}¨,ˆ}Ó7Ð7r.   Ú
Parameterszì        >>> ser = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
        >>> ser.expanding().apply(lambda s: s.max() - 2 * s.min())
        a   -1.0
        b    0.0
        c    1.0
        d    2.0
        dtype: float64
        zcustom aggregation functionÚapplyc                ó.   •— t         ‰| �  ||||||¬«      S )N)ÚrawÚengineÚengine_kwargsr8   r9   )r)   rF   )r+   r7   rH   rI   rJ   r8   r9   r,   s          €r-   rF   zExpanding.applyÏ   s.   ø€ ôB ‰w‰}ØØØØ'ØØð ó 
ð 	
r.   ÚNoteszÏ        >>> ser = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
        >>> ser.expanding().sum()
        a     1.0
        b     3.0
        c     6.0
        d    10.0
        dtype: float64
        Úsumc                ó(   •— t         ‰| �  |||¬«      S ©N)rC   rI   rJ   )r)   rL   ©r+   rC   rI   rJ   r,   s       €r-   rL   zExpanding.sumù   ó%   ø€ ôB ‰w‰{Ø%ØØ'ð ó 
ð 	
r.   zË        >>> ser = pd.Series([3, 2, 1, 4], index=['a', 'b', 'c', 'd'])
        >>> ser.expanding().max()
        a    3.0
        b    3.0
        c    3.0
        d    4.0
        dtype: float64
        ÚmaximumÚmaxc                ó(   •— t         ‰| �  |||¬«      S rN   )r)   rR   rO   s       €r-   rR   zExpanding.max   rP   r.   zË        >>> ser = pd.Series([2, 3, 4, 1], index=['a', 'b', 'c', 'd'])
        >>> ser.expanding().min()
        a    2.0
        b    2.0
        c    2.0
        d    1.0
        dtype: float64
        ÚminimumÚminc                ó(   •— t         ‰| �  |||¬«      S rN   )r)   rU   rO   s       €r-   rU   zExpanding.minG  rP   r.   zÌ        >>> ser = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
        >>> ser.expanding().mean()
        a    1.0
        b    1.5
        c    2.0
        d    2.5
        dtype: float64
        Úmeanc                ó(   •— t         ‰| �  |||¬«      S rN   )r)   rW   rO   s       €r-   rW   zExpanding.meann  s%   ø€ ôB ‰w‰|Ø%ØØ'ð ó 
ð 	
r.   zÎ        >>> ser = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
        >>> ser.expanding().median()
        a    1.0
        b    1.5
        c    2.0
        d    2.5
        dtype: float64
        Úmedianc                ó(   •— t         ‰| �  |||¬«      S rN   )r)   rY   rO   s       €r-   rY   zExpanding.median•  s%   ø€ ôB ‰w‰~Ø%ØØ'ð ó 
ð 	
r.   z¼
        ddof : int, default 1
            Delta Degrees of Freedom.  The divisor used in calculations
            is ``N - ddof``, where ``N`` represents the number of elements.

        ú
z1.4z/numpy.std : Equivalent method for NumPy array.
zÛ
        The default ``ddof`` of 1 used in :meth:`Series.std` is different
        than the default ``ddof`` of 0 in :func:`numpy.std`.

        A minimum of one period is required for the rolling calculation.

        a  
        >>> s = pd.Series([5, 5, 6, 7, 5, 5, 5])

        >>> s.expanding(3).std()
        0         NaN
        1         NaN
        2    0.577350
        3    0.957427
        4    0.894427
        5    0.836660
        6    0.786796
        dtype: float64
        zstandard deviationÚstdc                ó*   •— t         ‰| �  ||||¬«      S ©N)ÚddofrC   rI   rJ   )r)   r\   ©r+   r_   rC   rI   rJ   r,   s        €r-   r\   zExpanding.std¼  ó(   ø€ ôj ‰w‰{ØØ%ØØ'ð	 ó 
ð 	
r.   z/numpy.var : Equivalent method for NumPy array.
zÛ
        The default ``ddof`` of 1 used in :meth:`Series.var` is different
        than the default ``ddof`` of 0 in :func:`numpy.var`.

        A minimum of one period is required for the rolling calculation.

        a  
        >>> s = pd.Series([5, 5, 6, 7, 5, 5, 5])

        >>> s.expanding(3).var()
        0         NaN
        1         NaN
        2    0.333333
        3    0.916667
        4    0.800000
        5    0.700000
        6    0.619048
        dtype: float64
        ÚvarianceÚvarc                ó*   •— t         ‰| �  ||||¬«      S r^   )r)   rc   r`   s        €r-   rc   zExpanding.varø  ra   r.   z:A minimum of one period is required for the calculation.

zÁ
        >>> s = pd.Series([0, 1, 2, 3])

        >>> s.expanding().sem()
        0         NaN
        1    0.707107
        2    0.707107
        3    0.745356
        dtype: float64
        zstandard error of meanÚsemc                ó&   •— t         ‰| �  ||¬«      S )N)r_   rC   )r)   re   )r+   r_   rC   r,   s      €r-   re   zExpanding.sem4  s   ø€ ôF ‰w‰{ °<ˆ{Ó@Ð@r.   z:scipy.stats.skew : Third moment of a probability density.
zEA minimum of three periods is required for the rolling calculation.

a           >>> ser = pd.Series([-1, 0, 2, -1, 2], index=['a', 'b', 'c', 'd', 'e'])
        >>> ser.expanding().skew()
        a         NaN
        b         NaN
        c    0.935220
        d    1.414214
        e    0.315356
        dtype: float64
        zunbiased skewnessÚskewc                ó$   •— t         ‰| �  |¬«      S rB   )r)   rg   rD   s     €r-   rg   zExpanding.skewY  s   ø€ ô: ‰w‰|¨ˆ|Ó6Ð6r.   z/scipy.stats.kurtosis : Reference SciPy method.
z<A minimum of four periods is required for the calculation.

a[  
        The example below will show a rolling calculation with a window size of
        four matching the equivalent function call using `scipy.stats`.

        >>> arr = [1, 2, 3, 4, 999]
        >>> import scipy.stats
        >>> print(f"{{scipy.stats.kurtosis(arr[:-1], bias=False):.6f}}")
        -1.200000
        >>> print(f"{{scipy.stats.kurtosis(arr, bias=False):.6f}}")
        4.999874
        >>> s = pd.Series(arr)
        >>> s.expanding(4).kurt()
        0         NaN
        1         NaN
        2         NaN
        3   -1.200000
        4    4.999874
        dtype: float64
        z,Fisher's definition of kurtosis without biasÚkurtc                ó$   •— t         ‰| �  |¬«      S rB   )r)   ri   rD   s     €r-   ri   zExpanding.kurtx  s   ø€ ôL ‰w‰|¨ˆ|Ó6Ð6r.   aæ  
        quantile : float
            Quantile to compute. 0 <= quantile <= 1.

            .. deprecated:: 2.1.0
                This will be renamed to 'q' in a future version.
        interpolation : {{'linear', 'lower', 'higher', 'midpoint', 'nearest'}}
            This optional parameter specifies the interpolation method to use,
            when the desired quantile lies between two data points `i` and `j`:

                * linear: `i + (j - i) * fraction`, where `fraction` is the
                  fractional part of the index surrounded by `i` and `j`.
                * lower: `i`.
                * higher: `j`.
                * nearest: `i` or `j` whichever is nearest.
                * midpoint: (`i` + `j`) / 2.
        a          >>> ser = pd.Series([1, 2, 3, 4, 5, 6], index=['a', 'b', 'c', 'd', 'e', 'f'])
        >>> ser.expanding(min_periods=4).quantile(.25)
        a     NaN
        b     NaN
        c     NaN
        d    1.75
        e    2.00
        f    2.25
        dtype: float64
        ÚquantileÚq)Úold_arg_nameÚnew_arg_namec                ó(   •— t         ‰| �  |||¬«      S )N)rl   ÚinterpolationrC   )r)   rk   )r+   rl   rp   rC   r,   s       €r-   rk   zExpanding.quantile   s&   ø€ ôh ‰wÑØØ'Ø%ð  ó 
ð 	
r.   z.. versionadded:: 1.4.0 

a  
        method : {{'average', 'min', 'max'}}, default 'average'
            How to rank the group of records that have the same value (i.e. ties):

            * average: average rank of the group
            * min: lowest rank in the group
            * max: highest rank in the group

        ascending : bool, default True
            Whether or not the elements should be ranked in ascending order.
        pct : bool, default False
            Whether or not to display the returned rankings in percentile
            form.
        a+  
        >>> s = pd.Series([1, 4, 2, 3, 5, 3])
        >>> s.expanding().rank()
        0    1.0
        1    2.0
        2    2.0
        3    3.0
        4    5.0
        5    3.5
        dtype: float64

        >>> s.expanding().rank(method="max")
        0    1.0
        1    2.0
        2    2.0
        3    3.0
        4    5.0
        5    4.0
        dtype: float64

        >>> s.expanding().rank(method="min")
        0    1.0
        1    2.0
        2    2.0
        3    3.0
        4    5.0
        5    3.0
        dtype: float64
        Úrankc                ó*   •— t         ‰| �  ||||¬«      S )N)r#   Ú	ascendingÚpctrC   )r)   rq   )r+   r#   rs   rt   rC   r,   s        €r-   rq   zExpanding.rankÚ  s(   ø€ ôH ‰w‰|ØØØØ%ð	 ó 
ð 	
r.   a   
        other : Series or DataFrame, optional
            If not supplied then will default to self and produce pairwise
            output.
        pairwise : bool, default None
            If False then only matching columns between self and other will be
            used and the output will be a DataFrame.
            If True then all pairwise combinations will be calculated and the
            output will be a MultiIndexed DataFrame in the case of DataFrame
            inputs. In the case of missing elements, only complete pairwise
            observations will be used.
        ddof : int, default 1
            Delta Degrees of Freedom.  The divisor used in calculations
            is ``N - ddof``, where ``N`` represents the number of elements.
        a0          >>> ser1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
        >>> ser2 = pd.Series([10, 11, 13, 16], index=['a', 'b', 'c', 'd'])
        >>> ser1.expanding().cov(ser2)
        a         NaN
        b    0.500000
        c    1.500000
        d    3.333333
        dtype: float64
        zsample covarianceÚcovc                ó*   •— t         ‰| �  ||||¬«      S ©N)ÚotherÚpairwiser_   rC   )r)   ru   ©r+   rx   ry   r_   rC   r,   s        €r-   ru   zExpanding.cov%  s(   ø€ ôb ‰w‰{ØØØØ%ð	 ó 
ð 	
r.   aN  
        other : Series or DataFrame, optional
            If not supplied then will default to self and produce pairwise
            output.
        pairwise : bool, default None
            If False then only matching columns between self and other will be
            used and the output will be a DataFrame.
            If True then all pairwise combinations will be calculated and the
            output will be a MultiIndexed DataFrame in the case of DataFrame
            inputs. In the case of missing elements, only complete pairwise
            observations will be used.
        z�
        cov : Similar method to calculate covariance.
        numpy.corrcoef : NumPy Pearson's correlation calculation.
        ao  
        This function uses Pearson's definition of correlation
        (https://en.wikipedia.org/wiki/Pearson_correlation_coefficient).

        When `other` is not specified, the output will be self correlation (e.g.
        all 1's), except for :class:`~pandas.DataFrame` inputs with `pairwise`
        set to `True`.

        Function will return ``NaN`` for correlations of equal valued sequences;
        this is the result of a 0/0 division error.

        When `pairwise` is set to `False`, only matching columns between `self` and
        `other` will be used.

        When `pairwise` is set to `True`, the output will be a MultiIndex DataFrame
        with the original index on the first level, and the `other` DataFrame
        columns on the second level.

        In the case of missing elements, only complete pairwise observations
        will be used.

        a1          >>> ser1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
        >>> ser2 = pd.Series([10, 11, 13, 16], index=['a', 'b', 'c', 'd'])
        >>> ser1.expanding().corr(ser2)
        a         NaN
        b    1.000000
        c    0.981981
        d    0.975900
        dtype: float64
        ÚcorrelationÚcorrc                ó*   •— t         ‰| �  ||||¬«      S rw   )r)   r|   rz   s        €r-   r|   zExpanding.corr]  s(   ø€ ôX ‰w‰|ØØØØ%ð	 ó 
ð 	
r.   )r%   r   ÚsingleN)
r'   r   r!   Úintr"   r   r#   ÚstrÚreturnÚNone)r�   r   )F)rC   Úbool)FNNNN)r7   zCallable[..., Any]rH   rƒ   rI   ú!Literal['cython', 'numba'] | NonerJ   údict[str, bool] | Noner8   ztuple[Any, ...] | Noner9   zdict[str, Any] | None)FNN)rC   rƒ   rI   r„   rJ   r…   )r%   FNN)r_   r   rC   rƒ   rI   r„   rJ   r…   )r%   F)r_   r   rC   rƒ   )ÚlinearF)rl   Úfloatrp   r   rC   rƒ   )ÚaverageTFF)r#   r   rs   rƒ   rt   rƒ   rC   rƒ   )NNr%   F)rx   zDataFrame | Series | Nonery   zbool | Noner_   r   rC   rƒ   )(Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   Ú__annotations__r*   r0   r
   r   r   r1   Úaggr   r   r   r   r=   r   rF   r   r   r   rL   rR   rU   rW   rY   Úreplacer\   rc   re   rg   ri   r	   rk   rq   ru   r|   Ú__classcell__)r,   s   @r-   r    r    3   sý
  ø… ñDòL ?€K�Ó>ð
 ØØØð
àð
ð ð
ð ð	
ð
 ð
ð 
õ
ó "ñ 	Ø�[Ñ!Ùðó
ñ ðó
ð$ !Øô;ó>8ó?ð>8ð €CáØÙ˜iÓ(ØÙ˜jÓ)ØÙ˜jÓ)Ùðó
	
ð "Ø ?Øô)õ,8ó-ð,8ñ 	ØÙ˜lÓ+ØÙ˜iÓ(ØÙ˜jÓ)ØÙ˜jÓ)Ùðó
	
ð "Ø =Øô-ð6 Ø48Ø04Ø'+Ø(,ð
à ð
ð ð
ð 2ð	
ð
 .ð
ð %ð
ð &ô
ó1ð0
ñ$ 	ØÙ˜lÓ+ØÙ#Ó%Ù˜iÓ(ØÙ˜jÓ)ØÙ˜gÓ&ØÙ˜jÓ)Ùðó
	
ð "Ø %Øô3ð: #Ø48Ø04ð	

àð

ð 2ð

ð .ô	

ó7ð6

ñ 	ØÙ˜lÓ+ØÙ#Ó%Ù˜iÓ(ØÙ˜jÓ)ØÙ˜gÓ&ØÙ˜jÓ)Ùðó
	
ð "Ø )Øô3ð: #Ø48Ø04ð	

àð

ð 2ð

ð .ô	

ó7ð6

ñ 	ØÙ˜lÓ+ØÙ#Ó%Ù˜iÓ(ØÙ˜jÓ)ØÙ˜gÓ&ØÙ˜jÓ)Ùðó
	
ð "Ø )Øô3ð: #Ø48Ø04ð	

àð

ð 2ð

ð .ô	

ó7ð6

ñ 	ØÙ˜lÓ+ØÙ#Ó%Ù˜iÓ(ØÙ˜jÓ)ØÙ˜gÓ&ØÙ˜jÓ)Ùðó
	
ð "Ø &Øô3ð: #Ø48Ø04ð	

àð

ð 2ð

ð .ô	

ó7ð6

ñ 	ØÙ˜lÓ+ØÙ#Ó%Ù˜iÓ(ØÙ˜jÓ)ØÙ˜gÓ&ØÙ˜jÓ)Ùðó
	
ð "Ø (Øô3ð: #Ø48Ø04ð	

àð

ð 2ð

ð .ô	

ó7ð6

ñ 	ØÙ˜lÓ+Ùðó	
÷ ‰'�$˜˜AÓ
ØÙ# EÓ*Ù˜iÓ(ØÙ˜jÓ)Ø:ØÙ˜gÓ&Ùðó	
÷ ‰'�$˜˜AÓ
Ù˜jÓ)Ùðó	
÷ ‰'�$˜˜AÓ
Ø!Ø 4ØôY-ð` Ø"Ø48Ø04ð
àð
ð ð
ð 2ð	
ð
 .ô
ó]-ð\
ñ 	ØÙ˜lÓ+Ùðó	
÷ ‰'�$˜˜AÓ
ØÙ# EÓ*Ù˜iÓ(ØÙ˜jÓ)Ø:ØÙ˜gÓ&Ùðó	
÷ ‰'�$˜˜AÓ
Ù˜jÓ)Ùðó	
÷ ‰'�$˜˜AÓ
Ø!Ø *ØôY-ð` Ø"Ø48Ø04ð
àð
ð ð
ð 2ð	
ð
 .ô
ó]-ð\
ñ 	ØÙ˜lÓ+Ùðó	
÷ ‰'�$˜˜AÓ
ØÙ˜iÓ(ØÙ˜jÓ)ØÙ˜gÓ&ØFÙ˜jÓ)Ùð	ó	
÷ ‰'�$˜˜AÓ
Ø!Ø 8ØôA!õDAóE!ðDAñ 	ØÙ˜lÓ+ØÙ˜iÓ(ØÙ˜jÓ)ØEØÙ˜gÓ&ØQÙ˜jÓ)Ùð	ó	
ð "Ø 3Øô5õ87ó9ð87ñ 	ØÙ˜lÓ+ØÙ˜iÓ(ØÙ˜jÓ)Ø:ØÙ˜gÓ&ØHÙ˜jÓ)Ùðó	
÷( ‰'�$˜˜AÓ
Ø!Ø NØôG$õJ7óK$ðJ7ñ 	ØÙ˜lÓ+Ùðó	
÷$ ‰'�$˜˜AÓ
ØÙ˜iÓ(ØÙ˜jÓ)ØÙ˜jÓ)Ùð
ó	
ð "Ø *ØôW,ñZ  *¸3Ô?ð 08Ø"ð	

àð

ð -ð

ð ô	

ó @ó[,ð\

ñ 	ØØ&Ù˜lÓ+Ùðó	
÷ ‰'�$˜˜AÓ
ØÙ˜iÓ(ØÙ˜jÓ)ØÙ˜jÓ)Ùðó	
÷< ‰'�$˜˜AÓ
Ø!Ø &Øôw<ð~ %.ØØØ"ð
à!ð
ð ð
ð ð	
ð
 ô
ó{<ðz
ñ 	ØÙ˜lÓ+Ùðó	
÷  ‰'�$˜˜AÓ
ØÙ˜iÓ(ØÙ˜jÓ)ØÙ˜jÓ)Ùð	ó	
ð "Ø 3ØôQ)ðX ,0Ø $ØØ"ð
à(ð
ð ð
ð ð	
ð
 ô
óU)ðT
ñ 	ØÙ˜lÓ+Ùðó	
÷ ‰'�$˜˜AÓ
ØÙ˜iÓ(ØÙ˜jÓ)Ùðó	
÷
 ‰'�$˜˜AÓ
ØÙ˜gÓ&Ùðó	
ñ. 	˜jÓ)Ùð	ó	
ð "Ø -ØôGDðN ,0Ø $ØØ"ð
à(ð
ð ð
ð ð	
ð
 ô
óKDôJ
r.   r    c                  óJ   — e Zd ZdZej
                  ej
                  z   Zdd„Zy)ÚExpandingGroupbyz5
    Provide a expanding groupby implementation.
    c                óP   — t        | j                  j                  t        ¬«      }|S )z“
        Return an indexer class that will compute the window start and end bounds

        Returns
        -------
        GroupbyIndexer
        )Úgroupby_indicesÚwindow_indexer)r   Ú_grouperÚindicesr   )r+   r•   s     r-   r0   z$ExpandingGroupby._get_window_indexer¸  s&   € ô (Ø ŸM™M×1Ñ1Ü+ô
ˆð Ðr.   N)r�   r   )r‰   rŠ   r‹   rŒ   r    r$   r   r0   © r.   r-   r’   r’   ±  s%   „ ñð ×'Ñ'Ð*;×*GÑ*GÑG€Kôr.   r’   N)(Ú
__future__r   Útextwrapr   Útypingr   r   r   r   Úpandas.util._decoratorsr	   r
   Úpandas.core.indexers.objectsr   r   r   Úpandas.core.window.docr   r   r   r   r   r   r   r   r   Úpandas.core.window.rollingr   r   Úpandas._typingr   r   r   Úpandasr   r   Úpandas.core.genericr   r    r’   r˜   r.   r-   ú<module>r£      sp   ðÝ "å ÷ó ÷÷
ñ ÷

÷ 
õ 
÷ñ
 ÷ñ ÷õ ,ô{
Ð(ô {
ô|Ð(¨)õ r.   