a
    é´«j/¶  ã                   @   s¶   d dl Zd dlZd dl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 ejdd„ ƒZejdd„ ƒZG d	d
„ d
ƒZG dd„ dƒZG dd„ dƒZdd„ Zdd„ ZdS )é    N)Ú	DataFrameÚDatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚto_datetime)ÚBaseIndexer)Úget_groupbyc                   C   s    t g d¢g d¢tg d¢ƒdœƒS )z0Frame for testing times argument in EWM groupby.)
ÚaÚbÚcr   r   r   r   r   r   r   )
r   r   r   é   r   r   é   r   r   é   )
ú
2020-01-01r   r   z
2020-01-02ú
2020-01-10z
2020-01-22z
2020-01-03ú
2020-01-23r   z
2020-01-04©ÚAÚBÚC)r   r	   © r   r   ú_/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/window/test_groupby.pyÚtimes_frame   s    ÿýÿr   c                   C   s.   t dgd dgd  dgd  t d¡dœƒS ©	Nr   é   r   é   r   é   é(   ©r   r   ©r   ÚnpÚaranger   r   r   r   Ú
roll_frame,   s    r%   c                   @   sD  e Zd Zdd„ Zdd„ Zdd„ Zej dg d¢¡d	d
„ ƒZ	ej dddg¡dd„ ƒZ
ej dg d¢¡dd„ ƒZej dddgddgg¡dd„ ƒZej dddg¡dd„ ƒZej dddg¡dd„ ƒZej ddddgdd ggfdddgddggfg¡d!d"„ ƒZd#d$„ Zd%d&„ Zej d'dd(gd)d*gg¡d+d,„ ƒZd-d.„ Zd/d0„ Zej d1g d2¢¡d3d4„ ƒZd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Zej d=d>d?g¡d@dA„ ƒZdBdC„ ZdDdE„ ZdFdG„ ZdHdI„ Zej dJdKdLddMœfdNi fg¡dOdP„ ƒZej dQdRdSidSfdRdTidUfg¡dVdW„ ƒZ ej dXd(d*g¡dYdZ„ ƒZ!d[d\„ Z"d]d^„ Z#d_d`„ Z$dadb„ Z%dcdd„ Z&ej dedLdfdgg dh¢fdLdLdgg di¢fdjdjdgg dk¢fdjdjdlg dm¢fg¡dndo„ ƒZ'ej dpe( )dqdrg¡dsdtgg¡dudv„ ƒZ*dwdx„ Z+ej dydzgd{g d|¢igdzdUge,d}ƒe,d~ƒe,d}ƒe,d~ƒgg d¢d€œgg¡d�d‚„ ƒZ-dƒd„„ Z.d…d†„ Z/d‡dˆ„ Z0d‰dŠ„ Z1d‹dŒ„ Z2dTS )�ÚTestRollingc                 C   sD   d}t jt|d�� |jddd� W d   ƒ n1 s60    Y  d S )Nz4groupby\(\) got an unexpected keyword argument 'foo'©Úmatchr   r   )Úfoo)ÚpytestÚraisesÚ	TypeErrorÚgroupby)Úselfr%   Úmsgr   r   r   Ú!test_groupby_unsupported_argument2   s    z-TestRolling.test_groupby_unsupported_argumentc                 C   s¢   |  d¡}t|dd�}|j dd„ ¡}| d¡ ¡ j}t ||¡ | d¡j ¡ }t ||¡ |j d¡ ¡ }t ||¡ |j  |j¡ d¡ ¡ }t ||¡ d S )Nr   ©Úbyc                 S   s   |   d¡ ¡ S )Nr   ©ÚrollingÚmean©Úxr   r   r   Ú<lambda>;   ó    z*TestRolling.test_getitem.<locals>.<lambda>r   )	r-   r   r   Úapplyr4   r5   ÚtmÚassert_series_equalr   )r.   r%   ÚgÚ	g_mutatedÚexpectedÚresultr   r   r   Útest_getitem7   s    
zTestRolling.test_getitemc                 C   sd   |  d¡}|jddd�}t|dd�}|j dd„ ¡}|j ¡ }t ||¡ |j ¡ }t ||¡ d S )Nr   r   r   ©Úmin_periodsr1   c                 S   s   | j ddd� ¡ S )Nr   r   rB   )r4   Úcountr6   r   r   r   r8   N   r9   z3TestRolling.test_getitem_multiple.<locals>.<lambda>)r-   r4   r   r   r:   rD   r;   r<   )r.   r%   r=   Úrr>   r?   r@   r   r   r   Útest_getitem_multipleI   s    


z!TestRolling.test_getitem_multipleÚf©Úsumr5   ÚminÚmaxrD   ZkurtZskewc           	         s¤   |j ddd�}|jdd�}t|ˆ ƒƒ }d}tjt|d��" | ‡ fdd	„¡}W d   ƒ n1 s`0    Y  |jdd
d�}t 	|d t
dƒg¡}||_t ||¡ d S )Nr   F©Ú
group_keysé   ©Úwindowú7DataFrameGroupBy.apply operated on the grouping columnsr'   c                    s   t |  d¡ˆ ƒƒ S ©NrN   ©Úgetattrr4   r6   ©rG   r   r   r8   i   r9   z*TestRolling.test_rolling.<locals>.<lambda>r   ©Zaxisr    ©r-   r4   rT   r;   Úassert_produces_warningÚFutureWarningr:   Údropr   Úfrom_arraysÚrangeÚindexÚassert_frame_equal©	r.   rG   r%   r=   rE   r@   r/   r?   Úexpected_indexr   rU   r   Útest_rollingV   s    0zTestRolling.test_rollingÚstdÚvarc           	         s¨   |j ddd�}|jdd�}t|ˆ ƒdd�}d}tjt|d	��" | ‡ fd
d„¡}W d   ƒ n1 sd0    Y  |jddd�}t 	|d t
dƒg¡}||_t ||¡ d S )Nr   FrL   rN   rO   r   ©ZddofrQ   r'   c                    s   t |  d¡ˆ ƒdd�S )NrN   r   rd   rS   r6   rU   r   r   r8   y   r9   z/TestRolling.test_rolling_ddof.<locals>.<lambda>rV   r    rW   r_   r   rU   r   Útest_rolling_ddofq   s    0zTestRolling.test_rolling_ddofÚinterpolation©ZlinearÚlowerZhigherZmidpointZnearestc           	         s¦   |j ddd�}|jdd�}|jdˆ d�}d}tjt|d	��" | ‡ fd
d„¡}W d   ƒ n1 sb0    Y  |jddd�}t 	|d t
dƒg¡}||_t ||¡ d S )Nr   FrL   rN   rO   çš™™™™™Ù?©rf   rQ   r'   c                    s   |   d¡jdˆ d�S )NrN   ri   rj   )r4   Úquantiler6   rj   r   r   r8   Œ   r9   z3TestRolling.test_rolling_quantile.<locals>.<lambda>r   rV   r    )r-   r4   rk   r;   rX   rY   r:   rZ   r   r[   r\   r]   r^   )	r.   rf   r%   r=   rE   r@   r/   r?   r`   r   rj   r   Útest_rolling_quantile�   s    
ÿ"z!TestRolling.test_rolling_quantilezf, expected_valÚcorrr   Úcovç      à?c              
   C   sæ   t tdƒdgd dgd  g d¢d dœƒ ddg¡}t tdƒg d¢d	œƒ d¡}t|jd
d� d¡|ƒ|ƒ}tjg|gd  d }t |dgtj	dgd dgd  dgd dgd  t
tddƒƒd gg d¢d�d�}t ||¡ d S )Né
   r   é   r   )r   r   r   rN   rq   )ÚvalueÚidx1Úidx2rs   rt   )rr   rt   r   ©ÚlevelrN   rr   é   )rs   rs   rt   ©Únames©Úcolumnsr]   )r   r\   Ú	set_indexrT   r-   r4   r#   Únanr   r[   Úlistr;   r^   )r.   rG   Zexpected_valÚdfÚotherr@   Úexpected_datar?   r   r   r   Ú/test_rolling_corr_cov_other_same_size_as_groups•   s,    &ÿþÿýúýz;TestRolling.test_rolling_corr_cov_other_same_size_as_groupsc           	         sˆ   ˆ  d¡}|jdd�}t|ˆ ƒˆƒ}‡ ‡fdd„}d}tjt|d�� | |¡}W d   ƒ n1 sd0    Y  tj|d< t 	||¡ d S )Nr   rN   rO   c                    s   t |  d¡ˆ ƒˆƒS rR   rS   r6   ©rG   r%   r   r   Úfuncµ   s    zITestRolling.test_rolling_corr_cov_other_diff_size_as_groups.<locals>.funcrQ   r'   )
r-   r4   rT   r;   rX   rY   r:   r#   r}   r^   ©	r.   rG   r%   r=   rE   r@   r„   r/   r?   r   rƒ   r   Ú/test_rolling_corr_cov_other_diff_size_as_groups®   s    
(
z;TestRolling.test_rolling_corr_cov_other_diff_size_as_groupsc           	         s€   |  d¡}|jdd�}t|jˆ ƒdd�}‡ fdd„}d}tjt|d	�� | |¡}W d   ƒ n1 sf0    Y  t ||¡ d S )
Nr   rN   rO   T©Úpairwisec                    s   t | j d¡ˆ ƒdd�S )NrN   Tr‡   )rT   r   r4   r6   rU   r   r   r„   Ç   s    z8TestRolling.test_rolling_corr_cov_pairwise.<locals>.funcrQ   r'   )	r-   r4   rT   r   r;   rX   rY   r:   r<   r…   r   rU   r   Útest_rolling_corr_cov_pairwiseÀ   s    
(z*TestRolling.test_rolling_corr_cov_pairwisezfunc, expected_valuesç      ð?ç      @c                 C   s¤   t g d¢g d¢g d¢dœƒ}| d¡ d¡}t||ƒƒ }t dtjg |d  d	tjg  dtjg |d
  d	tjg  dœtjg d¢g d¢d�d�}t 	||¡ d S )N)Úg1Úg2rŒ   rŒ   )r   r   r   r   )r   r   rw   rN   ©r   r   r   r   r   rN   r   r   r   )r   r   ))rŒ   r   r   )rŒ   r   r   )rŒ   r   r   )rŒ   r   r   )rŒ   r   r   )rŒ   r   r   )r�   r   r   )r�   r   r   )r   NNrx   ©r]   )
r   r-   r4   rT   r#   r}   r   Úfrom_tuplesr;   r^   )r.   r„   Zexpected_valuesr   Zrolr@   r?   r   r   r   Útest_rolling_corr_cov_unorderedÏ   s$    ýÿþ
õûz+TestRolling.test_rolling_corr_cov_unorderedc           	         sª   |j ddd�}|jdd�}|jdd„ ˆ d�}d	}tjt|d
��" | ‡ fdd„¡}W d   ƒ n1 sf0    Y  |jddd�}t |d t	dƒg¡}||_
t ||¡ d S )Nr   FrL   rN   rO   c                 S   s   |   ¡ S ©N©rI   r6   r   r   r   r8   ø   r9   z0TestRolling.test_rolling_apply.<locals>.<lambda>©ÚrawrQ   r'   c                    s   |   d¡jdd„ ˆ d�S )NrN   c                 S   s   |   ¡ S r’   r“   ©Úyr   r   r   r8   û   r9   zBTestRolling.test_rolling_apply.<locals>.<lambda>.<locals>.<lambda>r”   )r4   r:   r6   r”   r   r   r8   û   r9   r   rV   r    )r-   r4   r:   r;   rX   rY   rZ   r   r[   r\   r]   r^   )	r.   r•   r%   r=   rE   r@   r/   r?   r`   r   r”   r   Útest_rolling_applyó   s    0zTestRolling.test_rolling_applyc                 C   s¦   t dgd dgd  dgd dœƒ}| d¡}t g d¢¡}dd g|_t tjd	d	gd
 dg|d�}|jd
d� ¡ }t	 
||¡ | ¡  |jd
d� ¡ }t	 
||¡ d S )Nr)   r   Úbarr   rw   r!   r   ))r™   r   )r™   rN   )r™   rq   )r)   r   )r)   r   )r)   r   ç       @r   r   rz   rO   )r   r-   r   r�   ry   r#   r}   r4   rI   r;   r^   )r.   r   r=   Úmir?   r@   r   r   r   Útest_rolling_apply_mutability  s    $
ÿ
z)TestRolling.test_rolling_apply_mutabilityzexpected_value,raw_valueTç        Fc                 C   sl   dd„ }t g d¢g d¢dœƒ}| d¡j d¡j||d�}t|gd	 tjd
dd gd�dd�}t 	||¡ d S )Nc                 S   s   t t| tjƒƒS r’   )ÚintÚ
isinstancer#   Zndarrayr6   r   r   r   Úisnumpyarray  s    z6TestRolling.test_groupby_rolling.<locals>.isnumpyarray©r   r   r   ©r   r   r   )Úidrr   r£   r   r”   r   )©r   r   ©r   r   ©r   r   rx   rr   ©r]   Úname)
r   r-   rr   r4   r:   r   r   r�   r;   r<   )r.   Zexpected_valueZ	raw_valuer    r   r@   r?   r   r   r   Útest_groupby_rolling  s    ýz TestRolling.test_groupby_rollingc                 C   sž  t tddƒƒ}| |¡jddd� ¡ }t tjgd t d¡d�}t	 
||¡ t tddƒƒ}| |¡jddd� ¡ }t tjgd	 t d
¡d�}t	 
||¡ tdgd dgd  tdƒdœƒ}| d¡jddd� ¡ }ttjdddtjtjddddtjgtjddd gd�dgd�}t	 ||¡ tdgd dgd  tdƒdœƒ}| d¡jddd� ¡ }ttjdddtjtjdddtjg
tjddd gd�dgd�}t	 ||¡ d S )Nr   rw   Tr   )ÚcenterrP   rq   )r¤   ©r   r   ©r   r   ©rN   r   )rq   rN   r�   rN   )r¤   r«   r¬   r­   r   r   é   ©r   r   r   é   r   é	   )©r   r   ©r   r   ©r   r   ©r   r   ©r   rN   ©r   rq   ©r   rw   ©r   r°   ©r   r   ©r   r±   )r   rp   rx   )r]   r{   rp   )
r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   )r   r\   r-   r4   r5   r#   r}   r   r�   r;   r<   r   r^   )r.   Zseriesr@   r?   r   r   r   r   Ú"test_groupby_rolling_center_center*  sH    
þ
þ" òî"óïz.TestRolling.test_groupby_rolling_center_centerc                 C   sŠ   t tddƒdgd dgd  tdƒdœd	�}| d
¡jddddd�j ¡ }tj|d
 |d gd
dgd�}t	g d¢d|d�}t
 ||¡ d S )Nr   r   Úgroup_1rw   Úgroup_2rN   rp   )ÚDateÚgbrr   )ÚdatarÀ   r¿   Tr   )Úonrª   rC   rx   )
rŠ   ç      ø?rš   g      @ç      @g      @ç      @ç      @rÆ   rÆ   rr   ©r¨   r]   )r   r   r\   r-   r4   rr   r5   r   r[   r   r;   r<   )r.   r   r@   r›   r?   r   r   r   Útest_groupby_rolling_center_onk  s"    ýÿ
ÿ
ÿýz*TestRolling.test_groupby_rolling_center_onrC   )rq   rN   r   c                 C   sâ   t dgd dgd  tdƒdœƒ}d}| d¡j|d|d	� ¡ }| ¡ dd
g }g d¢}dd„ |D ƒ}td|d ƒ}tjg| }|||d| …  | }	|||d| …  | }
t dgd dgd  |	|
 dœƒ}t	 
||¡ d S )Nr   rp   r   r   )ÚgrouprÁ   rq   rÉ   T)rª   rC   rÁ   )
rŠ   rÃ   rš   rÄ   r‹   ç      @g      @rÅ   rÆ   ç       @c                 S   s   g | ]}|d  ‘qS )g      $@r   ©Ú.0r7   r   r   r   Ú
<listcomp>�  r9   zGTestRolling.test_groupby_rolling_center_min_periods.<locals>.<listcomp>r   r   )r   r\   r-   r4   r5   Zreset_indexrK   r#   r}   r;   r^   )r.   rC   r   Úwindow_sizer@   Z
grp_A_meanZ
grp_B_meanZnum_nansZnansZgrp_A_expectedZgrp_B_expectedr?   r   r   r   Ú'test_groupby_rolling_center_min_periods�  s"    "
ÿÿÿz3TestRolling.test_groupby_rolling_center_min_periodsc                 C   sÀ   t g d¢g d¢g d¢dœƒ}| d¡dg  d¡ ¡ }t tjtjdtjgdgtjd	dd gd
�d�}t 	||¡ | d¡d  d¡ ¡ }t
tjtjdtjgtjd	dd gd
�dd�}t ||¡ d S )N)r   r   r   r   )r‹   rš   rÄ   rŠ   )rp   r   é   r   rŽ   r   r   r   rš   )r¤   r«   ©r   r   r¬   rx   rz   r§   )r   r-   r4   rK   r#   r}   r   r�   r;   r^   r   r<   ©r.   r   r@   r?   r   r   r   Útest_groupby_subselect_rollingœ  s*    ÿÿýÿûz*TestRolling.test_groupby_subselect_rollingc                 C   sŒ   G dd„ dt ƒ}tdg d¢d idgd dgd  d	gd  d
�}| |j¡j|dd�dd� ¡ }| |j¡jddd� ¡ }t ||¡ d S )Nc                   @   s   e Zd Zddd„ZdS )zFTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexerr   Nc                 S   sH   |d u r| j nd}tj|tjd�d }| ¡ | j  }|||dk < ||fS )Nr   ©Údtyper   )rÏ   r#   r$   Úint64Úcopy)r.   Z
num_valuesrC   rª   ÚclosedÚstepÚendÚstartr   r   r   Úget_window_bounds¸  s
    zXTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexer.get_window_bounds)r   NNNN)Ú__name__Ú
__module__Ú__qualname__rÝ   r   r   r   r   ÚSimpleIndexer·  s        úrá   r   )rŠ   rš   rÄ   r‹   rÊ   r   r   rq   r   r   r�   )rÏ   rB   ©rP   rC   )r
   r   r-   r]   r4   rI   r;   r^   )r.   rá   r   r@   r?   r   r   r   Ú#test_groupby_rolling_custom_indexerµ  s    *ÿ
ÿÿz/TestRolling.test_groupby_rolling_custom_indexerc              	   C   s¢   t tdƒtdƒdgd dgd  dd„ dD ƒd d	œƒ}| d
¡jdddd�d  ¡ }ttjtjddtjtjddgtj	|d
dg d
dgd�dd�}t
 ||¡ d S )Nr   r   rN   r   c                 S   s   g | ]}t |ƒ‘qS r   ©r   ©rÍ   Údater   r   r   rÎ   Ø  s   ÿzGTestRolling.test_groupby_rolling_subset_with_closed.<locals>.<listcomp>©ú
2019-01-01rè   ú
2019-01-02ré   r   ©Úcolumn1Zcolumn2rÉ   ræ   rÉ   Ú1Dræ   Úleft©rÂ   rÙ   rë   rŠ   ç      "@rx   r§   ©r   r\   r-   r4   rI   r   r#   r}   r   Z
from_framer;   r<   rÓ   r   r   r   Ú'test_groupby_rolling_subset_with_closedÑ  s,    þüüÿÿ
þúz3TestRolling.test_groupby_rolling_subset_with_closedc              	   C   sª   t tdƒtdƒdgd dgd  dd„ dD ƒd d	œƒ}| d
¡ddg jdddd�d  ¡ }ttjtjddtjtjddgtj	|d
dg d
dgd�dd�}t
 ||¡ d S )Nr   r   rN   r   c                 S   s   g | ]}t |ƒ‘qS r   rä   rå   r   r   r   rÎ   ó  s   ÿzNTestRolling.test_groupby_subset_rolling_subset_with_closed.<locals>.<listcomp>rç   r   rê   rÉ   rë   ræ   rì   rí   rî   rŠ   rï   rx   r§   rð   rÓ   r   r   r   Ú.test_groupby_subset_rolling_subset_with_closedì  s4    þüüÿÿÿÿ
þúz:TestRolling.test_groupby_subset_rolling_subset_with_closedr„   rK   rJ   c                 C   sv   t g d¢tjg d¢ddgd�dd�}t| |¡ d¡|ƒƒ }t tjtjd	gtjg d
¢g d¢d�dd�}t 	||¡ d S )N)r   r   r   ))r   r7   )r   r—   )r   ÚzÚ1Ú2rx   r   r§   r   rš   ))r   r   r7   )r   r   r—   )r   r   ró   )r   rô   rõ   )
r   r   r�   rT   r-   r4   r#   r}   r;   r<   )r.   r„   Zdsr@   r?   r   r   r   Ú"test_groupby_rolling_index_changed
  s     ÿûÿûz.TestRolling.test_groupby_rolling_index_changedc                 C   sÜ   t dg iƒ}| d¡jdd� ¡ }|jdd�}tjtg dd�tg dd�gdd gd�|_t	 
||¡ t g g d	œƒ}| dd
g¡jdd� ¡ }|jdd
gd�}tjtg dd�tg dd�tg dd�gg d¢d�|_t	 
||¡ d S )NÚs1r   rO   ©r{   Úfloat64rÕ   r×   rx   )r÷   Ús2rú   )r÷   rú   N)r   r-   r4   rI   rZ   r   Zfrom_productr   r]   r;   r^   )r.   r?   r@   r   r   r   Ú test_groupby_rolling_empty_frame  s$    ÿ


ýúz,TestRolling.test_groupby_rolling_empty_framec                 C   s0  t ddtddddƒgddtddddƒgdd	tddd
dƒgddtddddƒgdd	tddddƒggg d¢d� d¡}| d¡}| ¡ |d< |jddd�}| dd„ ¡}t ddtddddƒdgddtddddƒdgddtddddƒdgdd	tddd
dƒdgdd	tddddƒdggg d¢d� ddg¡}t ||¡ d S )Nr   r½   éã  r   r±   r   r   ÚZr¾   r   ÚHrw   ÚEr   )r]   rÉ   Ú	eventTimerø   r]   rÉ   Úcount_to_dateZ10dr   ©rÂ   c                 S   s
   | j d S )Nr   )Úshape©r   r   r   r   r8   J  r9   z?TestRolling.test_groupby_rolling_string_index.<locals>.<lambda>rŠ   rš   rÄ   )r]   rÉ   r   r  )	r   r   r|   r-   Zcumcountr4   r:   r;   r^   )r.   r   ÚgroupsZrolling_groupsr@   r?   r   r   r   Ú!test_groupby_rolling_string_index:  s6    ûø	÷
ûø	÷
z-TestRolling.test_groupby_rolling_string_indexc                 C   s|   t ddgddgdœƒjddd� d¡ ¡ }t t ddgddgg¡dd	gtjd
dgdd gd�d�}|jdd�}t	 
||¡ d S )Nr   r   )r)   r™   r)   F)Úsortrš   rŠ   r™   )r   r   r¥   rx   rz   rø   )r   r-   r4   rJ   r#   Úarrayr   r�   rZ   r;   r^   )r.   r@   r?   r   r   r   Útest_groupby_rolling_no_sortW  s    ÿþÿýz(TestRolling.test_groupby_rolling_no_sortc              	   C   sª   t tdƒtdƒdddg tdd|d�dœƒ}| d¡jd	d
dd�d  ¡ }tg d¢d|› d�d�}tjg d¢|gdd
gd�}t	t
jddt
jddgd|d�}t ||¡ d S )Nrw   r   r   r   Z20190101)rÛ   ÚperiodsÚunitrê   rÉ   Z3dræ   rí   rî   rë   )z
2018-12-27z
2018-12-29z
2018-12-31z
2018-12-28z
2018-12-30rè   úM8[ú]rÕ   )r   r   r   r   r   r   rx   rŠ   rÇ   )r   r\   r   r-   r4   rD   r   r   r[   r   r#   r}   r;   r<   )r.   r  r   r@   Zdtir›   r?   r   r   r   Ú$test_groupby_rolling_count_closed_onh  s:    
üÿ	
ÿÿÿ
÷þûýz0TestRolling.test_groupby_rolling_count_closed_on)r„   Úkwargsr4   r   râ   Ú	expandingc                 C   s¢   t ddgddgddgddgddggddgd�}t| d¡|ƒf i |¤Ž ¡ }t tjgd tjdtjddgd	œtjg d
¢dd gd�d�}|jdd�}t	 
||¡ d S )Nr   r   r   r   r   rø   rq   gÿ••&¥ æ?r¯   )r²   r³   )r   r   )r   r   ©r   rN   rx   r�   )r   rT   r-   Zsemr#   r}   r   r�   rZ   r;   r^   )r.   r„   r  r   r@   r?   r   r   r   Útest_groupby_rolling_sem�  s    &ÿÿþz$TestRolling.test_groupby_rolling_sem)ÚrollingsÚkeyrÂ   r   Nr]   c                 C   s„   t tddtjgƒg d¢g d¢dœƒ}|dkr6| d¡}tjt|› d�d	��& | d
¡j	di |¤Ž W d   ƒ n1 sv0    Y  d S )Nz2020-06-01 12:00z2020-06-01 14:00r¢   r¡   rŽ   r]   r   z values must not have NaTr'   r   Ú60min)r  )
r   r	   r#   r}   r|   r*   r+   Ú
ValueErrorr-   r4   )r.   r  r  r   r   r   r   Ú"test_groupby_rolling_nans_in_index¤  s    ýÿ
z.TestRolling.test_groupby_rolling_nans_in_indexrM   c                 C   s|   g d¢g d¢g}t j|dd�}tg d¢|d�}|jddg|d� d	¡ ¡ }tg d
¢t jg d¢g d¢d�d�}t ||¡ d S )N©Úval1r  Úval2©rs   rt   rx   r¢   r�   rs   rt   rL   r   )rŠ   rš   rÄ   )©r  r  r  r  r  )r  r  r  r  )rs   rt   rs   rt   )	r   r[   r   r-   r4   r5   r�   r;   r<   )r.   rM   Úarraysr]   Úsr@   r?   r   r   r   Útest_groupby_rolling_group_keysµ  s    úþz+TestRolling.test_groupby_rolling_group_keysc                 C   s†   g d¢g d¢g}t j|dd�}tg d¢tdƒdœ|d�}| dd	g¡ d
¡ ¡ }tdg d¢it jg d¢g d¢d�d�}t 	||¡ d S )Nr  r  rx   )r   r   r   r   r!   r�   rs   r   r   r   )r�   rŠ   rš   )©r  r   r  r  r   )r  r   r  r  )rs   r   rs   rt   )
r   r[   r   r\   r-   r4   r5   r�   r;   r^   ©r.   r  r]   r   r@   r?   r   r   r   Ú1test_groupby_rolling_index_level_and_column_labelÌ  s    
úþz=TestRolling.test_groupby_rolling_index_level_and_column_labelc                 C   sX   t t d¡ddgd dœƒ}| d¡ d¡ ¡ }tjg d¢dd gd	�}t 	|j
|¡ d S )
NrË   r   r   rN   r¯   r   r   )r¤   r¦   )r   rN   )r   rw   r«   rÒ   )r   rq   )r   r°   rx   )r   r#   r$   r-   r4   r5   r   r�   r;   Úassert_index_equalr]   ©r.   r   r@   r`   r   r   r   Ú)test_groupby_rolling_resulting_multiindexà  s    þz5TestRolling.test_groupby_rolling_resulting_multiindexc                 C   sf   t t d¡ddgd g d¢d dœƒ}| dd	g¡ d¡ ¡ }tjg d
¢g d¢d�}t 	|j
|¡ d S )Ng      (@r   r   rw   ©r   r   r   rN   r   rŽ   r   r   ))r   r   r   )r   r   rN   )r   r   r   )r   r   r   )r   r   rw   )r   r   rp   )r   r   r   )r   r   rq   )r   r   r±   )r   rN   r   )r   rN   r°   )r   rN   r®   )r   r   Nrx   )r   r#   r$   r-   r4   rI   r   r�   r;   r#  r]   r$  r   r   r   Ú*test_groupby_rolling_resulting_multiindex2í  s    &ñz6TestRolling.test_groupby_rolling_resulting_multiindex2c                 C   st   t t d¡ddgd g d¢d dœƒ}|jddd	�}| d
¡ d¡ ¡ }tjg d¢g d¢d�}t	j
|j|dd� d S )NrË   r   r   rN   r&  rŽ   r   T)Úappendr   r   ))r   r   r   r¢   )r   rN   r   )r   rw   r   )r   r   r   )r   r   rN   )r   rq   r   )r   r°   rN   )r   Nr   rx   Úequiv)Úexact)r   r#   r$   r|   r-   r4   r5   r   r�   r;   r#  r]   r$  r   r   r   Ú*test_groupby_rolling_resulting_multiindex3  s    &
õz6TestRolling.test_groupby_rolling_resulting_multiindex3c                 C   s®   |j ddd�}d}tjt|d��  | dd„ ¡j}W d   ƒ n1 sF0    Y  |jdd	�}d}tjt|d��  | d
d„ ¡j}W d   ƒ n1 s”0    Y  t ||¡ d S )Nr   FrL   rQ   r'   c                 S   s   |   d¡ ¡ S rR   ©r4   rI   r6   r   r   r   r8     r9   zUTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply.<locals>.<lambda>rN   rO   c                 S   s   |   d¡ ¡ S rR   r,  r6   r   r   r   r8   !  r9   )r-   r;   rX   rY   r:   r]   r4   r#  )r.   r%   r=   r/   r?   Ú_r@   r   r   r   Ú7test_groupby_rolling_object_doesnt_affect_groupby_apply  s    ..zCTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply)rP   rC   rÙ   r?   r   rí   )Nr�   rŠ   rŠ   Nr�   rŠ   rŠ   )NNrŠ   rŠ   NNrŠ   rŠ   rN   )NNNNNNNNÚright)NNNrÊ   NNNrÊ   c                 C   sx   t g d¢ƒ}| g d¢¡j|||d� d¡}t tj|dd�tt ddg¡g d	¢gg d
¢g d¢gd�d�}t ||¡ d S )N)r   r   r   rN   rq   rw   r°   r   )r   r   r   r   r   r   r   r   )rP   rC   rÙ   r   rù   rÕ   r   r   )r   r   r   r   rN   rq   rw   r°   )r   r   r   r   r   r   r   r   )r   r   rN   rw   r   r   rq   r°   )ZlevelsÚcodesr�   )	r   r-   r4   rc   r#   r  r   r;   r^   )r.   rP   rC   rÙ   r?   r   r@   Zexpected_resultr   r   r   Útest_groupby_rolling_var$  s    
ÿþÿþþz$TestRolling.test_groupby_rolling_varr{   )r   Ú )r   r   r   r   c                 C   s|   t ddggd ddggd  ddggd  |d�}| d	¡}|jjd
d�}| d¡}| ¡ }d	|jvsjJ ‚t |j|¡ d S )Nr   r   r   r   r   r   r   rø   r   T)ÚdeeprN   )	r   r-   ÚobjrØ   r4   rI   r{   r;   r^   )r.   r{   r   r=   Zoriginal_objrE   r@   r   r   r   Útest_by_column_not_in_values=  s    2

z(TestRolling.test_by_column_not_in_valuesc                 C   sˆ   g d¢g d¢g}t j|dd�}tdg d¢i|d�}|jdd	�d  d
¡ ¡ }ttjdtjdgt j	g d¢g d¢d�dd�}t
 ||¡ d S )N)ÚFalconr6  ÚParrotr7  )ÚCaptiveÚWildr8  r9  )ÚAnimalÚTyperx   z	Max Speed)g     `x@g     àu@g      >@g      4@r�   r   ru   r   g      ‡@g      I@))r6  r6  r8  )r6  r6  r9  )r7  r7  r8  )r7  r7  r9  )r:  r:  r;  r§   )r   r[   r   r-   r4   rI   r   r#   r}   r�   r;   r<   r!  r   r   r   Útest_groupby_levelJ  s    þù	õzTestRolling.test_groupby_levelzby, expected_datar£   Únum)ç      Y@ç     Àb@r?  ç      i@ú
2018-01-01ú
2018-01-02)r>  r@  r?  ç     @o@)ræ   r=  c                    sÖ   g d¢g d¢g d¢g d¢g}t |g d¢d�‰ ˆ d  d|› d	�¡ˆ d< ˆ  dg¡‰ ‡ fd
d„|D ƒ}ˆ j|dd�jddd� ¡ }dg d¢i}| |¡ t |ˆ jd�}d|v rÆ|d  d|› d	�¡|d< t 	||¡ d S )N)r   rA  r>  )r   rB  r@  )r   rA  r?  )r   rB  rC  )r£   ræ   r=  rø   ræ   r  r  c                    s   g | ]}t ˆ |ƒ‘qS r   )rT   )rÍ   Úattrr  r   r   rÎ   €  r9   z3TestRolling.test_as_index_false.<locals>.<listcomp>F)Zas_indexr   r   râ   r£   )r   r   r   r   r�   )
r   Zastyper|   r-   r4   r5   Úupdater]   r;   r^   )r.   r2   r�   r  rÁ   Zgp_byr@   r?   r   r  r   Útest_as_index_falseb  s(    üÿ
þzTestRolling.test_as_index_falsec           
      C   sÎ   t  |¡j}d}t  |dƒ|¡}d|d< d}t  ||¡}t j|d< d|d< t||dœƒ d¡}| d¡d jd	dd
� 	¡ }t
|dt tdgd dg |dd�tdgd dg |dd�g¡d�}	t ||	¡ d S )Néè  r   r   éÿÿÿÿg52·ô­DE)r]   Úadl2r]   rI  rp   râ   iç  )rÖ   r¨   rÇ   )r#   rÖ   ÚtypeÚrepeatr}   r   r|   r-   r4   r5   r   r   r[   r   r;   r<   )
r.   Zany_int_numpy_dtypeÚtypÚsizeÚidxÚvalZarrr   r@   r?   r   r   r   Útest_nan_and_zero_endpoints�  s4    
þÿûþÿý
z'TestRolling.test_nan_and_zero_endpointsc                    sh   g d¢}d‰ t ‡ fdd„|D ƒƒ}tjtdd��$ | d¡jdd	d
� W d   ƒ n1 sZ0    Y  d S )N)r   r   r   r   rG  c                    s(   g | ] }t d | ˆ  ƒ|d ddœ‘qS )r   r   é*   )Útr7   r   rä   rÌ   ©Úsecr   r   rÎ   ´  r9   zBTestRolling.test_groupby_rolling_non_monotonic.<locals>.<listcomp>z.* must be monotonicr'   r   rR  Z3s)rÂ   rP   )r   r*   r+   r  r-   r4   )r.   Zshuffledr   r   rS  r   Ú"test_groupby_rolling_non_monotonic®  s    ÿz.TestRolling.test_groupby_rolling_non_monotonicc                 C   sâ   g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g
}t |g d¢d�}t|d ƒ|d< | d¡}d}tjt|d��* | d¡ d¡ dd„ ¡}W d   ƒ n1 s¬0    Y  | d¡j	ddd�d  
¡ }t ||¡ d S )N)ÚDavidz1/1/2015éd   )rV  z1/5/2015éô  )rV  z	5/30/2015é2   )rV  z	7/25/2015rY  )ÚRyanz1/4/2014rW  )rZ  z	1/19/2015rX  )rZ  z	3/31/2016rY  )ÚJoez7/1/2015rW  )r[  z9/9/2015rX  )r[  z
10/15/2015rY  )r¨   ræ   Úamount)rÁ   r{   ræ   rQ   r'   r¨   c                 S   s   |   d¡d  ¡ S )NÚ180Dr\  r,  r6   r   r   r   r8   Ö  r9   z4TestRolling.test_groupby_monotonic.<locals>.<lambda>r]  r  r\  )r   r	   Zsort_valuesr;   rX   rY   r|   r-   r:   r4   rI   r<   )r.   rÁ   r   r/   r?   r@   r   r   r   Útest_groupby_monotonic¹  s0    ö

ÿþÿ z"TestRolling.test_groupby_monotonicc                 C   s¾   t dddd�}tdgd dgd  dgd	  t ||f¡t d
¡dœƒ}d}tjt|d��* | d¡ 	d¡ 
dd„ ¡}W d   ƒ n1 sŠ0    Y  | 	d¡jddd�j ¡ }t ||¡ d S )Nz2016-01-01 09:30:00r   r  )rÜ   r
  Úfreqr   r   r   r   r   r    r   rQ   r'   r   r   c                 S   s   |   d¡d  ¡ S )NÚ4sr   r3   r6   r   r   r   r8   ï  r9   zJTestRolling.test_datelike_on_monotonic_within_each_group.<locals>.<lambda>r`  r  )r   r   r#   Zconcatenater$   r;   rX   rY   r|   r-   r:   r4   r   r5   r<   )r.   Údatesr   r/   r?   r@   r   r   r   Ú,test_datelike_on_monotonic_within_each_groupÛ  s"    ýÿ
ÿþÿ z8TestRolling.test_datelike_on_monotonic_within_each_groupc                 C   sx   t dgd dgd  dd„ dD ƒd tdƒdœƒ}tjtd	d
��$ | d¡jddd� W d   ƒ n1 sj0    Y  d S )Nr   r   r   c                 S   s   g | ]}t |d d ƒ‘qS ©r   rä   )rÍ   Úyearr   r   r   rÎ   ù  r9   zPTestRolling.test_datelike_on_not_monotonic_within_each_group.<locals>.<listcomp>)iä  iå  rü   rw   r   z&Each group within B must be monotonic.r'   r   Z365Dr   r  )r   r\   r*   r+   r  r-   r4   )r.   r   r   r   r   Ú0test_datelike_on_not_monotonic_within_each_groupô  s    ýÿz<TestRolling.test_datelike_on_not_monotonic_within_each_group)3rÞ   rß   rà   r0   rA   rF   r*   ÚmarkÚparametrizera   re   rl   r‚   r†   r‰   r‘   r˜   rœ   r©   r¼   rÈ   rÐ   rÔ   rã   rñ   rò   rö   rû   r  r	  r  r  r  r  r"  r%  r'  r+  r.  r1  r   r�   r5  r<  r   rF  rP  rU  r^  rb  re  r   r   r   r   r&   1   sº   þ

ÿ



&þ
 
A

(þ
ÿ

üþ	
ÿ

üùþþþ
"r&   c                   @   sŠ   e Zd Zejdd„ ƒZej dg d¢¡dd„ ƒZej dddg¡d	d
„ ƒZ	ej dg d¢¡dd„ ƒZ
ej dddg¡dd„ ƒZdd„ ZdS )ÚTestExpandingc                 C   s.   t dgd dgd  dgd  t d¡dœƒS r   r"   )r.   r   r   r   Úframe  s    zTestExpanding.framerG   rH   c           	         s    |j ddd�}| ¡ }t|ˆ ƒƒ }d}tjt|d��" | ‡ fdd„¡}W d   ƒ n1 s\0    Y  |jddd	�}t 	|d t
d
ƒg¡}||_t ||¡ d S )Nr   FrL   rQ   r'   c                    s   t |  ¡ ˆ ƒƒ S r’   ©rT   r  r6   rU   r   r   r8     r9   z.TestExpanding.test_expanding.<locals>.<lambda>r   rV   r    ©r-   r  rT   r;   rX   rY   r:   rZ   r   r[   r\   r]   r^   ©	r.   rG   ri  r=   rE   r@   r/   r?   r`   r   rU   r   Útest_expanding  s    0zTestExpanding.test_expandingrb   rc   c           	         s¤   |j ddd�}| ¡ }t|ˆ ƒdd�}d}tjt|d��" | ‡ fdd	„¡}W d   ƒ n1 s`0    Y  |jdd
d�}t 	|d t
dƒg¡}||_t ||¡ d S )Nr   FrL   r   rd   rQ   r'   c                    s   t |  ¡ ˆ ƒdd�S )Nr   rd   rj  r6   rU   r   r   r8      r9   z3TestExpanding.test_expanding_ddof.<locals>.<lambda>r   rV   r    rk  rl  r   rU   r   Útest_expanding_ddof  s    0z!TestExpanding.test_expanding_ddofrf   rg   c           	         s¢   |j ddd�}| ¡ }|jdˆ d�}d}tjt|d��" | ‡ fdd	„¡}W d   ƒ n1 s^0    Y  |jdd
d�}t 	|d t
dƒg¡}||_t ||¡ d S )Nr   FrL   ri   rj   rQ   r'   c                    s   |   ¡ jdˆ d�S )Nri   rj   )r  rk   r6   rj   r   r   r8   3  r9   z7TestExpanding.test_expanding_quantile.<locals>.<lambda>r   rV   r    )r-   r  rk   r;   rX   rY   r:   rZ   r   r[   r\   r]   r^   )	r.   rf   ri  r=   rE   r@   r/   r?   r`   r   rj   r   Útest_expanding_quantile(  s    
ÿ"z%TestExpanding.test_expanding_quantilerm   rn   c                    s  ˆ  d¡}| ¡ }t|ˆ ƒˆƒ}‡ ‡fdd„}d}tjt|d�� | |¡}W d   ƒ n1 s`0    Y  ttddƒƒttdd	ƒƒ }	t	j
|j|	d
f< t	j
|d< t ||¡ t|jˆ ƒdd�}‡ fdd„}
d}tjt|d�� | |
¡}W d   ƒ n1 sü0    Y  t ||¡ d S )Nr   c                    s   t |  ¡ ˆ ƒˆƒS r’   rj  r6   ©rG   ri  r   r   Úfunc_0C  s    z5TestExpanding.test_expanding_corr_cov.<locals>.func_0rQ   r'   r   é=   éH   éq   r   Tr‡   c                    s   t | j ¡ ˆ ƒdd�S )NTr‡   )rT   r   r  r6   rU   r   r   Úfunc_1T  s    z5TestExpanding.test_expanding_corr_cov.<locals>.func_1)r-   r  rT   r;   rX   rY   r:   r~   r\   r#   r}   Zilocr^   r   r<   )r.   rG   ri  r=   rE   r@   rq  r/   r?   Znull_idxru  r   rp  r   Útest_expanding_corr_cov<  s"    
(
(z%TestExpanding.test_expanding_corr_covc           	         s¦   |j ddd�}| ¡ }|jdd„ ˆ d�}d}tjt|d��" | ‡ fd	d„¡}W d   ƒ n1 sb0    Y  |jdd
d�}t |d t	dƒg¡}||_
t ||¡ d S )Nr   FrL   c                 S   s   |   ¡ S r’   r“   r6   r   r   r   r8   a  r9   z4TestExpanding.test_expanding_apply.<locals>.<lambda>r”   rQ   r'   c                    s   |   ¡ jdd„ ˆ d�S )Nc                 S   s   |   ¡ S r’   r“   r–   r   r   r   r8   e  r9   zFTestExpanding.test_expanding_apply.<locals>.<lambda>.<locals>.<lambda>r”   )r  r:   r6   r”   r   r   r8   e  r9   r   rV   r    )r-   r  r:   r;   rX   rY   rZ   r   r[   r\   r]   r^   )	r.   r•   ri  r=   rE   r@   r/   r?   r`   r   r”   r   Útest_expanding_apply\  s    
ÿ"z"TestExpanding.test_expanding_applyN)rÞ   rß   rà   r*   Úfixtureri  rf  rg  rm  rn  ro  rv  rw  r   r   r   r   rh    s   
ÿ

ÿ

rh  c                
   @   sš   e Zd Zej ddg d¢gdejdddggdejd	d
dggg¡dd„ ƒZej ddejdddggdejd	ddggg¡dd„ ƒZ	dd„ Z
dd„ Zdd„ ZdS )ÚTestEWMzmethod, expected_datar5   )r�   gUUUUUUå?g·mÛ¶mÛö?g""""""@rb   g»¹øÛž æ?g¦€´ÿÖî?gët ë©Õò?rc   ro   gnÛ¶mÛ¶í?g¾â+¾â+ö?c                 C   sd   t dgd tdƒdœƒ}t| d¡jdd�|ƒƒ }t d|itjg d¢dd gd	�d
�}t ||¡ d S )Nr   rN   r!   r   rŠ   ©Úcomr   )r²   r³   r´   rµ   rx   r�   )	r   r\   rT   r-   Úewmr   r�   r;   r^   ©r.   Úmethodr�   r   r@   r?   r   r   r   Útest_methodsp  s    
ùþzTestEWM.test_methodsrm   rŠ   r   rn   gÒr ‡Ú¶í?gß¿yqâ+ö?c                    sŽ   t dgd tdƒdœƒ}t| d¡jdd�ˆ ƒƒ }t d|itjg d¢g d	¢d
�d�}t ||¡ | d¡dg  	‡ fdd„¡}t ||¡ d S )Nr   rN   r!   r   rŠ   rz  r   ))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   NNrx   r�   c                    s   t | jdd�ˆ ƒƒ S )NrŠ   rz  )rT   r|  r6   ©r~  r   r   r8   ¡  r9   z/TestEWM.test_pairwise_methods.<locals>.<lambda>)
r   r\   rT   r-   r|  r   r�   r;   r^   r:   r}  r   r€  r   Útest_pairwise_methodsŠ  s    ùþ
ÿzTestEWM.test_pairwise_methodsc                 C   s\   d}|  d¡}| d¡j||d� ¡ }tdg d¢itjg d¢dd gd�d	�}t ||¡ d S )
Nú23 daysr   r   ©ÚhalflifeÚtimesr   )
r�   gCusñ·=à?g;¬pËGRð?gÀZµkBšø?r�   gÕ>�(â?g8KÉrŠó?r�   gÒ§Uô‡æä?gAó9w»ó?)
r²   rµ   )r   rw   )r   r±   )r   r   r  r¹   )r   r   )r   rq   )r   r   rx   r�   )	Úpopr-   r|  r5   r   r   r�   r;   r^   )r.   r   r„  r…  r@   r?   r   r   r   Ú
test_times¥  s    
ÿóñzTestEWM.test_timesc                 C   sN   d}|  d¡}| d¡}|j||d� ¡ }|j||jd� ¡ }t ||¡ d S )Nr‚  r   r   rƒ  )r†  r-   r|  r5   Úvaluesr;   r^   )r.   r   r„  r…  rÀ   r@   r?   r   r   r   Útest_times_arrayÌ  s    

zTestEWM.test_times_arrayc              	   C   sî   t g d¢tdddd�tdƒdœƒ}| d¡jdd	d
�}| ¡ }t tdddd�dgd dœtjg d¢ttdƒƒgdd gd�d�}t	 
||¡ |d  ¡ }tdgd tjg d¢tdddd�gdd	gd�dd�}t	 ||¡ | ¡ }t	 
||¡ d S )N)r   r   r   r   r   z2021-9-1rq   Úh)r
  r_  )r£   Ú	timestampr—   r£   Z1hr‹  r  rŠ   )r‹  r—   rx   r�   r—   r§   )r   r   r\   r-   r4   rD   r   r[   r~   r;   r^   r   r<   )r.   r   Úgrpr@   Zexpected_dfZexpected_seriesr   r   r   Ú"test_dont_mutate_obj_after_slicingÕ  s>    ýÿþÿû	þû÷z*TestEWM.test_dont_mutate_obj_after_slicingN)rÞ   rß   rà   r*   rf  rg  r#   r}   r  r�  r‡  r‰  r�  r   r   r   r   ry  o  s    
ýþ
"þ
'	ry  c                  C   s€   t g d¢g d¢dœƒ} |  dg¡}| d¡j| d�}tjg d¢dd gd�}t tjtjtjgtjd	d	gdœ|d
�}t 	||¡ d S )N)rc  rc  rc  ©rN   rq   rw   r¯   r   r   ©r€   ))rc  r   )rc  r   )rc  r   rx   rŠ   r�   ©
r   r-   r4   rm   r   r�   r#   r}   r;   r^   ©r   rÀ   r@   r]   r?   r   r   r   Ú.test_rolling_corr_with_single_integer_in_indexý  s    ÿr’  c                  C   s€   t g d¢g d¢dœƒ} |  dg¡}| d¡j| d�}tjg d¢dd gd�}t tjtjtjgtjd	d	gdœ|d
�}t 	||¡ d S )N)r¦   r¦   r¦   rŽ  r¯   r   r   r�  ))r¦   r   )r¦   r   )r¦   r   rx   rŠ   r�   r�  r‘  r   r   r   Ú&test_rolling_corr_with_tuples_in_index	  s    ñÿÿÿr“  )Únumpyr#   r*   Zpandasr   r   r   r   r   r   r   r	   Zpandas._testingZ_testingr;   Zpandas.api.indexersr
   Zpandas.core.groupby.groupbyr   rx  r   r%   r&   rh  ry  r’  r“  r   r   r   r   Ú<module>   s,   (


       Wn 