Ë
    ž…j»X  ã                   ó  — d dl Zd dlZd dlmZ d dlmc mZ d dl	m
Z
 d dlZd dlmZ d dlmZ ej$                  j'                  ddddgddggd	d
gd	dgd	dgdœfdddgdej(                  gddggg d¢g d¢g d¢dœfg«      d„ «       Zej$                  j'                  ddddgddggdd
gddgddgdœfdddgdej(                  gddgej(                  dggg d¢g d¢g d¢dœfg«      d„ «       Zej$                  j'                  ddddgd
d	gdd	gdd	gdœfdddej(                  gg d¢g d¢g d¢dœfg«      d„ «       Zej$                  j'                  ddddd ej(                  g ej0                  d!d!gdd g¬"«      fdddd ej(                  g ej0                  g d#¢dd ej(                  g¬"«      fg«      d$„ «       Zej$                  j'                  d%d ej0                  d&d'gdd gd(¬)«      fd ej0                  g d*¢dd ej(                  gd(¬)«      fg«      d+„ «       Zd,„ Zej$                  j'                  d- ej8                  d d.«       ed/«      ej<                  j?                  d0d1gd2d3g¬4«      g«      d5„ «       Z ej$                  j'                  ddddgddggd	d
gddgddgdœfdddgdej(                  gddggg d¢g d6¢g d7¢dœfg«      d8„ «       Z!ej$                  jD                  ej$                  j'                  d9 ejF                  d:«       ejF                  d;«      f ejH                  d<«       ejH                  d=«      f ejJ                  d:«       ejJ                  d;«      fg«      ej$                  j'                  d>dd?d!gfdg d@¢fg«      dA„ «       «       «       Z&ej$                  j'                  dB ejN                  dddd ej(                  gg dC¢dDœdEg dF¢idd ej(                  gdG¬H«       ejN                  dddd ej(                  gg dC¢dDœdEg dI¢iddJ¬H«       ejN                  dg dK¢g dC¢dDœdEg dF¢iddL¬H«       ejN                  dg dK¢g dC¢dDœdEg dF¢iddM¬H«      g«      dN„ «       Z(ej$                  j'                  dOddgdd gg«      ej$                  j'                  dPdgdd gg«      ej$                  j'                  dQddg«      dR„ «       «       «       Z)dS„ Z*dT„ Z+ej$                  j'                  dUg dV¢«      ej$                  j'                  dWddXdYdZd[d\d]d^d_d`dadbdc ejN                  dd ejX                  de«      ¬f«      dgdhdig«      ej$                  j'                  djddg«      dk„ «       «       «       Z-ej$                  j'                  djddg«      ej$                  j'                  dWe.dg«      dl„ «       «       Z/ej$                  j'                  dmg dn¢«      do„ «       Z0dp„ Z1ej$                  j'                  dqdrdsg«      dt„ «       Z2du„ Z3dv„ Z4y)wé    N)ÚPandas4Warning)Úna_value_for_dtype)Úget_groupby_method_argszdropna, tuples, outputsTÚAÚBç      *@ç…ëQ¸Î^@ç     À^@ç      ð?©ÚcÚdÚeF)r   çš™™™™™(@r	   )r   ç      m@r
   )r   ç      (@r   c                 ó˜  — g d¢d|dddgg d¢g d¢g}t        j                  |g d¢¬	«      }|j                  d
dg| ¬«      j                  «       }t         j                  j                  |t        d«      ¬«      }| s$|j                  ddt        j                  gd¬«      }t        j                  ||¬«      }t        j                  ||«       y )N©r   r   é   r   r   r   r   r   r   ©r   r   r	   é{   é   ©r   r   r   r   r   ©ÚaÚbr   r   r   ©Úcolumnsr   r   ©ÚdropnaÚab©Únamesr   ©Úlevel©Úindex©ÚpdÚ	DataFrameÚgroupbyÚsumÚ
MultiIndexÚfrom_tuplesÚlistÚ
set_levelsÚnpÚnanÚtmÚassert_frame_equal)	r    ÚtuplesÚoutputsÚnulls_fixtureÚdf_listÚdfÚgroupedÚmiÚexpecteds	            úi/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/groupby/test_groupby_dropna.pyÚ:test_groupby_dropna_multi_index_dataframe_nan_in_one_groupr>      s³   € ò0 	Ø	ˆm˜T 5¨"Ð-Ú"Úð	€Gô 
�‰�gÒ'@Ô	A€BØ�j‰j˜#˜s˜¨FˆjÓ3×7Ñ7Ó9€Gä	�‰×	"Ñ	" 6´°d³Ð	"Ó	<€Bñ Ø�]‰]˜C ¤b§f¡fÐ-°Sˆ]Ó9ˆÜ�|‰|˜G¨2Ô.€Hä×Ñ˜' 8Õ,ó    r   )r   gš™™™™™*@r	   r   )r   g     @m@r
   r   )r   r   r   r   c           	      óÌ  — g d¢d|dddgg d¢|dddd	gd|ddd	gg}t        j                  |g d
¢¬«      }|j                  ddg| ¬«      j                  «       }t         j                  j                  |t        d«      ¬«      }| s5|j                  ddt        j                  gddt        j                  gg«      }t        j                  ||¬«      }	t        j                  ||	«       y )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r&   r(   )
r    r5   r6   r7   Únulls_fixture2r8   r9   r:   r;   r<   s
             r=   Ú;test_groupby_dropna_multi_index_dataframe_nan_in_two_groupsrB   9   sØ   € ò0 	Ø	ˆm˜T 5¨"Ð-Ú"Ø	˜˜a  CÐ(Ø	ˆn˜a  CÐ(ð€Gô 
�‰�gÒ'@Ô	A€BØ�j‰j˜#˜s˜¨FˆjÓ3×7Ñ7Ó9€Gä	�‰×	"Ñ	" 6´°d³Ð	"Ó	<€Bñ Ø�]‰]˜S #¤r§v¡vÐ.°°c¼2¿6¹6Ð0BÐCÓDˆÜ�|‰|˜G¨2Ô.€Hä×Ñ˜' 8Õ,r?   zdropna, idx, outputs)r   r   r   )r	   r   r   )r
   r   r   )r   r   r   c                 ó  — g d¢g d¢g d¢g d¢g}t        j                  |g d¢¬«      }|j                  d| ¬«      j                  «       }t        j                  |t        j                  |d¬	«      ¬
«      }t        j                  ||«       y )N)r   r   r   r   )Nr   r   r   )r   r	   r   r   )r   r   r   r   )r   r   r   r   r   r   r   ©Únamer&   )r)   r*   r+   r,   ÚIndexr3   r4   )r    Úidxr6   r8   r9   r:   r<   s          r=   Ú*test_groupby_dropna_normal_index_dataframerH   e   sp   € ò$ 	ÚÚÚð	€Gô 
�‰�gÒ';Ô	<€BØ�j‰j˜ VˆjÓ,×0Ñ0Ó2€Gä�|‰|˜G¬2¯8©8°C¸cÔ+BÔC€Hä×Ñ˜' 8Õ,r?   zdropna, idx, expectedr   r   é   r&   )rI   rI   rI   c                 ó¤   — t        j                  g d¢|¬«      }|j                  d| ¬«      j                  «       }t	        j
                  ||«       y )N)r   é   rI   rI   r&   r   )r%   r    )r)   ÚSeriesr+   r,   r3   Úassert_series_equal)r    rG   r<   ÚserÚresults        r=   Ú test_groupby_dropna_series_levelrP   „   s?   € ô �)‰)’L¨Ô
,€Cà�[‰[˜q¨ˆ[Ó0×4Ñ4Ó6€FÜ×Ñ˜6 8Õ,r?   zdropna, expectedç     @j@ç     àu@ú	Max Speed©r'   rE   )rQ   rR   ç      4@c                 óÎ   — t        j                  g d¢g d¢d¬«      }|j                  dddt        j                  g| ¬«      j                  «       }t        j                  ||«       y )N)g     `x@rR   g      >@rU   )ÚFalconrW   ÚParrotrX   rS   rT   r   r   r   )r)   rL   r+   r1   r2   Úmeanr3   rM   )r    r<   rN   rO   s       r=   Útest_groupby_dropna_series_byrZ   –   sU   € ô �)‰)Ú"Ú6Øô€Cð �[‰[˜#˜s C¬¯©Ð0¸ˆ[Ó@×EÑEÓG€FÜ×Ñ˜6 8Õ,r?   c                 ó˜   — t        j                  g d¢g d¢dœ«      }|j                  d| ¬«      }|j                  j                  | k(  sJ ‚y )N©r   r   r   N©r   rK   rI   N©r   r   r   r   )r)   r*   r+   Ú_grouperr    )r    r9   Úgbs      r=   Útest_grouper_dropna_propagationra   «   s?   € ä	�‰šO²/ÑBÓ	C€BØ	�‰�C ˆÓ	'€BØ�;‰;×Ñ Ò'Ð'Ñ'r?   r'   é   Úabcd)r   rK   )ÚRr   ÚnumÚcolr"   c                 ó<  — dddd| rt         j                  ndgi}t        j                  g d¢g d¢dœ|¬«      }|j	                  d| ¬	«      }|j                  t        «      }t        j                  ||¬«      }t        j                  ||«       |dg   j                  t        «      }t        j                  ||¬«      }t        j                  ||«       |d   j                  t        «      }t        j                  |d   |d¬
«      }t        j                  ||«       y )Nr   rK   r   r\   r]   r^   r&   r   r   rT   )r1   r2   r)   r*   r+   Ú	transformÚlenr3   r4   rL   rM   )r    r'   Úexpected_datar9   r`   rO   r<   s          r=   Ú+test_groupby_dataframe_slice_then_transformrk   ²   så   € ð ˜1˜a ©f¤B§F¢F¸!Ð<Ð=€Mä	�‰šO²/ÑBÈ%Ô	P€BØ	�‰�C ˆÓ	'€Bà�\‰\œ#Ó€FÜ�|‰|˜M°Ô7€HÜ×Ñ˜& (Ô+à��‰Y× Ñ ¤Ó%€FÜ�|‰|˜M°Ô7€HÜ×Ñ˜& (Ô+à�‰W×ÑœsÓ#€FÜ�y‰y˜ sÑ+°5¸sÔC€HÜ×Ñ˜6 8Õ,r?   )r   r   r
   )r   r   r   c                 ó   — g d¢g d¢g d¢g d¢g}t        j                  |g d¢¬«      }ddd	d
œ}|j                  ddg| ¬«      j                  |«      }t         j                  j                  |t        d«      ¬«      }| s$|j                  ddt        j                  gd¬«      }t        j                  ||¬«      }t        j                  ||«       y )Nr   )r   Nr   r   r   r   r   r   r   r,   ÚmaxÚminr   r   r   r   r!   r"   r   r   r$   r&   )r)   r*   r+   Úaggr-   r.   r/   r0   r1   r2   r3   r4   )	r    r5   r6   r8   r9   Úagg_dictr:   r;   r<   s	            r=   Ú-test_groupby_dropna_multi_index_dataframe_aggrq   Î   s¶   € ò, 	Ú$Ú"Úð	€Gô 
�‰�gÒ'@Ô	A€BØ ¨UÑ3€HØ�j‰j˜#˜s˜¨FˆjÓ3×7Ñ7¸ÓA€Gä	�‰×	"Ñ	" 6´°d³Ð	"Ó	<€Bñ Ø�]‰]˜C ¤b§f¡fÐ-°Sˆ]Ó9ˆÜ�|‰|˜G¨2Ô.€Hä×Ñ˜' 8Õ,r?   zdatetime1, datetime2z
2020-01-01z
2020-02-01z-2 daysz-1 dayszdropna, valuesr   )r   rI   é   c           	      óH  — t        j                  g d¢||||||gdœ«      }| r||g}n||t        j                  g}|j	                  d| ¬«      j                  ddi«      }t        j                  d|it        j                  |d¬«      ¬«      }	t        j                  ||	«       y )	N)r   rK   rI   rb   é   rr   )ÚvaluesÚdtrv   r   ru   r,   rD   r&   )	r)   r*   r1   r2   r+   ro   rF   r3   r4   )
r    ru   Ú	datetime1Ú	datetime2Úunique_nulls_fixtureÚunique_nulls_fixture2r9   Úindexesr:   r<   s
             r=   Ú&test_groupby_dropna_datetime_like_datar|   ø   s¢   € ô 
�‰â(àØ$ØØ%ØØðñ
	
ó
€Bñ Ø˜iÐ(‰à˜i¬¯©Ð0ˆà�j‰j˜ fˆjÓ-×1Ñ1°8¸UÐ2CÓD€GÜ�|‰|˜X vÐ.´b·h±h¸wÈTÔ6RÔS€Hä×Ñ˜' 8Õ,r?   z#dropna, data, selected_data, levels)é
   r}   é   é   )Úgroupsru   ru   )r   r   r   r   Údropna_false_has_nan)Úid)r   r   r   Údropna_true_has_nan)r   r   r   r   Údropna_false_no_nanÚdropna_true_no_nanc                 ó€  — t        j                  |«      }|j                  d| ¬«      }|j                  d„ «      }t	        t        |d   |d   d¬«      «      }t         j                  j                  |dd g¬«      }| s|r|j                  |d¬«      }t        j                  ||¬	«      }	t        j                  ||	«       y )
Nr€   r   c                 óT   — t        j                  dt        t        | «      «      i«      S )Nru   )r)   r*   Úrangeri   )Úgrps    r=   ú<lambda>z@test_groupby_apply_with_dropna_for_multi_index.<locals>.<lambda>G  s   € ¤"§,¡,°¼%ÄÀCÃ»/Ð/JÓ"K€ r?   ru   F©Ústrictr"   r$   r&   )r)   r*   r+   ÚapplyÚtupleÚzipr-   r.   r0   r3   r4   )
r    ÚdataÚselected_dataÚlevelsr9   r`   rO   Ú	mi_tuplesr;   r<   s
             r=   Ú.test_groupby_apply_with_dropna_for_multi_indexr”     s§   € ôL 
�‰�dÓ	€BØ	�‰�H VˆÓ	,€BØ�X‰XÑKÓL€Fä”c˜$˜x™.¨-¸Ñ*AÈ%ÔPÓQ€IÜ	�‰×	"Ñ	" 9°X¸tÐ4DÐ	"Ó	E€Bñ ‘fØ�]‰]˜6¨ˆ]Ó2ˆä�|‰|˜M°Ô4€HÜ×Ñ˜& (Õ+r?   Úinput_indexÚkeysÚseriesc                 ó\  — t        j                  dt        j                  gddgddgdœ«      }|j	                  |«      }|r|d   }n| ddgk(  r|dgk(  r|dg   }| �|j	                  | «      }|j                  |d¬	«      }|r|d   }|j                  «       }t        j                  ||«       y )
Nr   rK   rI   ©r   r   r   r   r   r   Fr   )	r)   r*   r1   r2   Ú	set_indexr+   r,   r3   Úassert_equal)r•   r–   r—   Úobjr<   r`   rO   s          r=   Ú)test_groupby_dropna_with_multiindex_inputr�   T  s¶   € ô
 �,‰,à”R—V‘V�Ø�Q�Ø�Q�ñ	
ó€Cð �}‰}˜TÓ"€HÙØ˜C‘=‰Ø	˜˜c˜
Ò	" t°¨u¢}à˜S˜E‘?ˆàÐØ�m‰m˜KÓ(ˆØ	�‰�T %ˆÓ	(€BÙØ�‰WˆØ�V‰V‹X€Fä‡O�O�F˜HÕ%r?   c            	      óÈ  — dt         j                  ddt         j                  gg d¢dœ} t        j                  | «      }|j	                  dd¬«      }|j
                  }t         j                  }dt        j                  dd	g|¬
«      dt        j                  dg|¬
«      t         j                  t        j                  ddg|¬
«      i}t        |j                  «       |j                  «       d¬«      D ]  \  }}t        j                  ||«       Œ t        j                  t        |j                  «       «      d	   «      sJ ‚t        |j                  «       «      dd	 ddgk(  sJ ‚y )NÚg1Úg2)r   r   rK   rI   rb   )Úgroupr   r¡   Fr   r   rK   ©ÚdtyperI   r   rb   Tr‹   )r1   r2   r)   r*   r+   ÚindicesÚintpÚarrayr�   ru   r3   Úassert_numpy_array_equalÚisnanr/   r–   )r�   r9   r:   rO   r£   r<   Úresult_valuesÚexpected_valuess           r=   Útest_groupby_nan_includedr«   r  s!  € àœBŸF™F D¨$´·±Ð7ºoÑN€DÜ	�‰�dÓ	€BØ�j‰j˜¨ˆjÓ/€GØ�_‰_€FÜ�G‰G€EàŒb�h‰h˜˜1�v UÔ+ØŒb�h‰h˜�s %Ô(Ü
�‰”—‘˜!˜Q˜ uÔ-ð€Hô
 +.Ø�‰‹˜Ÿ™Ó*°4ô+ò DÑ&ˆ�ô 	×#Ñ# M°?ÕCðDô �8‰8”D˜Ÿ™›Ó'¨Ñ*Ô+Ð+Ð+Ü�—‘“Ó˜q Ð#¨¨d |Ò3Ð3Ñ3r?   c                  óö   — t        j                  t        j                  ddggg d¢¬«      } | j	                  ddg«      } | j                  ddgd¬«      j                  «       }| }t        j                  ||«       y )	Nr   r   r™   r   r   r   Fr   )	r)   r*   r1   r2   rš   r+   Úfirstr3   r4   )r9   rO   r<   s      r=   Ú&test_groupby_drop_nan_with_multi_indexr®   †  se   € ä	�‰œŸ™  1�~Ð&²Ô	@€BØ	�‰�s˜C�jÓ	!€BØ�Z‰Z˜˜c˜
¨5ˆZÓ1×7Ñ7Ó9€FØ€HÜ×Ñ˜& (Õ+r?   Úsequence)ÚxyzyÚxxyzÚyzxzÚzzzzÚzyzxÚyyyyÚzzxyÚxyxyr£   ÚUInt8ÚInt8ÚUInt16ÚInt16ÚUInt32ÚInt32ÚUInt64ÚInt64ÚFloat32ÚFloat64ÚcategoryÚstringústring[pyarrow]Úpyarrow)Úmarksúdatetime64[ns]ú	period[D]zSparse[float]Útest_seriesc           	      óî  — |dv rddt         j                  dœ}nU|dv rddt         j                  dœ}n<|�&|j                  d«      rd	d
t         j                  dœ}nd	d
t        j                  dœ}t        j
                  t        j                  | D �cg c]  }||   ‘Œ	 c}|¬«      g d¢dœ«      }|j                  ddd|d¬«      }|r|d   }|j                  «       }i }	t        | «      D ]  \  }
}|	j                  |d«      |
z   |	|<   Œ |dk(  rAt        j                  |	D �cg c]  }||   ‘Œ	 c}|d   j                  j                  d¬«      }nˆt        |t        «      rO|j                  d«      r>t        j                   t        j"                  |	D �cg c]  }||   ‘Œ	 c}|¬«      d¬«      }n)t        j                   |	D �cg c]  }||   ‘Œ	 c}|d¬«      }t        j                  |	j%                  «       |dd ¬«      }|s|j'                  «       }|s:|j)                  «       }|�(|j                  d«      r|d   j+                  |«      |d<   t-        j.                  ||«       y c c}w c c}w c c}w c c}w )N)rÃ   rÄ   ÚxÚy)rË   rÌ   Úz)rÇ   rÈ   z
2016-01-01z
2017-01-01)ÚIÚUÚFr   rK   r¢   )r   r   rK   rI   )Úkeyr   rÑ   F)r    ÚsortÚas_indexÚobservedr   r   rÂ   rD   ÚSparse)r£   rE   )r'   rE   r£   )r)   ÚNAÚ
startswithr1   r2   r*   rL   r+   r,   Ú	enumerateÚgetÚCategoricalIndexÚcatÚ
categoriesÚ
isinstanceÚstrrF   r¦   ru   Úto_frameÚreset_indexÚastyper3   r›   )r¯   r£   rÉ   rÓ   ÚuniquesÚlabelr9   r`   rO   ÚsummedrG   r   r'   r<   s                 r=   Útest_no_sort_keep_narå   �  s:  € ðP Ð-Ñ-Ø #¬B¯E©EÑ2‰Ø	Ð1Ñ	1Ø$¨<¼b¿e¹eÑD‰Ø	Ð	˜u×/Ñ/°Ô@Ø ¬¯©Ñ.‰à ¬¯©Ñ/ˆä	�‰ä—9‘9¸(ÖC°˜g e›nÒCÈ5ÔQÚñ	
ó
€Bð 
�‰�E %¨e¸hÐQVˆÓ	W€BÙØ�‰WˆØ�V‰V‹X€Fð €FÜ Ó)ò 3‰
ˆˆUØŸ
™
 5¨!Ó,¨sÑ2ˆˆuŠð3à�
ÒÜ×#Ñ#Ø!'Ö(˜AˆW�Q‹ZÒ(Øˆu‰I�M‰M×$Ñ$Øô
‰ô
 
�Eœ3Ô	 E×$4Ñ$4°XÔ$>Ü—‘Ü�H‰H°&Ö9¨�g˜e“nÒ9ÀÔGÈeô
‰ô —‘°fÖ=¨U˜' %›.Ò=ÀUÐQVÔWˆÜ�y‰y˜Ÿ™›°¸CÀtÔL€HÙØ×$Ñ$Ó&ˆÙØ×'Ñ'Ó)ˆØÐ ×!1Ñ!1°(Ô!;Ø& u™o×4Ñ4°UÓ;ˆH�U‰Oä‡O�O�F˜HÕ%ùòE Dùò  )ùò :ùò >s   ÂI#Ä!I(ÆI-ÇI2c                 ó¬  — t        j                  dddgi«      }t        j                  ||g|¬«      }|r|d   n|}|j                  |d| ¬«      }|j	                  «       }	t        j
                  t        |j                  «      g«      }
t        j                  ddgi|
¬«      }|rt        j                  |	|d   «       y t        j                  |	|«       y )	Nr   r   rK   r¢   F)r    rÒ   rI   r&   )r)   r*   rL   r+   r,   rF   r   r£   r3   rM   r4   )rÒ   r£   r7   rA   rÉ   r9   r€   rœ   r`   rO   r'   r<   s               r=   Útest_null_is_null_for_dtyperç   è  s³   € ô 
�‰�s˜Q ˜F�mÓ	$€BÜ�Y‰Y˜ ~Ð6¸eÔD€FÙ ˆ"ˆSŠ' b€CØ	�‰�V E°ˆÓ	5€BØ�V‰V‹X€FÜ�H‰HÔ(¨¯©Ó6Ð7Ó8€EÜ�|‰|˜S 1 #˜J¨eÔ4€HÙÜ
×Ñ˜v x°¡}Õ5ä
×Ñ˜f hÕ/r?   Ú
index_kind)rˆ   ÚsingleÚmultic                 óô  — t        j                  t         j                  j                  d«      j	                  g d¢d¬«      d «      }t        j                  t        j                  |g d¢¬«      t        d«      dœ«      }|j                  «       }t        j                  |g d	¢¬«      j                  d
«      |d<   |dk(  rdg}ne|dk(  r&dg}|j                  d«      }|j                  d«      }n:ddg}|d   |d<   |j                  ddg«      }|d   |d<   |j                  ddg«      }t        | |«      }	t        | |«      }
| dk(  r1|dk(  r,|	d   j                  |¬«      f}	|
d   j                  |¬«      f}
|j                  |d|||¬«      }|s8| dv r4t        j                   t"        d¬«      5   t%        || «      |	Ž  d d d «       y |j                  |||d¬«      }| dk(  r	t&        }d}nd }d}t)        j*                  ||¬«      5   t%        || «      |
Ž j-                  «       }d d d «       d   j.                  j1                  d
g«      |d<   |dk(  r"|d   j.                  j1                  d
g«      |d<   |r*|dk(  r|j                  ddg«      }n|j                  d«      }| dv r¡|dk7  rœ|d   j2                  j5                  «       }|dk(  rA|D �cg c]  }|d
k(  rt         j6                  n|‘Œ }}t        j                  |g d¢¬«      |d<   n9|D �cg c])  }|dk(  r t         j6                  t         j6                  fn|‘Œ+ }}||d<   | dk(  r*|j9                  ddi¬«      }|r|d   j9                  d «      }| dk(  r	t&        }d}nd }d}t)        j*                  ||¬«      5   t%        || «      |	Ž }d d d «       t)        j:                  |«       y # 1 sw Y   y xY w# 1 sw Y   �Œ·xY wc c}w c c}w # 1 sw Y   ŒCxY w) NrK   ©r   rK   Né   ©Úsize©r   rK   rI   ©rÜ   r~   ©rË   rÌ   )r   rK   rI   rb   rb   rË   rˆ   ré   Úx2Úcorrwithr   r   F©r    rÔ   rÒ   rÓ   )ÚidxminÚidxmaxz(empty group due to unobserved categories)ÚmatchT)rÔ   rÒ   rÓ   z'DataFrameGroupBy.corrwith is deprecatedÚ rê   )r÷   rö   rÌ   )rb   rb   rï   )r1   ÚappendÚrandomÚdefault_rngÚchoicer)   r*   ÚCategoricalrˆ   ÚcopyÚfillnarš   r   Údropr+   ÚpytestÚraisesÚ
ValueErrorÚgetattrr   r3   Úassert_produces_warningrà   rÛ   Úremove_categoriesru   Útolistr2   Úrenamer›   )Úreduction_funcrÔ   rÒ   rÓ   rè   ru   r9   Ú	df_filledr–   ÚargsÚargs_filledÚ	gb_keepnaÚ	gb_filledÚwarnÚmsgr<   r   rO   s                     r=   Útest_categorical_reducersr  û  sù  € ô �Y‰Y”r—y‘y×,Ñ,¨QÓ/×6Ñ6²|È"Ð6ÓMÈtÓT€FÜ	�‰Ü�n‰n˜V²	Ô:ÄÀrÃÑKó
€Bð
 —‘“	€IÜ—^‘^ F²|ÔD×KÑKÈAÓN€Iˆc�Nà�WÒØˆu‰Ø	�xÒ	ØˆuˆØ�\‰\˜#ÓˆØ×'Ñ'¨Ó,‰	à�Tˆ{ˆØ�c‘7ˆˆ4‰Ø�\‰\˜3 ˜+Ó&ˆØ# C™.ˆ	�$‰Ø×'Ñ'¨¨d¨Ó4ˆ	Ü" >°2Ó6€DÜ)¨.¸)ÓD€KØ˜Ò#¨
°gÒ(=à�Q‘—‘ T�Ó*Ð,ˆØ" 1‘~×*Ñ*°4Ð*Ó8Ð:ˆà—
‘
Ø�U X°DÀ8ð ó €Iñ ˜Ð*>Ñ>Ü�]‰]ÜÐHô
ñ 	6ð /ŒG�I˜~Ó.°Ñ5÷	6ð 	à×!Ñ! $°ÀÈtÐ!ÓT€IØ˜Ò#ÜˆØ7‰àˆØˆÜ	×	#Ñ	# D°Ô	4ñ RØ5”7˜9 nÓ5°{ÐC×OÑOÓQˆ÷Rà˜S‘M×%Ñ%×7Ñ7¸¸Ó<€HˆS�MØ�WÒØ! $™×+Ñ+×=Ñ=¸q¸cÓBˆ�‰ÙØ˜Ò Ø×)Ñ)¨3°¨+Ó6‰Hà×)Ñ)¨#Ó.ˆHØÐ-Ñ-°*ÀÒ2Gà˜#‘×%Ñ%×,Ñ,Ó.ˆØ˜Ò!Ø7=Ö>°!  Q¢”b—f’f¨AÑ-Ð>ˆFÐ>ÜŸN™N¨6ºiÔHˆH�SŠMàFLÖMÀ¨!¨vª+”r—v‘vœrŸv™vÑ&¸1Ñ<ÐMˆFÐMØ"ˆH�S‰MØ˜Òà—?‘?¨A¨v¨;�?Ó7ˆÙØ Ñ'×.Ñ.¨tÓ4ˆHà˜Ò#ÜˆØ7‰àˆØˆÜ	×	#Ñ	# D°Ô	4ñ ;Ø3”˜ NÓ3°TÐ:ˆ÷;ô ‡O�O�F˜HÕ%÷a	6ð 	ú÷Rñ Rüò ?ùò N÷;ð ;ús0   Æ-OÈOËO$Ì.O)ÎO.ÏOÏO!Ï.O7c                 ó2  — t        j                  t         j                  j                  d«      j	                  g d¢d¬«      d «      }t        j                  t        j                  |g d¢¬«      t        d«      dœ«      }t        | |«      }||d	   j                  «          d
   }| dk(  rt        t        t        |«      «      «      }n‡| dk(  rs|r4|r|d	   j                  d¬«      dz
  }	nF|d	   j                  d¬«      dz
  }	n-|j                  d |j                  d    d	   j                  «       }	t        |«      |	gz  }n t!        || «      |Ž }t        j                  d
|i«      }
|j#                  d	d|||¬«      }|j#                  d	d||¬«      } t!        || «      |Ž } t!        || «      |Ž }t%        ||d	   j                  «          j                  j'                  «       |
j(                  j+                  «       d¬«      D ]5  \  }}|j,                  dk(  r||j                  |<   Œ%||j                  |df<   Œ7 | dk(  r0||d	   j/                  «       |j1                  	«      z  xx   dz  cc<   | dvr|j3                  d«      }t5        j6                  ||«       y )NrK   rì   rí   rî   rð   rñ   r~   rò   rË   rÌ   ÚcumcountÚngroupFr   r   r   rõ   T)r    rÔ   rÒ   r‹   )ÚrankÚdiffÚ
pct_changeÚshiftÚint64)r1   rú   rû   rü   rý   r)   r*   rþ   rˆ   r   Úisnullr/   ri   ÚnuniqueÚilocr'   r  r+   r�   r  ru   ÚravelÚndimÚnotnullÚgerá   r3   r›   )Útransformation_funcrÔ   rÒ   rÓ   ru   r9   r  Únull_group_valuesÚnull_group_dataÚna_groupÚnull_group_resultr  Ú	gb_dropnarO   r<   r  Úvalues                    r=   Útest_categorical_transformersr)  R  sz  € ä�Y‰Y”r—y‘y×,Ñ,¨QÓ/×6Ñ6²|È"Ð6ÓMÈtÓT€FÜ	�‰Ü�n‰n˜V²	Ô:ÄÀrÃÑKó
€Bô #Ð#6¸Ó;€Dð ˜2˜c™7Ÿ>™>Ó+Ñ,¨SÑ1ÐØ˜jÒ(Üœu¤SÐ):Ó%;Ó<Ó=‰Ø	 Ò	(ÙÙØ˜c™7Ÿ?™?°%˜?Ó8¸1Ñ<‘ð ˜c™7Ÿ?™?°%˜?Ó8¸1Ñ<‘à—w‘wÐ;Ð!2×!8Ñ!8¸Ñ!;Ð<¸SÑA×IÑIÓKˆHÜÐ/Ó0°H°:Ñ=‰àIœ'Ð"3Ð5HÓIÈ4ÐPˆÜŸ™ c¨?Ð%;Ó<Ðà—
‘
Ø�E H°4À(ð ó €Ið —
‘
˜3 t°hÀT�
ÓJ€Ià4ŒW�YÐ 3Ó4°dÐ;€FØ6Œw�yÐ"5Ó6¸Ð=€HäØ
ˆ2ˆc‰7�>‰>ÓÑ×"Ñ"×)Ñ)Ó+Ø× Ñ ×&Ñ&Ó(Øôò +‰ˆˆeð
 �=‰=˜AÒØ"'ˆH�M‰M˜$Òà%*ˆH�M‰M˜$ ˜'Ò"ð+ð ˜hÒ&Ø��C‘—‘Ó" X§[¡[°Ó%:Ñ:Ó;¸qÑ@Ó;ØÐ"IÑIØ—?‘? 7Ó+ˆä‡O�O�F˜HÕ%r?   ÚmethodÚheadÚtailc                 óL  — t         j                  j                  d«      j                  g d¢d«      }t	        j
                  t	        j                  |g d¢¬«      t        t        |«      «      dœ«      }|j                  dd|||¬	«      } t        || «      «       }| d
k(  r|d d d…   }|dk(  |dk(  j                  «       dk  z  |dk(  |dk(  j                  «       dk  z  z  |d k(  |d k(  j                  «       dk  z  z  }| d
k(  r|d d d…   }||   }	t        j                  ||	«       y )NrK   rì   r   rð   rñ   rò   rË   Frõ   r,  éÿÿÿÿr   rt   )r1   rû   rü   rý   r)   r*   rþ   rˆ   ri   r+   r  Úcumsumr3   r4   )
r*  rÔ   rÒ   rÓ   ru   r9   r`   rO   Úmaskr<   s
             r=   Útest_categorical_head_tailr1  …  s-  € ô �Y‰Y×"Ñ" 1Ó%×,Ñ,ª\¸2Ó>€FÜ	�‰Ü�n‰n˜V²	Ô:ÄÄsÈ6Ã{ÓASÑTó
€Bð 
�‰�C °¸tÈhˆÓ	W€BØ ŒW�R˜Ó Ó"€Fà�ÒØ™˜"˜‘ˆð �A‰+˜6 Q™;×.Ñ.Ó0°AÑ5Ñ	6Ø�a‰K˜V q™[×0Ñ0Ó2°aÑ7Ñ8ñ	:ð �d‰N ¨$¡×6Ñ6Ó8¸AÑ=Ñ>ñ	@ð 	ð �ÒØ‘D�b�D‰zˆØ�$‰x€Hä×Ñ˜& (Õ+r?   c                  ó€  — t         j                  j                  d«      j                  g d¢d«      } t	        j
                  t	        j                  | g d¢¬«      t        t        | «      «      dœ«      }|j                  ddd¬	«      }|j                  d
„ «      }|j                  «       }t        j                  ||«       y )NrK   rì   r   rð   rñ   rò   rË   F©r    rÔ   c                 ó"   — | j                  «       S ©N©r,   ©rË   s    r=   rŠ   z&test_categorical_agg.<locals>.<lambda>¦  s   € ˜aŸe™e›g€ r?   )r1   rû   rü   rý   r)   r*   rþ   rˆ   ri   r+   ro   r,   r3   r4   ©ru   r9   r`   rO   r<   s        r=   Útest_categorical_aggr9  Ÿ  s�   € ä�Y‰Y×"Ñ" 1Ó%×,Ñ,ª\¸2Ó>€FÜ	�‰Ü�n‰n˜V²	Ô:ÄÄsÈ6Ã{ÓASÑTó
€Bð 
�‰�C °ˆÓ	6€BØ�V‰VÑ%Ó&€FØ�v‰v‹x€HÜ×Ñ˜& (Õ+r?   c                  ó‚  — t         j                  j                  d«      j                  g d¢d«      } t	        j
                  t	        j                  | g d¢¬«      t        t        | «      «      dœ«      }|j                  ddd¬	«      }|j                  d
„ «      }|j                  d«      }t        j                  ||«       y )NrK   rì   r   rð   rñ   rò   rË   Fr3  c                 ó"   — | j                  «       S r5  r6  r7  s    r=   rŠ   z,test_categorical_transform.<locals>.<lambda>²  s   €  A§E¡E£G€ r?   r,   )r1   rû   rü   rý   r)   r*   rþ   rˆ   ri   r+   rh   r3   r4   r8  s        r=   Útest_categorical_transformr<  «  s�   € ä�Y‰Y×"Ñ" 1Ó%×,Ñ,ª\¸2Ó>€FÜ	�‰Ü�n‰n˜V²	Ô:ÄÄsÈ6Ã{ÓASÑTó
€Bð 
�‰�C °ˆÓ	6€BØ�\‰\Ñ+Ó,€FØ�|‰|˜EÓ"€HÜ×Ñ˜& (Õ+r?   )5Únumpyr1   r  Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandas.core.dtypes.missingr   Úpandasr)   Úpandas._testingÚ_testingr3   Úpandas.tests.groupbyr   ÚmarkÚparametrizer2   r>   rB   rH   rL   rP   rZ   ra   Ú
RangeIndexr/   r-   Úfrom_productrk   rq   Úarm_slowÚ	TimestampÚ	TimedeltaÚPeriodr|   Úparamr”   r�   r«   r®   Ú
skip_if_norå   Úobjectrç   r  r)  r1  r9  r<  © r?   r=   ú<module>rT     sC  ðÛ Û å (ß )Ð )å 9ã Ý Ý 8ð ‡�×ÑØð Ø�3ˆZ˜#˜s˜Ð$Ø˜�.¨¨e }¸DÀ#¸;ÑGð	
ð Ø�3ˆZ˜#˜rŸv™v˜¨¨c¨
Ð3â)Ú)Ú&ñð	
ðóñ&-ó'ð&-ð0 ‡�×ÑØð Ø�3ˆZ˜#˜s˜Ð$Ø˜�.¨¨e }¸DÀ#¸;ÑGð	
ð Ø�3ˆZ˜#˜rŸv™v˜¨¨c¨
°R·V±V¸S°MÐBâ.Ú.Ú+ñð	
ðóñ&-ó'ð&-ð2 ‡�×ÑØà	��Sˆz &¨$ °u¸d°mÈ3ÐPTÈ+ÑVÐWàØ�#�r—v‘vÐâ)Ú)Ú&ñð	
ðóñ-óð-ð  ‡�×ÑØà	��S˜#˜rŸv™vÐ&¨	¨¯	©	°1°a°&ÀÀcÀ
Ô(KÐLàØ�#�s˜BŸF™FÐ#ØˆB�I‰I’i¨¨S°"·&±&Ð'9Ô:ð	
ðó
ñ-ó
ð-ð ‡�×ÑØà	ˆyˆr�y‰y˜% ˜°°S¨zÀÔLÐMàØˆB�I‰IÒ*°3¸¸R¿V¹VÐ2DÈ;ÔWð	
ðó	ñ-ó	ð-ò(ð ‡�×ÑØàˆ�‰�a˜ÓÙˆV‹Ø
�‰×"Ñ" F¨JÐ#7ÀÀu¸~Ð"ÓNðóñ-óð-ð( ‡�×ÑØð Ø�3ˆZ˜#˜s˜Ð$Ø˜�.¨¨e }¸CÀ¸:ÑFð	
ð Ø�3ˆZ˜#˜rŸv™v˜¨¨c¨
Ð3â)Ú)Ú%ñð	
ðóñ&-ó'ð&-ð. ‡�×ÑØ‡�×ÑØà	ˆ�‰�lÓ	# \ R§\¡\°,Ó%?Ð@Ø	ˆ�‰�iÓ	  , "§,¡,¨yÓ"9Ð:Ø	ˆ�‰�<Ó	  ) "§)¡)¨LÓ"9Ð:ðóð ‡�×ÑÐ)¨T°B¸°7¨O¸eÂZÐ=PÐ+QÓRñ-ó Sóó ð-ð: ‡�×ÑØ)àˆ�‰ØØ˜S # r§v¡vÐ.Ò:JÑKØ’|Ð$Ø�#�r—v‘vÐØ%ô	
ð 	ˆ�‰ØØ˜S # r§v¡vÐ.Ò:JÑKØ’yÐ!ØØ$ô	
ð 	ˆ�‰àÚ+Ò7GÑHØ’|Ð$ØØ$ô	
ð 	ˆ�‰àÚ+Ò7GÑHØ’|Ð$ØØ#ô	
ð/ó"ñF,óG"ðF,ð$ ‡�×Ñ˜¨°¨u°s¸C°jÐ(AÓBØ‡�×Ñ˜ 3 %¨#¨s¨Ð!4Ó5Ø‡�×Ñ˜ D¨% =Ó1ñ&ó 2ó 6ó Cð&ò64ò(,ð ‡�×ÑØò	óð ‡�×ÑØàØØØØØØØØØØØØØˆ�‰Ð&¨m¨b¯m©m¸IÓ.FÔGØØØð#óð, ‡�×Ñ˜¨¨u¨Ó6ñ1&ó 7ó-óðH1&ðh ‡�×Ñ˜¨¨u¨Ó6Ø‡�×Ñ˜ 6¨4 .Ó1ñ0ó 2ó 7ð0ð" ‡�×Ñ˜Ò'CÓDñS&ó EðS&òl0&ðf ‡�×Ñ˜ F¨FÐ#3Ó4ñ,ó 5ð,ò2	,ó	,r?   