Ë
    z�hÊ›  ã                  ó   — U d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d d	lm
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 d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  d dl!m"Z" d dl!m#Z# d dl$m%Z% d dl$m&Z& d dl$m'Z' d d l$m(Z( d d!l$m)Z) d d"l$m*Z* d d#l$m+Z+ d d$l$m,Z, d d%l$m-Z- erÀd d&l.m/Z/ d d'l0m1Z1 d d(l2m3Z3 d dl4Z5d dl6Z7d d)l8m9Z9 d d*l8m:Z: d d+l8m;Z; d d,l<m=Z= d d-l>m?Z? d d.l@mAZA d d/lBmCZC d d0lDmEZE d d1lFmGZG d d2lHmIZI d d3lHmJZJ d d4lHmKZK d d5lHmLZL d d6lHmMZM d d7lHmNZN d d8lHmOZO d d9lHmPZP d d:lHmQZQ d d;lHmRZR d d<lHmSZS d d=lHmTZT d d>lHmUZU d d?l$mVZV d d@l$mWZW edAe5j°                  f   ZYdBeZdC<    e[ ej¸                  dD«       ej¸                  dE«       ej¸                  dF«       ej¸                  dG«       ej¸                  dH«       ej¸                  dI«       ej¸                  dJ«       ej¸                  dK«       ej¸                  dL«       ej¸                  dM«       ej¸                  dN«       ej¸                  dO«       ej¸                  dP«       ej¸                  dQ«       ej¸                  dR«       ej¸                  dS«       ej¸                  dT«       ej¸                  dU«       ej¸                  dV«       ej¸                  dW«      g«      Z]dXeZdY<    G dZ„ d[ed\   «      Z^y)]é    )Úannotations)ÚTYPE_CHECKING)ÚAny)ÚCallable)ÚIterable)ÚIterator)ÚLiteral)ÚMapping)ÚSequence)Úcast)ÚoverloadN)ÚEagerDataFrame)ÚPANDAS_TO_NUMPY_DTYPE_MISSING)ÚPandasLikeSeries)Úalign_and_extract_native)Úalign_series_full_broadcast)Úcheck_column_names_are_unique©Úget_dtype_backend)Únative_to_narwhals_dtype)Úobject_native_to_narwhals_dtype)Úpivot_table)Úrename)Úselect_columns_by_name)Ú	set_index©Úis_pandas_like_dataframe)ÚInvalidOperationError)Ú
ShapeError)ÚImplementation)Ú_into_arrow_table)Ú_remap_full_join_keys)Úcheck_column_exists)Úgenerate_temporary_column_name)Úparse_columns_to_drop©Úparse_version)Úscale_bytes)Úvalidate_backend_version)ÚBytesIO)ÚPath)Ú
ModuleType)ÚSelf)Ú	TypeAlias)ÚTypeIs)ÚPandasLikeExpr©ÚPandasLikeGroupBy©ÚPandasLikeNamespace)ÚIntoArrowTable)ÚDType©ÚSchema)ÚAsofJoinStrategy)ÚCompliantDataFrame)ÚCompliantLazyFrame)ÚDTypeBackend)ÚJoinStrategy)ÚPivotAgg)ÚSizedMultiIndexSelector)ÚSizedMultiNameSelector)ÚSizeUnit)ÚUniqueKeepStrategy)Ú_2DArray)Ú_SliceIndex)Ú
_SliceName)ÚVersion)Ú_FullContext.r.   ÚConstructorÚfloat64Úfloat32Úint64Úint32Úint16Úint8Úuint64Úuint32Úuint16Úuint8Úboolzdatetime64[s]zdatetime64[ms]zdatetime64[us]zdatetime64[ns]ztimedelta64[s]ztimedelta64[ms]ztimedelta64[us]ztimedelta64[ns]Úobjectzfrozenset[np.dtype[Any]]ÚCLASSICAL_NUMPY_DTYPESc                  ó  — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 dKd„ZedLd„«       Ze	 	 	 	 	 	 	 	 dMd„«       ZedNd„«       ZedOd„«       Z	e	 	 	 	 	 	 	 	 dPd„«       Z
dQd„ZdQd„ZdRd	„ZdSd
„ZdTd„ZdUd„ZddœdVd„ZdWd„ZdXd„ZdYddœdZd„Zd[d„Zd\d„Zd]d„Zd^d„Z	 	 	 	 d_d„Z	 	 	 	 d`d„Zedad„«       Ze	 	 	 	 dbd„«       Ze	 	 	 	 dcd„«       Ze	 	 	 	 ddd„«       Zddd„Zded „ZeZ 	 	 	 	 	 	 dfd!„Z!edgd"„«       Z"dgd#„Z#dhd$„Z$did%„Z%	 	 	 	 	 	 djd&„Z&dkd'„Z'dld(„Z(dmd)„Z)	 	 	 	 	 	 dnd*„Z*	 	 	 	 	 	 did+„Z+dod,„Z,dpd-„Z-	 	 	 	 	 	 	 	 dqd.„Z.	 	 	 	 	 	 drd/„Z/	 	 	 	 	 	 dsd0„Z0	 	 	 	 	 	 	 	 	 	 	 	 dtd1„Z1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dud2„Z2dvd3„Z3dvd4„Z4dd5œ	 	 	 	 	 	 	 dwd6„Z5dd7œ	 	 	 dxd8„Z6edyd9„«       Z7dzd:„Z8dYddœdZd;„Z9d{d<„Z:d|d=„Z;d}d>„Z<ed~d?„«       Z=ed}d@„«       Z=ddA„Z=d€dB„Z>d�dC„Z?dQdD„Z@d‚dE„ZA	 	 	 	 	 	 	 	 	 	 	 	 	 	 dƒdF„ZBd„dG„ZC	 	 	 	 	 	 	 	 	 	 d…dH„ZD	 	 	 	 	 	 	 	 	 	 d†dI„ZEd‡dJ„ZFy)ˆÚPandasLikeDataFramec               ó¬   — || _         || _        || _        || _        t	        | j                  | j                  «       |rt        |j                  «       y y ©N)Ú_native_frameÚ_implementationÚ_backend_versionÚ_versionr)   r   Úcolumns)ÚselfÚnative_dataframeÚimplementationÚbackend_versionÚversionÚvalidate_column_namess         ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/narwhals/_pandas_like/dataframe.pyÚ__init__zPandasLikeDataFrame.__init__k   sP   € ð .ˆÔØ-ˆÔØ /ˆÔØˆŒÜ  ×!5Ñ!5°t×7LÑ7LÔMÙ Ü)Ð*:×*BÑ*BÕCð !ó    c              óf  — |j                   }t        ||«      }|j                  «       r|j                  «       }nf|j	                  «       rddlm}  ||«      }nG|j                  «       r*|j                  «       j                  j                  |«      }nd}t        |«      ‚| j                  ||¬«      S )Nr   )Ú
from_arrowzCcongratulations, you entered unreachable code - please report a bug©Úcontext)r[   r!   Ú	is_pandasÚ	to_pandasÚis_modinÚmodin.pandas.utilsri   Úis_cudfÚto_native_namespaceÚ	DataFrameÚAssertionErrorÚfrom_native)ÚclsÚdatark   ra   ÚtblÚnativeÚmpd_from_arrowÚmsgs           re   ri   zPandasLikeDataFrame.from_arrow|   s—   € à ×0Ñ0ˆÜ  gÓ.ˆØ×#Ñ#Ô%Ø—]‘]“_‰FØ×$Ñ$Ô&ÝGá# CÓ(‰FØ×#Ñ#Ô%Ø#×7Ñ7Ó9×CÑC×NÑNÈsÓS‰FàWˆCÜ  Ó%Ð%Ø�‰˜v¨wˆÓ7Ð7rg   c              ó$  ‡— ddl m} |j                  Š‰j                  «       }t	        d|j
                  «      }t	        d|j                  «      }i }d }	|j                  «       D ]J  \  }
}t        ||«      r4t        j                  ||¬«      }|	€|}	|||
<   Œ3t        |	|«      d   ||
<   ŒF|||
<   ŒL |j                  |«      }|r;ˆfd„|j                  D «       }|j                   ||«      j                  |«      «      }| j                  ||¬«      S )Nr   r7   ztype[pd.Series[Any]]ztype[pd.DataFrame]rj   é   c              3  ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrY   r   )Ú.0Údtypera   s     €re   ú	<genexpr>z0PandasLikeDataFrame.from_dict.<locals>.<genexpr>«   s   øè ø€ ò *Ø=BÔ! %¨×8ñ*ùó   ƒ)Únarwhals.schemar8   r[   rq   r   ÚSeriesrr   ÚitemsÚ
isinstancer   rt   r   Ú	from_dictÚdtypesÚastyperm   )ru   rv   rk   Úschemar8   Únsrƒ   rr   Úaligned_dataÚ	left_mostÚnameÚseriesÚ	compliantrx   Úitra   s                  @re   r†   zPandasLikeDataFrame.from_dict�   s  ø€ õ 	+à ×0Ñ0ˆØ×/Ñ/Ó1ˆÜÐ,¨b¯i©iÓ8ˆÜÐ-¨r¯|©|Ó<ˆ	Ø8:ˆØ-1ˆ	Ø ŸJ™J›Lò 		,‰LˆD�&Ü˜& &Ô)Ü,×8Ñ8¸ÈÔQ�	ØÐ$Ø )�IØ)/�L Ò&ä)AÀ)ÈYÓ)WÐXYÑ)Z�L Ò&à%+�˜TÒ"ð		,ð ×$Ñ$ \Ó2ˆÙó*ØFLÇmÁmô*ˆBð —]‘]¡6¨&£>×#;Ñ#;¸BÓ#?Ó@ˆFØ�‰˜v¨wˆÓ7Ð7rg   c                ó   — t        | «      S rY   r   )Úobjs    re   Ú
_is_nativezPandasLikeDataFrame._is_native±   s   € ä'¨Ó,Ð,rg   c              óX   —  | ||j                   |j                  |j                  d¬«      S )NT©ra   rb   rc   rd   )r[   r\   r]   )ru   rv   rk   s      re   rt   zPandasLikeDataFrame.from_nativeµ   s0   € áØØ"×2Ñ2Ø#×4Ñ4Ø×$Ñ$Ø"&ô
ð 	
rg   c              ó†  ‡— ddl m} |j                  Š‰j                  «       j                  }t        |t        |f«      rVˆfd„|j                  «       D «       } |||j                  «       ¬«      j                   ||«      j                  |«      «      }n ||| j                  ||«      ¬«      }| j                  ||¬«      S )Nr   r7   c              3  ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrY   r   )r~   Únative_typera   s     €re   r€   z1PandasLikeDataFrame.from_numpy.<locals>.<genexpr>Í   s    øè ø€ ò *àô " +¨~×>ñ*ùr�   ©r^   rj   )r‚   r8   r[   rq   rr   r…   r
   ÚvaluesÚkeysrˆ   rm   Ú_numpy_column_namesrt   )	ru   rv   rk   r‰   r8   rr   r�   rx   ra   s	           @re   Ú
from_numpyzPandasLikeDataFrame.from_numpy¿   sª   ø€ õ 	+à ×0Ñ0ˆØ!/×!CÑ!CÓ!E×!OÑ!Oˆ	Ü�fœw¨Ð/Ô0ó*à#)§=¡=£?ô*ˆBñ ˜t¨V¯[©[«]Ô;×BÑBÙ�v“×(Ñ(¨Ó,ó‰Fñ ˜t¨S×-DÑ-DÀTÈ6Ó-RÔSˆFØ�‰˜v¨wˆÓ7Ð7rg   c                ó   — | S rY   © ©r_   s    re   Ú__narwhals_dataframe__z*PandasLikeDataFrame.__narwhals_dataframe__Ø   ó   € Øˆrg   c                ó   — | S rY   rŸ   r    s    re   Ú__narwhals_lazyframe__z*PandasLikeDataFrame.__narwhals_lazyframe__Û   r¢   rg   c                ó`   — ddl m}  || j                  | j                  | j                  ¬«      S )Nr   r3   )rc   )Únarwhals._pandas_like.namespacer4   r[   r\   r]   )r_   r4   s     re   Ú__narwhals_namespace__z*PandasLikeDataFrame.__narwhals_namespace__Þ   s)   € ÝGá"Ø× Ñ  $×"7Ñ"7ÀÇÁô
ð 	
rg   c                óò   — | j                   t        j                  t        j                  t        j                  hv r| j                   j                  «       S dt        | j                   «      › �}t        |«      ‚)Nz!Expected pandas/modin/cudf, got: )r[   r    ÚPANDASÚMODINÚCUDFrq   Útypers   ©r_   rz   s     re   Ú__native_namespace__z(PandasLikeDataFrame.__native_namespace__å   sj   € Ø×ÑÜ×!Ñ!Ü× Ñ Ü×Ñð$
ñ 
ð
 ×'Ñ'×;Ñ;Ó=Ð=à1´$°t×7KÑ7KÓ2LÐ1MÐNˆÜ˜SÓ!Ð!rg   c                ó,   — t        | j                  «      S rY   )Úlenrx   r    s    re   Ú__len__zPandasLikeDataFrame.__len__ð   s   € Ü�4—;‘;ÓÐrg   c                ój   — | j                  | j                  | j                  | j                  |d¬«      S )NFr•   )Ú	__class__rx   r[   r\   )r_   rc   s     re   Ú_with_versionz!PandasLikeDataFrame._with_versionó   s7   € Ø�~‰~Ø�K‰KØ×/Ñ/Ø ×1Ñ1ØØ"'ð ó 
ð 	
rg   T©rd   c               ój   — | j                  || j                  | j                  | j                  |¬«      S )Nr•   )r³   r[   r\   r]   )r_   Údfrd   s      re   Ú_with_nativez PandasLikeDataFrame._with_nativeü   s7   € Ø�~‰~ØØ×/Ñ/Ø ×1Ñ1Ø—M‘MØ"7ð ó 
ð 	
rg   c                óÊ  — | j                   j                  }|j                  rB|j                   } t        |«      |j                  d   ||j
                  |j                  ¬«      S t        |«      x}t        |«      x}k7  rd|› d|› d�}t        |«      ‚|j                   j                  |ur-t        |j                   ||j                  |j                  ¬«      S |j                   S )Nr   )Úindexr   r�   zExpected object of length z, got: ú.)ra   rb   )rx   rº   Ú
_broadcastr¬   Úilocr   r�   r°   r   r   r[   r\   )r_   Úotherrº   ÚsÚ	len_otherÚlen_idxrz   s          re   Ú_extract_comparandz&PandasLikeDataFrame._extract_comparand  sÉ   € Ø—‘×!Ñ!ˆØ×ÒØ—‘ˆAØ”4˜“7˜1Ÿ6™6 !™9¨E¸¿¹ÀqÇvÁvÔNÐNÜ˜U›Ð#ˆI´C¸³JÐ)>¨Ò?Ø.¨w¨i°w¸y¸kÈÐKˆCÜ˜S“/Ð!Ø�<‰<×Ñ UÑ*ÜØ—‘ØØ$×4Ñ4Ø %× 6Ñ 6ô	ð ð �|‰|Ðrg   c                óJ   — t        j                  | j                  |   | ¬«      S ©Nrj   )r   rt   rx   )r_   r�   s     re   Ú
get_columnzPandasLikeDataFrame.get_column  s   € Ü×+Ñ+¨D¯K©K¸Ñ,=ÀtÔLÐLrg   N©Úcopyc               ó(   — | j                  ||¬«      S )N©r   rÇ   )Úto_numpy)r_   r   rÇ   s      re   Ú	__array__zPandasLikeDataFrame.__array__  s   € Ø�}‰} 5¨tˆ}Ó4Ð4rg   c                ó”   — t        |t        «      rt        |«      n|}| j                  | j                  j
                  |d d …f   «      S rY   ©r…   ÚtupleÚlistr¸   rx   r½   )r_   Úrowsr„   s      re   Ú_gatherzPandasLikeDataFrame._gather  s:   € Ü(¨¬uÔ5”�T”
¸4ˆØ× Ñ  §¡×!1Ñ!1°%º°(Ñ!;Ó<Ð<rg   c                ó°   — | j                  | j                  j                  t        |j                  |j
                  |j                  «      d d …f   d¬«      S ©NFrµ   )r¸   rx   r½   ÚsliceÚstartÚstopÚstep)r_   rÐ   s     re   Ú_gather_slicez!PandasLikeDataFrame._gather_slice   sI   € Ø× Ñ Ø�K‰K×ÑœU 4§:¡:¨t¯y©y¸$¿)¹)ÓDÂaÐGÑHØ"'ð !ó 
ð 	
rg   c                ó†  — |j                   �/| j                  j                  j                  |j                   «      nd }|j                  �2| j                  j                  j                  |j                  «      dz   nd }t        |||j                  «      }| j                  | j                  j                  d d …|f   d¬«      S )Nr|   Frµ   )	rÕ   rx   r^   Úget_locrÖ   rÔ   r×   r¸   r½   )r_   r^   rÕ   rÖ   Úselectors        re   Ú_select_slice_namez&PandasLikeDataFrame._select_slice_name&  s¯   € ð �}‰}Ð(ð �K‰K×Ñ×'Ñ'¨¯©Ô6àð 	ð �|‰|Ð'ð �K‰K×Ñ×'Ñ'¨¯©Ó5¸Ò9àð 	ô
 ˜  g§l¡lÓ3ˆØ× Ñ Ø�K‰K×ÑšQ ˜[Ñ)Àð !ó 
ð 	
rg   c                ó^   — | j                  | j                  j                  d d …|f   d¬«      S rÓ   ©r¸   rx   r½   ©r_   r^   s     re   Ú_select_slice_indexz'PandasLikeDataFrame._select_slice_index6  s2   € Ø× Ñ Ø�K‰K×ÑšQ ˜ZÑ(Àð !ó 
ð 	
rg   c                ó˜   — t        |t        «      rt        |«      n|}| j                  | j                  j
                  d d …|f   d¬«      S rÓ   rÍ   rß   s     re   Ú_select_multi_indexz'PandasLikeDataFrame._select_multi_index;  sH   € ô $.¨g´uÔ#=”$�w”-À7ˆØ× Ñ Ø�K‰K×ÑšQ ˜ZÑ(Àð !ó 
ð 	
rg   c                óZ   — | j                  | j                  j                  d d …|f   «      S rY   )r¸   rx   Úlocrß   s     re   Ú_select_multi_namez&PandasLikeDataFrame._select_multi_nameC  s&   € ð × Ñ  §¡§¡²°G°Ñ!<Ó=Ð=rg   c                óJ   — | j                   j                  j                  «       S rY   )rx   r^   Útolistr    s    re   r^   zPandasLikeDataFrame.columnsI  s   € à�{‰{×"Ñ"×)Ñ)Ó+Ð+rg   c                ó   — y rY   rŸ   ©r_   Únameds     re   rÐ   zPandasLikeDataFrame.rowsM  s   € ð
  #rg   c                ó   — y rY   rŸ   ré   s     re   rÐ   zPandasLikeDataFrame.rowsT  s   € ð
 !$rg   c                ó   — y rY   rŸ   ré   s     re   rÐ   zPandasLikeDataFrame.rows[  s   € ð
 8;rg   c               ó:  — |sy| j                   t        j                  u r7| j                  d¬«      D �cg c]  }t	        |j                  «       «      ‘Œ c}S t        | j                  j                  dd ¬«      «      S | j                  j                  d¬«      S c c}w )NT)rê   F©rº   r�   Úrecords©Úorient)
r[   r    r«   rÐ   rÎ   rš   rÏ   rx   Ú
itertuplesÚto_dict)r_   rê   Úrows      re   rÐ   zPandasLikeDataFrame.rowsb  s}   € Ùà×#Ñ#¤~×':Ñ':Ñ:à7;·y±yÀt°yÓ7LÖM°œ˜cŸj™j›lÕ+ÒMÐMä˜Ÿ™×.Ñ.°UÀÐ.ÓFÓGÐGà�{‰{×"Ñ"¨)Ð"Ó4Ð4ùò	 Ns   ³ Bc              #  ó‚   K  — | j                   j                  «       D ]  \  }}t        j                  || ¬«      –— Œ  y ­wrÄ   )rx   r„   r   rt   )r_   Ú_namerŽ   s      re   Úiter_columnsz PandasLikeDataFrame.iter_columnsm  s;   è ø€ Ø!Ÿ[™[×.Ñ.Ó0ò 	E‰MˆE�6Ü"×.Ñ.¨v¸tÔDÓDñ	Eùs   ‚=?c             #  óü   K  — |s&| j                   j                  dd ¬«      E d {  –—†  y | j                   j                  }| j                   j                  d¬«      D ]  }t        t	        ||«      «      –— Œ y 7 ŒT­w)NFrî   ©rº   )rx   rò   r^   ÚdictÚzip)r_   rê   Úbuffer_sizeÚ	col_namesrô   s        re   Ú	iter_rowszPandasLikeDataFrame.iter_rowss  sp   è ø€ ñ Ø—{‘{×-Ñ-°EÀÐ-ÓE×EÑEàŸ™×+Ñ+ˆIØ—{‘{×-Ñ-°EÐ-Ó:ò 0�Üœ3˜y¨#Ó.Ó/Ó/ñ0ð Fús   ‚#A<¥A:¦AA<c           	     ó2  — | j                   j                  }| j                   j                  D �ci c]]  }|||   dk7  r$t        ||   | j                  | j
                  «      n-t        | j                   |   | j                  | j
                  «      “Œ_ c}S c c}w )NrT   )rx   r‡   r^   r   r]   r[   r   )r_   Únative_dtypesÚcols      re   r‰   zPandasLikeDataFrame.schema‚  s—   € àŸ™×*Ñ*ˆð —{‘{×*Ñ*ö	
ð ð ð ˜SÑ! XÒ-ô *Ø˜cÑ" D§M¡M°4×3GÑ3Gôô 1Ø—‘˜CÑ  $§-¡-°×1EÑ1Eóñ	ò	
ð 		
ùò 	
s   ¯A"Bc                ó   — | j                   S rY   )r‰   r    s    re   Úcollect_schemaz"PandasLikeDataFrame.collect_schema�  s   € Ø�{‰{Ðrg   c                óŽ   — | j                  t        | j                  t        |«      | j                  | j
                  «      d¬«      S rÓ   )r¸   r   rx   rÏ   r\   r[   )r_   Úcolumn_namess     re   Úsimple_selectz!PandasLikeDataFrame.simple_select”  sH   € Ø× Ñ Ü"Ø—‘Ü�\Ó"Ø×%Ñ%Ø×$Ñ$ó	ð #(ð !ó 
ð 	
rg   c                ó,  —  | j                   |Ž }|s+| j                  | j                  j                  «       d¬«      S t	        |Ž }| j                  «       }|j                  |D �cg c]  }|j                  ‘Œ c}«      }| j                  |d¬«      S c c}w )NFrµ   T)Ú_evaluate_into_exprsr¸   rx   r³   r   r§   Ú_concat_horizontal)r_   ÚexprsÚ
new_seriesÚ	namespacer¿   r·   s         re   ÚselectzPandasLikeDataFrame.selectŸ  sŽ   € Ø.�T×.Ñ.°Ð6ˆ
Ùà×$Ñ$ T§[¡[×%:Ñ%:Ó%<ÐTYÐ$ÓZÐZÜ0°*Ð=ˆ
Ø×/Ñ/Ó1ˆ	Ø×)Ñ)¸ZÖ*H¸¨1¯8«8Ò*HÓIˆØ× Ñ  ¸4Ð Ó@Ð@ùò +Is   Á$Bc                óø   — |€-| j                  | j                  j                  d¬«      d¬«      S | j                  «       }| j	                  |j                   |j                  |Ž j                  «       «       «      S )Nr   ©ÚaxisFrµ   )r¸   rx   Údropnar§   ÚfilterÚany_horizontalr  Úis_null)r_   ÚsubsetÚplxs      re   Ú
drop_nullszPandasLikeDataFrame.drop_nulls©  sy   € ð ˆ>Ø×$Ñ$Ø—‘×"Ñ"¨Ð"Ó*À%ð %ó ð ð ×)Ñ)Ó+ˆØ�{‰{˜C×.Ñ.¨w¨s¯w©w¸Ð/?×/GÑ/GÓ/IÓJÐJÓKÐKrg   c                óp   — | j                   j                  d¬«      j                  «       }t        ||¬«      S )NT)Údeep)Úunit)rx   Úmemory_usageÚsumr(   )r_   r  Úszs      re   Úestimated_sizez"PandasLikeDataFrame.estimated_size³  s/   € Ø�[‰[×%Ñ%¨4Ð%Ó0×4Ñ4Ó6ˆÜ˜2 DÔ)Ð)rg   c                ó$  — | j                   }| j                  «       }|j                  j                  t	        t        |«      «      | |j                  ¬«      j                  |«      }| j                  |j                  |j                   |g«      «      S )N)rk   rº   )
rx   r§   Ú_seriesÚfrom_iterableÚranger°   rº   Úaliasr¸   r	  )r_   r�   Úframer  Ú	row_indexs        re   Úwith_row_indexz"PandasLikeDataFrame.with_row_index·  s~   € Ø—‘ˆØ×/Ñ/Ó1ˆ	Ø×%Ñ%×3Ñ3Ü”#�e“*Ó t°5·;±;ð 4ó 
ç
‰%�‹+ð 	ð × Ñ  ×!=Ñ!=¸y×?OÑ?OÐQVÐ>WÓ!XÓYÐYrg   c                óT   — t        d„ | j                  j                  |   D «       «      S )Nc              3  ó    K  — | ]  }|–— Œ y ­wrY   rŸ   )r~   Úxs     re   r€   z*PandasLikeDataFrame.row.<locals>.<genexpr>À  s   è ø€ Ò8˜1”QÑ8ùs   ‚)rÎ   rx   r½   )r_   rº   s     re   rô   zPandasLikeDataFrame.row¿  s"   € ÜÑ8 §¡× 0Ñ 0°Ñ 7Ô8Ó8Ð8rg   c                óÆ   — t        |t        «      r|}n%| j                  |«      d   }| j                  |«      }| j	                  | j
                  j                  |   d¬«      S )Nr   Frµ   )r…   rÏ   r  rÂ   r¸   rx   rä   )r_   Ú	predicateÚmask_nativeÚmasks       re   r  zPandasLikeDataFrame.filterÂ  sd   € ô �i¤Ô&Ø7@‰Kð ×,Ñ,¨YÓ7¸Ñ:ˆDØ×1Ñ1°$Ó7ˆKØ× Ñ Ø�K‰K�O‰O˜KÑ(Àð !ó 
ð 	
rg   c                ó   ‡ —  ‰ j                   |Ž }|st        ‰ «      dk(  r‰ S |D �ci c]  }|j                  |“Œ }}g }‰ j                  j                  D ]G  }||v r!‰ j                  |j                  |«      «      }n‰ j                  |   }|j                  |«       ŒI |j                  ˆ fd„|j                  «       D «       «       ‰ j                  «       }|j                  |«      }	‰ j                  |	d¬«      S c c}w )Nr   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrY   )rÂ   )r~   r¿   r_   s     €re   r€   z3PandasLikeDataFrame.with_columns.<locals>.<genexpr>Þ  s   øè ø€ ÒS¸˜×0Ñ0°×3ÑSùs   ƒFrµ   )r  r°   r�   rx   r^   rÂ   ÚpopÚappendÚextendrš   r§   r	  r¸   )
r_   r
  r^   r¿   Úname_columnsÚ	to_concatr�   rŽ   r  r·   s
   `         re   Úwith_columnsz PandasLikeDataFrame.with_columnsÏ  sú   ø€ ð ,�$×+Ñ+¨UÐ3ˆÙœ3˜t›9¨š>ØˆKØHOÖ4PÀ1°Q·V±V¸Q±YÐ4PˆÐ4PØˆ	à—K‘K×'Ñ'ò 	%ˆDØ�|Ñ#Ø×0Ñ0°×1AÑ1AÀ$Ó1GÓH‘àŸ™ TÑ*�Ø×Ñ˜VÕ$ð	%ð 	×ÑÓS¸\×=PÑ=PÓ=RÔSÔSØ×/Ñ/Ó1ˆ	Ø×)Ñ)¨)Ó4ˆØ× Ñ  ¸5Ð ÓAÐAùò 5Qs   §C;c                óz   — | j                  t        | j                  || j                  | j                  ¬«      «      S )N©r^   ra   rb   )r¸   r   rx   r[   r\   )r_   Úmappings     re   r   zPandasLikeDataFrame.renameã  s9   € Ø× Ñ ÜØ—‘ØØ#×3Ñ3Ø $× 5Ñ 5ô	ó
ð 	
rg   c               óx   — t        | ||¬«      }| j                  | j                  j                  |¬«      d¬«      S )N)Úcompliant_framer^   Ústrictr™   Frµ   )r%   r¸   rx   Údrop)r_   r^   r;  Úto_drops       re   r<  zPandasLikeDataFrame.dropí  sD   € Ü'Ø ¨'¸&ô
ˆð × Ñ Ø�K‰K×Ñ WÐÓ-ÀUð !ó 
ð 	
rg   c               óÔ   — | j                   }t        |t        «      r| }n|D �cg c]  }| ‘Œ }}|rdnd}| j                  |j	                  t        |«      ||¬«      d¬«      S c c}w )NÚlastÚfirst)Ú	ascendingÚna_positionFrµ   )rx   r…   rS   r¸   Úsort_valuesrÏ   )r_   Ú
descendingÚ
nulls_lastÚbyr·   rA  ÚdrB  s           re   ÚsortzPandasLikeDataFrame.sortö  sr   € ð �[‰[ˆÜ�j¤$Ô'Ø/9¨>‰Ià(2Ö3 1˜QšÐ3ˆIÐ3Ù *‘f°ˆØ× Ñ Ø�N‰Nœ4 ›8¨yÀkˆNÓRØ"'ð !ó 
ð 	
ùò 4s   ¥
A%c                ób  — |€8t        | j                  | j                  | j                  | j                  d¬«      S |t
        j                  u rCdd l}t        | j                  «       t
        j                  t        |«      | j                  d¬«      S |t
        j                  u r7dd l}ddlm}  || j                  «       t        |«      | j                  d¬«      S |t
        j                  u r6dd l}ddlm}  || j'                  «       t        |«      | j                  ¬«      S d|› �}t)        |«      ‚)	NFr•   r   )ÚArrowDataFrame)r`   rb   rc   rd   )ÚPolarsDataFrame©r·   rb   rc   zUnsupported `backend` value: )rW   rx   r[   r\   r]   r    r©   Úpandasrm   r'   ÚPYARROWÚpyarrowÚnarwhals._arrow.dataframerJ  Úto_arrowÚPOLARSÚpolarsÚnarwhals._polars.dataframerK  Ú	to_polarsÚ
ValueError)	r_   ÚbackendÚkwargsÚpdÚparJ  ÚplrK  rz   s	            re   ÚcollectzPandasLikeDataFrame.collect  s  € ð
 ˆ?Ü&Ø—‘Ø#×3Ñ3Ø $× 5Ñ 5ØŸ™Ø&+ôð ð ”n×+Ñ+Ñ+Ûä&Ø—‘Ó Ü-×4Ñ4Ü -¨bÓ 1ØŸ™Ø&+ôð ð ”n×,Ñ,Ñ,Û å@á!Ø!%§¡£Ü -¨bÓ 1ØŸ™Ø&+ô	ð ð ”n×+Ñ+Ñ+ÛåBá"Ø—>‘>Ó#Ü -¨bÓ 1ØŸ™ôð ð .¨g¨YÐ7ˆÜ˜‹oÐrg   c               ó$   — ddl m}  || ||¬«      S )Nr   r1   )Údrop_null_keys)Únarwhals._pandas_like.group_byr2   )r_   r›   r^  r2   s       re   Úgroup_byzPandasLikeDataFrame.group_by<  s   € õ 	Eá   t¸NÔKÐKrg   c          
     óz	  ‡— |dk(  �r0| j                   t        j                  u sG| j                   t        j                  u s+| j                   t        j                  u r£| j
                  dk  r”t        dg | j                  ¢|j                  ¢¬«      }| j                   | j                  j                  di |di¤Žj                   |j                  j                  di |di¤Žd||d|f¬«      j                  |¬	«      «      S | j                  | j                  j                  |j                  dd|f¬
«      «      S |dk(  �rN| j                   t        j                  u r8| j                  | j                  j                  |j                  d||¬«      «      S t        dg | j                  ¢|j                  ¢¬«      Š|€d}t        |«      ‚t        t        |j                  t!        |«      | j
                  | j                   «      t#        t%        ||«      «      | j                   | j
                  ¬«      j'                  «       }| j                  | j                  j                  |d‰||¬«      j(                  ˆfd„   j                  ‰¬	«      «      S |dk(  r´|€d}t        |«      ‚t        t        |j                  t!        |«      | j
                  | j                   «      t#        t%        ||«      «      | j                   | j
                  ¬«      j'                  «       }| j                  | j                  j                  |d||¬«      «      S |dk(  r£| j                  j                  |j                  d||d|f¬«      }	g }
t%        ||«      D ]E  \  }}||k7  r || j                  vr|
j+                  |«       Œ+||k7  sŒ1|
j+                  |› |› �«       ŒG | j                  |	j                  |
¬	«      «      S |dk(  r�|€J ‚|€J ‚t-        |||«      }|j                  j                  |¬	«      }t/        |j                  «       t!        |j1                  «       «      }| j                  | j                  j                  |||dd|f¬«      «      S | j                  | j                  j                  |j                  |||d|f¬«      «      S )NÚcross)r|   é   é   )Ún_bytesr^   r   ÚinnerÚ )ÚhowÚleft_onÚright_onÚsuffixesr™   )rh  rk  ÚantiÚleftanti)rh  ri  rj  z(`right_on` cannot be `None` in anti-joinr7  Úouter)rh  Ú	indicatorri  rj  c                ó   •— | ‰   dk(  S )NÚ	left_onlyrŸ   )ÚtÚindicator_tokens    €re   ú<lambda>z*PandasLikeDataFrame.join.<locals>.<lambda>‹  s   ø€  1 _Ñ#5¸Ñ#D€ rg   Úsemiz(`right_on` cannot be `None` in semi-joinÚleftÚfull)ri  rj  rh  rk  rŸ   )r[   r    rª   r«   r©   r\   r$   r^   r¸   rx   ÚassignÚmerger<  Ú	TypeErrorr   r   rÏ   rú   rû   Údrop_duplicatesrä   r1  r"   r   rš   )r_   r¾   rh  ri  rj  ÚsuffixÚ	key_tokenrz   Úother_nativeÚresult_nativeÚextraÚleft_keyÚ	right_keyÚright_on_mapperrs  s                 @re   ÚjoinzPandasLikeDataFrame.joinC  sÊ  ø€ ð �'‹>à×$Ñ$¬×(<Ñ(<Ñ<Ø×'Ñ'¬>×+>Ñ+>Ñ>à×$Ñ$¬×(=Ñ(=Ñ=Ø×)Ñ)¨FÒ2ä:ØÐ'F¨¯©Ð'F¸¿¹Ð'Fô�	ð ×(Ñ(Ø&�D—K‘K×&Ñ&Ñ8¨)°Q¨Ñ8ß‘UØ+˜Ÿ™×+Ñ+Ñ=¨y¸!¨nÑ=Ø#Ø )Ø!*Ø"$ f ð ó ÷ ‘T )�TÓ,ó
ð 
ð ×(Ñ(Ø—K‘K×%Ñ% e§l¡l¸È2ÈvÈ,Ð%ÓWóð ð �&‹=Ø×#Ñ#¤~×':Ñ':Ñ:Ø×(Ñ(Ø—K‘K×%Ñ%ØŸ™¨*¸gÐPXð &ó óð ô #AØÐ'F¨¯©Ð'F¸¿¹Ð'Fô#�ð Ð#ØD�CÜ# C›.Ð(ô  &Ü*ØŸ™Ü˜X›Ø×-Ñ-Ø×,Ñ,ó	ô !¤ X¨wÓ!7Ó8Ø#'×#7Ñ#7Ø$(×$9Ñ$9ô
 ÷ "‘/Ó#ð ð ×(Ñ(Ø—K‘K×%Ñ%Ø$Ø#Ø"1Ø 'Ø!(ð &ó ÷ ‘SÓDñF÷ ‘T /�TÓ2ó
ð 
ð �&Š=ØÐØ@�Ü “nÐ$ô Ü*ØŸ™Ü˜X›Ø×-Ñ-Ø×,Ñ,ó	ô !¤ X¨wÓ!7Ó8Ø#'×#7Ñ#7Ø$(×$9Ñ$9ô
÷ "‘/Ó#ð ð ×$Ñ$Ø—‘×!Ñ!Ø  g°wÈð "ó óð ð �&Š=Ø ŸK™K×-Ñ-Ø—‘ØØØ!Ø˜f˜ð .ó ˆMð ˆEÜ'*¨7°HÓ'=ò 9Ñ#�˜)Ø Ò(¨Y¸d¿l¹lÑ-JØ—L‘L Õ+Ø (Ó*Ø—L‘L I ;¨v¨hÐ!7Õ8ð	9ð
 ×$Ñ$ ]×%7Ñ%7ÀÐ%7Ó%FÓGÐGà�&Š=ð Ð&Ð&Ð&ØÐ'Ð'Ð'ä3°G¸XÀvÓNˆOØ Ÿ<™<×.Ñ.°Ð.ÓGˆLÜ)¨,×*>Ñ*>Ô?Ü˜O×2Ñ2Ó4Ó5ˆHØ×$Ñ$Ø—‘×!Ñ!Ø Ø#Ø%ØØ  &˜\ð "ó óð ð × Ñ Ø�K‰K×ÑØ—‘ØØ!ØØ˜f˜ð ó ó
ð 	
rg   c               óž   — | j                  «       }| j                  |j                  | j                  |j                  |||||d|f¬«      «      S )Nrg  )ri  rj  Úleft_byÚright_byÚ	directionrk  )r®   r¸   Ú
merge_asofrx   )	r_   r¾   ri  rj  Úby_leftÚby_rightÚstrategyr|  r  s	            re   Ú	join_asofzPandasLikeDataFrame.join_asofÖ  sZ   € ð ×'Ñ'Ó)ˆØ× Ñ Ø�N‰NØ—‘Ø—‘ØØ!ØØ!Ø"Ø˜f˜ð ó 	ó
ð 	
rg   c                óZ   — | j                  | j                  j                  |«      d¬«      S rÓ   )r¸   rx   Úhead©r_   Úns     re   r�  zPandasLikeDataFrame.headñ  ó'   € Ø× Ñ  §¡×!1Ñ!1°!Ó!4ÈEÐ ÓRÐRrg   c                óZ   — | j                  | j                  j                  |«      d¬«      S rÓ   )r¸   rx   Útailr�  s     re   r”  zPandasLikeDataFrame.tailô  r’  rg   )Úmaintain_orderc               ó´   — dddœj                  ||«      }t        | j                  |«       | j                  | j                  j                  ||¬«      d¬«      S )NFr@  )ÚnoneÚany)r  Úkeeprµ   )Úgetr#   r^   r¸   rx   r{  )r_   r  r™  r•  Úmapped_keeps        re   ÚuniquezPandasLikeDataFrame.unique÷  s[   € ð  %¨WÑ5×9Ñ9¸$ÀÓEˆÜ˜DŸL™L¨&Ô1Ø× Ñ Ø�K‰K×'Ñ'¨v¸KÐ'ÓHØ"'ð !ó 
ð 	
rg   )rW  c               ó  — ddl m} | j                  «       }|€| S |t        j                  u r4dd l}ddlm}  ||j                  d«       ||«      | j                  ¬«      S |t        j                  u rCdd l}ddlm}  | |j                  |«      j                  «        ||«      | j                  ¬«      S |t        j                   u r:dd l}dd lm}	 ddlm}
  |
|	j                  |«       ||«      | j                  ¬«      S t,        ‚)	Nr   r&   )ÚDuckDBLazyFrameÚ	pandas_dfrL  )ÚPolarsLazyFrame)ÚDaskLazyFrame)r`   rb   rc   )Únarwhals.utilsr'   rm   r    ÚDUCKDBÚduckdbÚnarwhals._duckdb.dataframerž  Útabler]   rR  rS  rT  r   Úfrom_pandasÚlazyÚDASKÚdaskÚdask.dataframeÚ	dataframeÚnarwhals._dask.dataframer¡  rs   )r_   rW  r'   rŸ  r¤  rž  r[  r   rª  Úddr¡  s              re   r¨  zPandasLikeDataFrame.lazy  së   € õ 	1à—N‘NÓ$ˆ	Øˆ?ØˆKØœ×-Ñ-Ñ-ÛåBá"Ø—<‘< Ó,Ù -¨fÓ 5ØŸ™ôð ð
 œ×-Ñ-Ñ-ÛåBá"Ø!�2—>‘> )Ó,×1Ñ1Ó3Ù -¨bÓ 1ØŸ™ôð ð
 œ×+Ñ+Ñ+ÛÝ'å>á Ø!#§¡°	Ó!:Ù -¨dÓ 3ØŸ™ôð ô
 Ðrg   c                ó.   — | j                   j                  S rY   )rx   Úshaper    s    re   r°  zPandasLikeDataFrame.shape1  s   € à�{‰{× Ñ Ð rg   c               óÂ   — |r=| j                   D �ci c]'  }|t        j                  | j                  |   | ¬«      “Œ) c}S | j                  j	                  d¬«      S c c}w )Nrj   rÏ   rð   )r^   r   rt   rx   ró   )r_   Ú	as_seriesr  s      re   ró   zPandasLikeDataFrame.to_dict5  sa   € Ùð  Ÿ<™<öàð Ô%×1Ñ1°$·+±+¸cÑ2BÈDÔQÑQòð ð �{‰{×"Ñ"¨&Ð"Ó1Ð1ùò	s   ‘,Ac          
     ó"  — | j                   j                  }|€| j                  t        j                  u }|j                  t        «      j                  «       r;|�| j                   j                  ||¬«      S | j                   j                  |¬«      S | j                  j                  j                  }| j                  j                  «       D ��cg c]  \  }}t        ||«      r|j                  �|‘Œ! }}}|ri| j                   | j!                  «       j"                  |Ž j$                  j'                  d«      j$                  j)                  d «      «      j                   }n| j                   }|�|j                  ||¬«      S |D ]l  }	t+        |	«      t,        v sŒdd l}
 |
j0                  | j2                  D �cg c]+  }| j5                  |«      j                  |d ¬«      d d …d f   ‘Œ- c}«      }|c S  |j                  |¬«      S c c}}w c c}w )NrÉ   rÆ   ÚUTCr   )rÇ   r   )rx   r‡   r[   r    r«   ÚisinrU   ÚallrÊ   r]   ÚDatetimer‰   r„   r…   Ú	time_zoner5  r§   r  ÚdtÚconvert_time_zoneÚreplace_time_zoneÚstrr   ÚnumpyÚhstackr^   rÅ   )r_   r   rÇ   r   Údtype_datetimeÚkeyÚvalÚ
to_convertr·   Ú	col_dtypeÚnpr  Úarrs                re   rÊ   zPandasLikeDataFrame.to_numpy=  sè  € ØŸ™×*Ñ*ˆàˆ<à×'Ñ'¬>×+>Ñ+>Ð>ˆDà×ÑÔ4Ó5×9Ñ9Ô;àÐ Ø—{‘{×+Ñ+°%¸dÐ+ÓCÐCØ—;‘;×'Ñ'¨TÐ'Ó2Ð2àŸ™×-Ñ-×6Ñ6ˆð !ŸK™K×-Ñ-Ó/÷
á��SÜ˜#˜~Ô.°3·=±=Ð3Lò ð
ˆ
ñ 
ñ
 Ø×"Ñ"ð�×+Ñ+Ó-ß‘�jð"ç‘×%Ñ% eÓ,ß‘×%Ñ% dÓ+ó	÷
 ‰fñ ð —‘ˆBàÐØ—;‘; U°�;Ó6Ð6ð 'ò 
	ˆIÜ�9‹~Ô!>Ò>Û"à$˜2Ÿ9™9ð $(§<¡<öàð Ÿ™¨Ó,×5Ñ5¸4ÀtÐ5ÓLÊQÐPTÈWÓUòó�ð ’
ð
	ð �{‰{ ˆ{Ó%Ð%ùóC
ùò6s   Ã$HÆ80H
c                ó^  — | j                   t        j                  u r| j                  S | j                   t        j                  u r| j                  j                  «       S | j                   t        j                  u r| j                  j                  «       S d| j                   › �}t        |«      ‚)NzUnknown implementation: )	r[   r    r©   rx   r«   rm   rª   Ú
_to_pandasrs   r­   s     re   rm   zPandasLikeDataFrame.to_pandasn  sŒ   € Ø×Ñ¤>×#8Ñ#8Ñ8Ø—;‘;ÐØ×!Ñ!¤^×%8Ñ%8Ñ8Ø—;‘;×(Ñ(Ó*Ð*Ø×!Ñ!¤^×%9Ñ%9Ñ9Ø—;‘;×)Ñ)Ó+Ð+Ø(¨×)=Ñ)=Ð(>Ð?ˆÜ˜SÓ!Ð!rg   c                óJ   — dd l } |j                  | j                  «       «      S )Nr   )rS  r§  rm   )r_   r[  s     re   rU  zPandasLikeDataFrame.to_polarsx  s   € Ûàˆr�~‰~˜dŸn™nÓ.Ó/Ð/rg   c                ó:   — | j                   j                  |«       y rY   )rx   Ú
to_parquet©r_   Úfiles     re   Úwrite_parquetz!PandasLikeDataFrame.write_parquet}  s   € Ø�‰×Ñ˜tÕ$rg   c                 ó   — y rY   rŸ   rË  s     re   Ú	write_csvzPandasLikeDataFrame.write_csv€  s   € Ø,/rg   c                 ó   — y rY   rŸ   rË  s     re   rÏ  zPandasLikeDataFrame.write_csvƒ  s   € Ø=@rg   c                ó<   — | j                   j                  |d¬«      S )NFrù   )rx   Úto_csvrË  s     re   rÏ  zPandasLikeDataFrame.write_csv†  s   € Ø�{‰{×!Ñ! $¨eÐ!Ó4Ð4rg   c                óf   — t        j                  | j                  j                  d¬«       | ¬«      S )NF)r™  rj   )r   rt   rx   Ú
duplicatedr    s    re   Ú	is_uniquezPandasLikeDataFrame.is_uniqueŠ  s/   € Ü×+Ñ+Ø�[‰[×#Ñ#¨Ð#Ó/Ð/¸ô
ð 	
rg   c                ó@  — |€D|€B| j                   dk7  rd| j                   ›�}t        |«      ‚| j                  j                  d   S |�|€d}t        |«      ‚t	        |t
        «      r| j                  j                  |«      n|}| j                  j                  ||f   S )N©r|   r|   zycan only call `.item()` if the dataframe is of shape (1, 1), or if explicit row/col values are provided; frame has shape )r   r   z8cannot call `.item()` with only one of `row` or `column`)r°  rV  rx   r½   r…   r¼  r^   rº   )r_   rô   Úcolumnrz   Ú_cols        re   ÚitemzPandasLikeDataFrame.item�  s    € Øˆ;˜6˜>Ø�z‰z˜VÒ#ð(à(,¯
©
 ~ð7ð ô
 ! “oÐ%Ø—;‘;×#Ñ# DÑ)Ð)àˆ[˜F˜NØLˆCÜ˜S“/Ð!ä-7¸ÄÔ-Dˆt�|‰|×!Ñ! &Ô)È&ˆØ�{‰{×Ñ  T 	Ñ*Ð*rg   c                óX   — | j                  | j                  j                  «       d¬«      S rÓ   )r¸   rx   rÇ   r    s    re   ÚclonezPandasLikeDataFrame.clone¡  s%   € Ø× Ñ  §¡×!1Ñ!1Ó!3È5Ð ÓQÐQrg   c                ó\   — | j                  | j                  j                  |d |…   d¬«      S rÓ   rÞ   )r_   r‘  Úoffsets      re   Úgather_everyz PandasLikeDataFrame.gather_every¤  s.   € Ø× Ñ  §¡×!1Ñ!1°&°)¸!°)Ñ!<ÐTYÐ ÓZÐZrg   c               óè  — | j                   t        j                  u r| j                  dk  rd}t	        |«      ‚| j                   t        j
                  u rd}t	        |«      ‚ddlm} | j                  }	|€"| j                  D �
cg c]  }
|
h |£|£vsŒ|
‘Œ }}
|€"| j                  D �
cg c]  }
|
h |£|£vsŒ|
‘Œ }}
|€|	j                  |||¬«      }nn|dk(  rY|	j                  g |¢|¢«      j                  t        j                  |d«      «      j                  «       j                  |||¬«      }nt!        | ||||¬	«      }|rm| j                   t        j"                  u rQ|D �ci c]E  }|t%        | j                  |   j'                  «       j)                  «       j+                  «       «      “ŒG }}nâ|rC|D �ci c]7  }|t%        | j                  |   j'                  «       j-                  «       «      “Œ9 }}n�| j                   t        j"                  u rH|D �ci c]<  }|| j                  |   j'                  «       j)                  «       j+                  «       “Œ> }}n9|D �ci c].  }|| j                  |   j'                  «       j-                  «       “Œ0 }}t/         ||g|j1                  «       ¢­Ž «      }|j2                  d d …|f   }|j                  j-                  «       }t5        |«      }|d
k(  r@|D �cg c]4  }t5        |«      d
kD  r|j7                  |«      j9                  «       n|d   ‘Œ6 }}ne|D �cg c]Z  }t5        |«      d
kD  r/|j7                  |d   ddj7                  || d  «      z   dz   g«      nddj7                  || d  «      z   dz   ‘Œ\ }}||_	        dg|j                  _        | j=                  |j                  «       «      S c c}
w c c}
w c c}w c c}w c c}w c c}w c c}w c c}w )Nr×  z'pivot is only supported for pandas>=1.1zcpivot is not supported for Modin backend due to https://github.com/modin-project/modin/issues/7409.r   )Úproduct)r^   rº   rš   r°   Úsize)r·   rš   rº   r^   Úaggregate_functionr|   éÿÿÿÿz{"z","z"}rg  )r[   r    r©   r\   ÚNotImplementedErrorrª   Ú	itertoolsrá  rx   r^   ÚpivotÚgroupbyÚaggrú   ÚfromkeysÚreset_indexr   r«   Úsortedrœ  rQ  Ú	to_pylistrç   rÏ   rš   rä   r°   r„  ÚstripÚnamesr¸   )r_   Úonrº   rš   rã  Úsort_columnsÚ	separatorrz   rá  r$  ÚcÚresultr  ÚuniquesÚordered_colsr^   Ún_onÚnew_columnss                     re   rç  zPandasLikeDataFrame.pivot§  sÝ  € ð ×Ñ¤>×#8Ñ#8Ñ8Ø×!Ñ! FÒ*à;ˆCÜ% cÓ*Ð*Ø×Ñ¤>×#7Ñ#7Ñ7ØwˆCÜ% cÓ*Ð*Ý%à—‘ˆàˆ=Ø $§¡ÖH˜1°¸¸2¸À¸Ò0G’QÐHˆEÐHàˆ>Ø!%§¡ÖH˜A°¸-¸B¸-À¸-Ò1G’aÐHˆFÐHàÐ%Ø—[‘[¨°5À�[ÓH‰FØ 5Ò(à—‘˜m ˜m U˜mÓ,ß‘”T—]‘] 6¨6Ó2Ó3ß‘“ß‘˜r¨°v�Ó>ñ	 ô !ØØØØØ#5ôˆFñ ˜D×0Ñ0´N×4GÑ4GÑGð öàð ”V˜DŸK™K¨Ñ,×3Ñ3Ó5×>Ñ>Ó@×JÑJÓLÓMÑMðˆGñ ñ ØRTÖUÈ3�sœF 4§;¡;¨sÑ#3×#:Ñ#:Ó#<×#CÑ#CÓ#EÓFÑFÐUˆGÑUØ×!Ñ!¤^×%8Ñ%8Ñ8àQSöØJM��T—[‘[ Ñ%×,Ñ,Ó.×7Ñ7Ó9×CÑCÓEÑEðˆGñ ð KMÖMÀ3�s˜DŸK™K¨Ñ,×3Ñ3Ó5×<Ñ<Ó>Ñ>ÐMˆGÐMÜ™G FÐ>¨W¯^©^Ó-=Ò>Ó?ˆØ—‘šA˜|˜OÑ,ˆØ—.‘.×'Ñ'Ó)ˆä�2‹wˆØ�1Š9ð #öàô 03°6«{¸Qª�	—‘˜sÓ#×)Ñ)Ô+ÀCÈÁGÑKðˆKñ ð #ö	ð ô �v“; ’?ð —‘  A¡¨¨u¯z©z¸#¸t¸e¸f¸+Ó/FÑ(FÈÑ(MÐNÔOà˜EŸJ™J s¨D¨5¨6 {Ó3Ñ3°dÑ:ñ;ðˆKð ð %ˆŒØ "˜tˆ�‰ÔØ× Ñ  ×!3Ñ!3Ó!5Ó6Ð6ùòq Iùò Iùò,ùò
 Vùòùò Nùòùò
s?   ÂOÂOÂ(OÂ6OÅ#A
OÆ6<OÈAO É3O%Ë39O*Ì3AO/c                óÄ   — | j                   t        j                  u r| j                  j	                  d¬«      S dd l}|j                  j                  | j                  «      S )NF)Úpreserve_indexr   )r[   r    r«   rx   rQ  rO  ÚTabler§  )r_   rZ  s     re   rQ  zPandasLikeDataFrame.to_arrowø  sJ   € Ø×Ñ¤>×#6Ñ#6Ñ6Ø—;‘;×'Ñ'°uÐ'Ó=Ð=ãà�x‰x×#Ñ# D§K¡KÓ0Ð0rg   c               ób   — | j                  | j                  j                  ||||¬«      d¬«      S )N)r‘  ÚfracÚreplaceÚrandom_stateFrµ   )r¸   rx   Úsample)r_   r‘  ÚfractionÚwith_replacementÚseeds        re   r   zPandasLikeDataFrame.sample   sB   € ð × Ñ Ø�K‰K×ÑØ˜(Ð,<È4ð ó ð #(ð	 !ó 
ð 	
rg   c                ó^   — | j                  | j                  j                  ||||¬«      «      S )N)Úid_varsÚ
value_varsÚvar_nameÚ
value_name)r¸   rx   Úmelt)r_   rð  rº   Úvariable_namer  s        re   ÚunpivotzPandasLikeDataFrame.unpivot  s:   € ð × Ñ Ø�K‰K×ÑØØØ&Ø%ð	 ó ó
ð 	
rg   c                ó,  ‡‡— | j                   j                  }| j                  «       }|D ]'  }||   }||j                  k7  sŒd|› d�}t	        |«      ‚ t        |«      dk(  r/| j                  | j                  j                  |d   «      d¬«      S | j                  Š‰|d      j                  j                  «       Št        ˆˆfd„|dd  D «       «      sd}t        |«      ‚| j                  }|D �cg c]	  }||vsŒ|‘Œ }	}‰g |	¢|d   ‘   j                  |d   «      }
|dd  D �cg c]#  }‰|   j                  «       j                  «       ‘Œ% }}| j                  «       }| j                  |j                  |
g|¢d¬	«      |   d¬«      S c c}w c c}w )
Nz-`explode` operation not supported for dtype `z`, expected List typer|   r   Frµ   c              3  óz   •K  — | ]2  }‰|   j                   j                  «       ‰k(  j                  «       –— Œ4 y ­wrY   )rÏ   r°   r¶  )r~   Úcol_nameÚanchor_seriesÚnative_frames     €€re   r€   z.PandasLikeDataFrame.explode.<locals>.<genexpr>5  s;   øè ø€ ò àð ˜hÑ'×,Ñ,×0Ñ0Ó2°mÑC×HÑH×Jñùs   ƒ8;z2exploded columns must have matching element countsr  )r]   r‡   r  ÚListr   r°   r¸   rx   ÚexploderÏ   r¶  r   r^   Úto_framer®   Úconcat)r_   r^   r‡   r‰   Úcol_to_exploder   rz   Úoriginal_columnsró  Úother_columnsÚexploded_framer  Úexploded_seriesr  r  r  s                 @@re   r  zPandasLikeDataFrame.explode  sÜ  ù€ Ø—‘×%Ñ%ˆà×$Ñ$Ó&ˆØ%ò 	1ˆNØ˜>Ñ*ˆEà˜Ÿ™Ó#àCÀEÀ7ð K)ð )ð ô ,¨CÓ0Ð0ð	1ô ˆw‹<˜1ÒØ×$Ñ$Ø—‘×#Ñ# G¨A¡JÓ/Àuð %ó ð ð  Ÿ;™;ˆLØ(¨°©Ñ4×9Ñ9×=Ñ=Ó?ˆMäô à '¨¨ ôô ð K�Ü  “oÐ%à#Ÿ|™|ÐØ(8ÖM 1¸AÀWÒ<LšQÐMˆMÐMà)Ð*F¨MÐ*F¸7À1¹:Ð*FÑG×OÑOØ˜‘
óˆNð MTÐTUÐTVÈKöØ@H�˜XÑ&×.Ñ.Ó0×9Ñ9Õ;ðˆOð ð ×+Ñ+Ó-ˆCØ×$Ñ$Ø—
‘
˜NÐ=¨_Ð=ÀA�
ÓFÐGWÑXØ&+ð %ó ð ùò Nùò
s   Ã3	FÃ=FÄ((F)r`   r   ra   r    rb   ztuple[int, ...]rc   rF   rd   rS   ÚreturnÚNone)rv   r5   rk   rG   r  r-   )rv   zMapping[str, Any]rk   rG   r‰   z#Mapping[str, DType] | Schema | Noner  r-   )r’   r   r  zTypeIs[Any])rv   r   rk   rG   r  r-   )rv   rC   rk   rG   r‰   z3Mapping[str, DType] | Schema | Sequence[str] | Noner  r-   )r  r-   )r  r4   )r  r,   )r  Úint)rc   rF   r  r-   )r·   r   rd   rS   r  r-   )r¾   r   r  úpd.Series[Any])r�   r¼  r  r   rY   )r   r   rÇ   úbool | Noner  rC   )rÐ   ú'SizedMultiIndexSelector[pd.Series[Any]]r  r-   )rÐ   ú_SliceIndex | ranger  r-   )r^   rE   r  r-   )r^   r   r  r-   )r^   r  r  r-   )r^   z&SizedMultiNameSelector[pd.Series[Any]]r  rW   )r  z	list[str])rê   zLiteral[True]r  zlist[dict[str, Any]])rê   zLiteral[False]r  zlist[tuple[Any, ...]])rê   rS   r  z,list[tuple[Any, ...]] | list[dict[str, Any]])r  zIterator[PandasLikeSeries])rê   rS   rü   r  r  z4Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]])r  zdict[str, DType])r  r¼  r  r-   )r_   rW   r
  r0   r  rW   )r_   rW   r  úSequence[str] | Noner  rW   )r  rA   r  zint | float)r�   r¼  r  r-   )rº   r  r  ztuple[Any, ...])r_   rW   r+  zPandasLikeExpr | list[bool]r  rW   )r8  zMapping[str, str]r  r-   )r^   úSequence[str]r;  rS   r  r-   )rF  r¼  rD  zbool | Sequence[bool]rE  rS   r  r-   )rW  úImplementation | NonerX  r   r  z!CompliantDataFrame[Any, Any, Any])r›   z(Sequence[str] | Sequence[PandasLikeExpr]r^  rS   r  r2   )r¾   r-   rh  r=   ri  r!  rj  r!  r|  r¼  r  r-   )r¾   r-   ri  ú
str | Nonerj  r$  rŠ  r!  r‹  r!  rŒ  r9   r|  r¼  r  r-   )r‘  r  r  r-   )r  r!  r™  rB   r•  r  r  r-   )rW  r#  r  zCompliantLazyFrame[Any, Any])r  ztuple[int, int])r²  rS   r  zdict[str, Any])r  zpd.DataFrame)r  zpl.DataFrame)rÌ  zstr | Path | BytesIOr  r  )rÌ  r  r  r¼  )rÌ  zstr | Path | BytesIO | Noner  r$  )r  r   )rô   ú
int | NonerØ  zint | str | Noner  r   )r‘  r  rÞ  r  r  r-   )rð  r"  rº   r!  rš   r!  rã  zPivotAgg | Nonerñ  rS   rò  r¼  r  r-   )r  r   )
r‘  r%  r  zfloat | Noner  rS   r  r%  r  r-   )
rð  r!  rº   r!  r
  r¼  r  r¼  r  r-   )r^   r"  r  r-   )GÚ__name__Ú
__module__Ú__qualname__rf   Úclassmethodri   r†   Ústaticmethodr“   rt   r�   r¡   r¤   r§   r®   r±   r´   r¸   rÂ   rÅ   rË   rÑ   rØ   rÜ   rà   râ   rå   Úpropertyr^   r   rÐ   r÷   Ú_iter_columnsrþ   r‰   r  r  r  r  r  r&  rô   r  r5  r   r<  rH  r\  r`  r„  r�  r�  r”  rœ  r¨  r°  ró   rÊ   rm   rU  rÍ  rÏ  rÕ  rÚ  rÜ  rß  rç  rQ  r   r  r  rŸ   rg   re   rW   rW   h   sj  „ ðDàðDð 'ð	Dð
 )ðDð ðDð  $ðDð 
óDð" ò8ó ð8ð  ð!8àð!8ð
 ð!8ð 4ð!8ð 
ò!8ó ð!8ðF ò-ó ð-ð ò
ó ð
ð ð8àð8ð
 ð8ð Dð8ð 
ò8ó ð8ó0óó
ó	"ó ó
ð FJõ 
óó"Mð5À$õ 5ó=ó
ó
ó 
ð

Ø>ð
à	ó
ð>Ø=ð>à	ó>ð ò,ó ð,ð ð#ð ð#ð 
ò	#ó ð#ð ð$ð ð$ð 
ò	$ó ð$ð ð;ð ð;ð 
6ò	;ó ð;ó	5óEð !€Mð0ð ð0ð ð	0ð
 
>ó0ð ò
ó ð
óó	
óAðLØ!ðLØ+?ðLà	óLó*óZó9ð
Ø!ð
Ø.Ið
à	ó
ðBØ!ðBØ+9ðBà	óBó(
ó
ð
àð
ð *ð
ð ð	
ð
 
ó
ð$1à&ð1ð ð1ð 
+ó	1ðhLØ<ðLØQUðLà	óLðQ
àðQ
ð ð	Q
ð
 &ðQ
ð 'ðQ
ð ðQ
ð 
óQ
ðf
àð
ð ð	
ð
 ð
ð &ð
ð 'ð
ð #ð
ð ð
ð 
ó
ó6SóSð '+ñ
à$ð
ð !ð	
ð
 $ð
ð 
ó
ð$ 37ñ'Ø/ð'à	%ó'ðR ò!ó ð!ó2ð/&Àõ /&ób"ó0ó
%ð Ú/ó Ø/àÚ@ó Ø@ó5ó
ó
+ó$Ró[ðO7àðO7ð $ð	O7ð
 %ðO7ð ,ðO7ð ðO7ð ðO7ð 
óO7ób1ð
àð
ð ð	
ð
 ð
ð ð
ð 
ó
ð
à ð
ð $ð
ð ð	
ð
 ð
ð 
ó
ô +rg   rW   )r   r0   r   r  )_Ú
__future__r   Útypingr   r   r   r   r   r	   r
   r   r   r   r½  rÄ  Únarwhals._compliantr   Únarwhals._pandas_like.seriesr   r   Únarwhals._pandas_like.utilsr   r   r   r   r   r   r   r   r   r   Únarwhals.dependenciesr   Únarwhals.exceptionsr   r   r¢  r    r!   r"   r#   r$   r%   r'   r(   r)   Úior*   Úpathlibr+   Útypesr,   rM  rY  rS  r[  Útyping_extensionsr-   r.   r/   Únarwhals._pandas_like.exprr0   r_  r2   r¦   r4   Únarwhals._translater5   Únarwhals.dtypesr6   r‚   r8   Únarwhals.typingr9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rr   rH   Ú__annotations__Ú	frozensetr   rU   rW   rŸ   rg   re   ú<module>r>     s4  ðÞ "å  Ý Ý Ý Ý Ý Ý Ý Ý Ý ã å .Ý FÝ 9Ý @Ý CÝ EÝ 9Ý @Ý GÝ 3Ý .Ý >Ý 1Ý :Ý 5Ý *Ý )Ý ,Ý 0Ý .Ý 9Ý 0Ý (Ý &Ý 3áÝÝÝ ãÛÝ&Ý+Ý(å9Ý@ÝCÝ2Ý%Ý&Ý0Ý2Ý2Ý,Ý,Ý(Ý7Ý6Ý(Ý2Ý(Ý+Ý*Ý&Ý+à% c¨2¯<©<Ð&7Ñ8€K�Ó8ñ 4=àˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�Ó!Øˆ�‰Ð!Ó"Øˆ�‰Ð!Ó"Øˆ�‰Ð!Ó"Øˆ�‰Ð!Ó"Øˆ�‰Ð"Ó#Øˆ�‰Ð"Ó#Øˆ�‰Ð"Ó#Øˆ�‰�Óð)ó4Ð Ð0ó ô4bØÐPÑQõbrg   