Ë
    ¤ehê[  ã                   óP  — d dl Zd dlZd dl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j(                  d!d!gdd g¬"«      fdddd ej                   g ej(                  g d#¢dd ej                   g¬"«      fg«      d$„ «       Zej                  j                  d%d ej(                  d&d'gdd gd(¬)«      fd ej(                  g d*¢dd ej                   gd(¬)«      fg«      d+„ «       Zej                  j                  d,d-«      d.„ «       Zej                  j                  d/ ej0                  d d0«       ed1«      ej4                  j7                  d2d3gd4d5g¬6«      g«      d7„ «       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 d8¢g d9¢dœfg«      d:„ «       Zej                  j<                  ej                  j                  d; ej>                  d<«       ej>                  d=«      f ej@                  d>«       ej@                  d?«      f ejB                  d<«       ejB                  d=«      fg«      ej                  j                  d@ddAd!gfdg dB¢fg«      dC„ «       «       «       Z"ej                  j                  dD ejF                  dddd ej                   gg dE¢dFœdGg dH¢idd ej                   gdI¬J«       ejF                  dddd ej                   gg dE¢dFœdGg dK¢iddL¬J«       ejF                  dg dM¢g dE¢dFœdGg dH¢iddN¬J«       ejF                  dg dM¢g dE¢dFœdGg dH¢iddO¬J«      g«      dP„ «       Z$ej                  j                  dQddgdd gg«      ej                  j                  dRdgdd gg«      ej                  j                  dSddg«      dT„ «       «       «       Z%dU„ Z&dV„ Z'ej                  j                  dW e(dX«      «      ej                  j                  dYddZd[d\d]d^d_d`dadbdadcddde ejF                  dfej                  jS                  edg¬h«      ¬i«      djdkdlg«      ej                  j                  dmddg«      dn„ «       «       «       Z*ej                  j                  dmddg«      ej                  j                  dYe+dg«      do„ «       «       Z,ej                  j                  dpg dq¢«      dr„ «       Z-ds„ Z.ej                  j                  dtdudvg«      dw„ «       Z/dx„ Z0dy„ Z1y)zé    N)Úpa_version_under10p1)Ú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	            úf/var/www/skyplay_api_hub/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   8   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	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   Úobject©ÚdtypeÚnamer&   )r)   r*   r+   r,   ÚIndexr3   r4   )r    Úidxr6   r8   r9   r:   r<   s          r=   Ú*test_groupby_dropna_normal_index_dataframerJ   d   sr   € ò$ 	ÚÚÚð	€Gô 
�‰�gÒ';Ô	<€BØ�j‰j˜ VˆjÓ,×0Ñ0Ó2€Gä�|‰|˜G¬2¯8©8°C¸xÈcÔ+RÔS€Hä×Ñ˜' 8Õ,r?   zdropna, idx, expectedr   r   é   r&   )rK   rK   rK   c                 ó¤   — t        j                  g d¢|¬«      }|j                  d| ¬«      j                  «       }t	        j
                  ||«       y )N)r   é   rK   rK   r&   r   )r%   r    )r)   ÚSeriesr+   r,   r3   Úassert_series_equal)r    rI   r<   ÚserÚresults        r=   Ú test_groupby_dropna_series_levelrR   ƒ   s?   € ô �)‰)’L¨Ô
,€Cà�[‰[˜q¨ˆ[Ó0×4Ñ4Ó6€FÜ×Ñ˜6 8Õ,r?   zdropna, expectedç     @j@ç     àu@ú	Max Speed©r'   rG   )rS   rT   ç      4@c                 óÎ   — t        j                  g d¢g d¢d¬«      }|j                  dddt        j                  g| ¬«      j                  «       }t        j                  ||«       y )N)g     `x@rT   g      >@rW   )ÚFalconrY   ÚParrotrZ   rU   rV   r   r   r   )r)   rN   r+   r1   r2   Úmeanr3   rO   )r    r<   rP   rQ   s       r=   Útest_groupby_dropna_series_byr\   •   sU   € ô �)‰)Ú"Ú6Øô€Cð �[‰[˜#˜s C¬¯©Ð0¸ˆ[Ó@×EÑEÓG€FÜ×Ñ˜6 8Õ,r?   r    )FTc                 ó˜   — t        j                  g d¢g d¢dœ«      }|j                  d| ¬«      }|j                  j                  | k(  sJ ‚y )N©r   r   r   N©r   rM   rK   N©r   r   r   r   )r)   r*   r+   Ú_grouperr    )r    r9   Úgbs      r=   Útest_grouper_dropna_propagationrc   ª   sA   € ô 
�‰šO²/ÑBÓ	C€BØ	�‰�C ˆÓ	'€BØ�;‰;×Ñ Ò'Ð'Ñ'r?   r'   é   Úabcd)r   rM   )Ú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   rM   r   r^   r_   r`   r&   r   r   rV   )r1   r2   r)   r*   r+   Ú	transformÚlenr3   r4   rN   rO   )r    r'   Úexpected_datar9   rb   rQ   r<   s          r=   Ú+test_groupby_dataframe_slice_then_transformrm   ²   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_aggrs   Î   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   rK   é   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   rM   rK   rd   é   rt   )ÚvaluesÚdtrx   r   rw   r,   ©rG   r&   )	r)   r*   r1   r2   r+   rq   rH   r3   r4   )
r    rw   Ú	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€   é   é   )Úgroupsrw   rw   )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| ¬«      }d}t        j                  t
        |¬«      5  |j                  d„ «      }d d d «       t        t        |d   |d   «      «      }t         j                  j                  |dd g¬«      }	| s|r|	j                  |d¬«      }	t        j                  ||	¬	«      }
t        j                  |
«       y # 1 sw Y   ŒŒxY w)
Nrƒ   r   z7DataFrameGroupBy.apply operated on the grouping columns©Úmatchc                 óT   — t        j                  dt        t        | «      «      i«      S )Nrw   )r)   r*   Úrangerk   )Úgrps    r=   ú<lambda>z@test_groupby_apply_with_dropna_for_multi_index.<locals>.<lambda>I  s   € ¤b§l¡l°H¼eÄCÈÃH»oÐ3NÓ&O€ r?   rw   r"   r$   r&   )r)   r*   r+   r3   Úassert_produces_warningÚDeprecationWarningÚapplyÚtupleÚzipr-   r.   r0   r4   )r    ÚdataÚselected_dataÚlevelsr9   rb   ÚmsgrQ   Ú	mi_tuplesr;   r<   s              r=   Ú.test_groupby_apply_with_dropna_for_multi_indexrš     sÖ   € ôL 
�‰�dÓ	€BØ	�‰�H VˆÓ	,€BØ
C€CÜ	×	#Ñ	#Ô$6¸cÔ	Bñ QØ—‘ÑOÓPˆ÷Qô ”c˜$˜x™.¨-¸Ñ*AÓBÓC€IÜ	�‰×	"Ñ	" 9°X¸tÐ4DÐ	"Ó	E€Bñ ‘fØ�]‰]˜6¨ˆ]Ó2ˆä�|‰|˜M°Ô4€HÜ×Ñ˜& (Õ+÷Qð Qús   ÁC$Ã$C-Ú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   rM   rK   ©r   r   r   r   r   r   Fr   )	r)   r*   r1   r2   Ú	set_indexr+   r,   r3   Úassert_equal)r›   rœ   r�   Úobjr<   rb   rQ   s          r=   Ú)test_groupby_dropna_with_multiindex_inputr£   V  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 ]  \  }}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   rM   rK   rd   )Úgroupr   r§   Fr   r   rM   ©rF   rK   r   rd   )r1   r2   r)   r*   r+   ÚindicesÚintpÚarrayr”   rw   r3   Úassert_numpy_array_equalÚisnanr/   rœ   )r•   r9   r:   rQ   rF   r<   Úresult_valuesÚexpected_valuess           r=   Útest_groupby_nan_includedr°   t  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ô
 +.¨f¯m©m«o¸x¿¹Ó?PÓ*Qò 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   rQ   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_indexéQ   rF   ÚUInt8ÚInt8ÚUInt16ÚInt16ÚUInt32ÚInt32ÚUInt64ÚInt64ÚFloat32ÚFloat64ÚcategoryÚstringústring[pyarrow]zpyarrow is not installed)Úreason)Úmarksúdatetime64[ns]ú	period[d]zSparse[float]Útest_seriesc           	      ó  — dj                  t        d«      D �cg c]  }ddddœ| d|z  z  dz     ‘Œ c}«      }|dv rddt        j                  d	œ}n-|d
v 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<   t1        j2                  |
|«       y c c}w c c}w c c}w c c}w c c}w )NÚ rd   ÚxÚyÚz)r   r   rM   rK   )rÁ   rÂ   )rÊ   rË   rÌ   )rÅ   rÆ   z
2016-01-01z
2017-01-01r   rM   r¨   )r   r   rM   rK   )Úkeyr   rÍ   F)r    ÚsortÚas_indexÚobservedr   r   rÀ   ry   ÚSparserE   )r'   rG   rF   )Újoinr�   r)   ÚNAr1   r2   r*   rN   r+   r,   Ú	enumerateÚgetÚCategoricalIndexÚcatÚ
categoriesÚ
isinstanceÚstrÚ
startswithrH   r«   rw   Úto_frameÚreset_indexÚastyper3   r¡   )r´   rF   rÇ   rÏ   ÚkÚsequenceÚuniquesÚlabelr9   rb   rQ   ÚsummedrI   r   r'   r<   s                   r=   Útest_no_sort_keep_narä   �  sY  € ðF �w‰wÜINÈqËÖRÀAˆS�S˜SÑ	! .°Q¸±TÑ":¸QÑ">Ó	?ÒRó€Hð
 Ð-Ñ-Ø #¬B¯E©EÑ2‰Ø	Ð1Ñ	1Ø$¨<¼b¿e¹eÑD‰à ¬¯©Ñ/ˆä	�‰ä—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Õ%ùò_ 	Sùò Dùò  )ùò :ùò >s   ™I3Â!I8Ä1I=Æ"JÇJ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   rM   r¨   F)r    rÎ   rK   r&   )r)   r*   rN   r+   r,   rH   r   rF   r3   rO   r4   )rÎ   rF   r7   rA   rÇ   r9   rƒ   r¢   rb   rQ   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¬«      } t%        || «      |
Ž j'                  «       }|d   j(                  j+                  d
g«      |d<   |dk(  r"|d   j(                  j+                  d
g«      |d<   |r+|dk(  r|j                  ddg«      }nE|j                  d«      }n3|dk7  r.| dk7  r)|j                  d¬«      }|dk(  r|j                  d¬«      }| dv r¡|dk7  rœ|d   j,                  j/                  «       }|dk(  rA|D �cg c]  }|d
k(  rt         j0                  n|‘Œ }}t        j                  |g d¢¬«      |d<   n9|D �cg c])  }|dk(  r t         j0                  t         j0                  fn|‘Œ+ }}||d<   | dk(  r*|j3                  ddi¬«      }|r|d   j3                  d «      }|s
|dk(  s| dk(  rd }nt4        }d}t7        j8                  ||¬«      5   t%        || «      |	Ž }d d d «       t7        j:                  |«       y # 1 sw Y   y xY wc c}w c c}w # 1 sw Y   Œ6xY w)NrM   ©r   rM   Né   ©Úsize©r   rM   rK   ©rØ   r�   ©rÊ   rË   )r   rM   rK   rd   rd   rÊ   r�   rè   Úx2Úcorrwithr   r   F©r    rÐ   rÎ   rÏ   )ÚidxminÚidxmaxz(empty group due to unobserved categoriesrŠ   T)rÐ   rÎ   rÏ   ré   rî   )rö   rõ   rË   )rd   rd   z*A grouping .* was excluded from the result)r1   ÚappendÚrandomÚdefault_rngÚchoicer)   r*   ÚCategoricalr�   ÚcopyÚfillnar    r   Údropr+   ÚpytestÚraisesÚ
ValueErrorÚgetattrrÝ   r×   Úremove_categoriesrw   Útolistr2   ÚrenameÚFutureWarningr3   r�   r¡   )Úreduction_funcrÐ   rÎ   rÏ   rç   rw   r9   Ú	df_filledrœ   ÚargsÚargs_filledÚ	gb_keepnaÚ	gb_filledr<   r   Úwarnr˜   rQ   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Ø1Œw�y .Ó1°;Ð?×KÑKÓM€HØ˜S‘M×%Ñ%×7Ñ7¸¸Ó<€HˆS�MØ�WÒØ! $™×+Ñ+×=Ñ=¸q¸cÓBˆ�‰ÙØ˜Ò Ø×)Ñ)¨3°¨+Ó6‰Hà×)Ñ)¨#Ó.‰HØ	�wÒ	 >°VÒ#;à—=‘=¨�=Ó-ˆØ˜Ò Ø—}‘}¨T�}Ó2ˆ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á�: Ò(¨N¸fÒ,DØ‰äˆØ
6€CÜ	×	#Ñ	# D°Ô	4ñ ;Ø3”˜ NÓ3°TÐ:ˆ÷;ô ‡O�O�F˜HÕ%÷[	6ð 	üò* ?ùò N÷;ð ;ús$   Æ-OËOÌ.O#Î#O(ÏOÏ(O1c                 ó,  — |dk(  r2d}| j                  t        j                  j                  |d¬«      «       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||¬«      }d}|dk(  r4t-        j.                  t0        |¬«      5   t)        |d«      |Ž }d d d «       n t)        ||«      |Ž } t)        ||«      |Ž }t3        ||d   j                  «          j&                  j5                  «       |j6                  j9                  «       «      D ]5  \  }}|j:                  dk(  r||j$                  |<   Œ%||j$                  |df<   Œ7 |dk(  r0||d   j=                  «       |j?                  «      z  xx   dz  cc<   |dvr|jA                  d«      }t-        jB                  |«       y # 1 sw Y   �ŒxY w)Nrý   zBGH#49651 fillna may incorrectly reorders results when dropna=FalseF)rÃ   ÚstrictrM   rë   rì   rí   rï   rð   r�   rñ   rÊ   rË   ÚcumcountÚngroupr   r   r   rô   T)r    rÐ   rÎ   zLThe default fill_method='ffill' in DataFrameGroupBy.pct_change is deprecatedÚ
pct_changerŠ   )ÚrankÚdiffr  ÚshiftÚint64)"Úapplymarkerrÿ   ÚmarkÚxfailr1   r÷   rø   rù   rú   r)   r*   rû   r�   r   Úisnullr/   rk   ÚnuniqueÚilocr'   r  r+   r3   r�   r  r”   r  rw   ÚravelÚndimÚnotnullÚgerÞ   r¡   )ÚrequestÚtransformation_funcrÐ   rÎ   rÏ   r˜   rw   r9   r	  Únull_group_valuesÚnull_group_dataÚna_groupÚnull_group_resultr  Ú	gb_dropnarQ   r<   r  Úvalues                      r=   Útest_categorical_transformersr*  M  sô  € ð ˜hÒ&ØRˆØ×ÑœFŸK™K×-Ñ-°SÀÐ-ÓGÔHä�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à
X€CØ˜lÒ*Ü×'Ñ'¬¸SÔAñ 	=Ø5”W˜Y¨Ó5°tÐ<ˆF÷	=ð 	=ð 9”˜Ð$7Ó8¸$Ð?ˆØ6Œw�yÐ"5Ó6¸Ð=€HäØ
ˆ2ˆc‰7�>‰>ÓÑ×"Ñ"×)Ñ)Ó+Ð->×-EÑ-E×-KÑ-KÓ-Móò +‰ˆˆeð �=‰=˜AÒØ"'ˆH�M‰M˜$Òà%*ˆH�M‰M˜$ ˜'Ò"ð+ð ˜hÒ&Ø��C‘—‘Ó" X§[¡[°Ó%:Ñ:Ó;¸qÑ@Ó;ØÐ"IÑIØ—?‘? 7Ó+ˆä‡O�O�F˜HÕ%÷%	=ñ 	=ús   Ç)L	Ì	LÚ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 )NrM   rë   r‚   rï   rð   rñ   rÊ   Frô   r-  éÿÿÿÿr   rv   )r1   rø   rù   rú   r)   r*   rû   r�   rk   r+   r  Úcumsumr3   r4   )
r+  rÐ   rÎ   rÏ   rw   r9   rb   rQ   Úmaskr<   s
             r=   Útest_categorical_head_tailr2  ‰  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 )NrM   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�   rk   r+   rq   r,   r3   r4   ©rw   r9   rb   rQ   r<   s        r=   Útest_categorical_aggr:  £  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 )NrM   rë   r‚   rï   rð   rñ   rÊ   Fr4  c                 ó"   — | j                  «       S r6  r7  r8  s    r=   r�   z,test_categorical_transform.<locals>.<lambda>¶  s   €  A§E¡E£G€ r?   r,   )r1   rø   rù   rú   r)   r*   rû   r�   rk   r+   rj   r3   r4   r9  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?   )2Únumpyr1   rÿ   Úpandas.compat.pyarrowr   Úpandas.core.dtypes.missingr   Úpandasr)   Úpandas._testingÚ_testingr3   Úpandas.tests.groupbyr   r  Úparametrizer2   r>   rB   rJ   rN   rR   r\   rc   Ú
RangeIndexr/   r-   Úfrom_productrm   rs   Úarm_slowÚ	TimestampÚ	TimedeltaÚPeriodr   Úparamrš   r£   r°   r³   r�   Úskipifrä   rD   ræ   r  r*  r2  r:  r=  © r?   r=   ú<module>rO     sp  ðÛ Û å 6å 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ð	
ðó	ñ-ó	ð-ð ‡�×Ñ˜ =Ó1ñ(ó 2ð(ð ‡�×ÑØàˆ�‰�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ò$,ð ‡�×ÑÐ)©5°«;Ó7Ø‡�×ÑØàØØØØØØØØØØØØØØˆ�‰ØØ—+‘+×$Ñ$Ø$Ð-Gð %ó ô	
ð 	ØØð/óð8 ‡�×Ñ˜¨¨u¨Ó6ñ5&ó 7ó9ó 8ð<5&ðp ‡�×Ñ˜¨¨u¨Ó6Ø‡�×Ñ˜ 6¨4 .Ó1ñ0ó 2ó 7ð0ð" ‡�×Ñ˜Ò'CÓDñP&ó EðP&òf9&ðx ‡�×Ñ˜ F¨FÐ#3Ó4ñ,ó 5ð,ò2	,ó	,r?   