
    O3j                    4   U d dl mZ d dlZd dlZd dlmZmZmZmZ d dl	m
Z
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mZmZmZmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z( d dl)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/ erd dl0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7 d dlm8Z8 d dl9Z:d dl;Z<d dl=Z>d dl?m@Z@mAZA d dlBmCZC d dlDmEZE d dlFmGZG d dlHmIZI d dlJmKZK d dlLmMZM d dl%mNZNmOZO d dl,mPZP d dlQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z] dZ^de_d<   i d d!d"d!d#d$d%d$d&d'd(d'd)d*d+d*d,d-d.d-d/d0d1d0d2d3d4d3d5d6d7d6d8d9d9d:d:d;Z`i d d9d"d9d#d9d%d9d&d9d(d9d)d9d+d9d,d9d.d9d/d9d1d9d2d9d4d9d5d9d7d9d8d9d9d:d:d;Za G d< d=e
e         Zb G d> d?ed@         Zcy)A    )annotationsN)TYPE_CHECKINGAnyLiteraloverload)EagerSeriesEagerSeriesHistPandasLikeSeriesCatNamespace!PandasLikeSeriesDateTimeNamespace)PandasLikeSeriesListNamespacePandasLikeSeriesStringNamespace)PandasLikeSeriesStructNamespace)NUMPY_VERSIONalign_and_extract_nativebinary_string_sum_fallbackbroadcast_series_to_indexget_dtype_backendimport_array_modulenarwhals_to_native_dtypenative_to_narwhals_dtypeobject_native_to_narwhals_dtyperenameselect_columns_by_name	set_index)assert_never)
NO_DEFAULTImplementation
is_list_of)is_numpy_array_1dis_pandas_like_series)String)InvalidOperationError)CallableHashableIterableIteratorSequence)
ModuleType)	TypeAlias)SelfTypeIs)ChunkedArrayAny)HistDataPandasLikeDataFramePandasLikeNamespace)NativeSeriesT)	NoDefault)Version_LimitedContext)DType)ClosedIntervalFillNullStrategyInto1DArray	IntoDTypeModeKeepStrategyNonNestedLiteralPythonLiteral
RankMethodRollingInterpolationMethodSizedMultiIndexSelector_1DArray_SliceIndexz%HistData[pd.Series[Any], list[float]]r,   PandasHistDataInt64int64zint64[pyarrow]Int32int32zint32[pyarrow]Int16int16zint16[pyarrow]Int8int8zint8[pyarrow]UInt64uint64zuint64[pyarrow]UInt32uint32zuint32[pyarrow]UInt16uint16zuint16[pyarrow]UInt8uint8zuint8[pyarrow]Float64float64float32)zfloat64[pyarrow]Float32zfloat32[pyarrow]c                  h   e Zd Z	 	 	 	 	 	 	 	 ddZedd       ZddZddZddZddZ	ddZ
dd	dd
Zedddd	 	 	 	 	 	 	 	 	 	 	 dd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zed        Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZe	 	 	 	 	 	 	 	 dd       Zedd	 	 	 	 	 	 	 dd       Zdd	 	 	 	 	 	 	 ddZddZdddZddZddZ	 	 	 	 	 	 	 	 ddZdd Zdd!Zdd"Z dd#Z!dd$Z"dd%Z#dd&Z$dd'Z%dd(Z&dd)Z'dd*Z(dd+Z)dd,Z*dd-Z+dd.Z,dd/Z-dd0Z.dd1Z/dd2Z0dd3Z1dd4Z2dd5Z3dd6Z4dd7Z5dd8Z6dd9Z7dd:Z8dd;Z9dd<Z:dd=Z;dd>Z<dd?Z=dd@Z>ddAZ?ddBZ@ddCZAddDZBddEZCddFZDddGZEddHZFddIZGddJZHddKZIddLZJddMZKddNZLddOZMddPZNddQZO	 	 	 	 	 	 	 	 ddRZPddSZQddTZRddUZS	 	 	 	 	 	 	 	 	 	 ddVZTddWZUddXZVdYdZdd[ZWdd\ZXdd]ZY	 	 	 	 	 	 	 	 	 	 dd^ZZdd_Z[dd`Z\ddaZ]dddbddcZ^dddZ_ddeZ`ddfZaddgZbddhZcddiZdddjZe	 	 	 	 	 	 	 	 	 	 ddkZf	 	 	 	 	 	 ddlZgddmZhddnZiddoZjddpZkddqZlddrZmddsZnddtZodduZpddvZqddwZrddxZsddyZtddzZudd{Zvdd|Zwdd}Zxdd~ZyddZz	 	 	 	 	 	 	 	 	 	 ddZ{	 	 	 	 	 	 	 	 	 	 ddZ|ddZ}ddZ~ddZddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZddZddZddZddZddZddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZddZedd       Zedd       Zedd       Zedd       Zedd       Zy)PandasLikeSeriesc               ^    |j                   | _        || _        || _        || _        d| _        y )NF)name_name_native_series_implementation_version
_broadcast)selfnative_seriesimplementationversions       I/DATA/.local/lib/python3.12/site-packages/narwhals/_pandas_like/series.py__init__zPandasLikeSeries.__init__t   s1     #''
+-      c                    | j                   S N)r`   rd   s    rh   nativezPandasLikeSeries.native   s    """rj   c                    | j                   j                         r| j                   j                         S dt        | j                          }t	        |      )Nz!Expected pandas/modin/cudf, got: )ra   is_pandas_liketo_native_namespacetypeAssertionErrorrd   msgs     rh   __native_namespace__z%PandasLikeSeries.__native_namespace__   sL    ..0'';;==1$t7K7K2L1MNS!!rj   c                H    ddl m}  || j                  | j                        S )Nr   r3   )narwhals._pandas_like.namespacer4   ra   rb   )rd   r4   s     rh   __narwhals_namespace__z'PandasLikeSeries.__narwhals_namespace__   s    G"4#7#7GGrj   c                    t        |t              rt        |      n|}| j                  | j                  j
                  |         S rl   )
isinstancetuplelist_with_nativern   ilocrd   rowss     rh   _gatherzPandasLikeSeries._gather   s6    'e4tDz$  !1!1$!788rj   c                    | j                  | j                  j                  t        |j                  |j
                  |j                                 S rl   )r~   rn   r   slicestartstopstepr   s     rh   _gather_slicezPandasLikeSeries._gather_slice   s<      KKU4::tyy$))DE
 	
rj   c                R    | j                  | j                  | j                  |      S N)rf   rg   )	__class__rn   ra   )rd   rg   s     rh   _with_versionzPandasLikeSeries._with_version   s)    ~~KK(<(<g  
 	
rj   Fpreserve_broadcastc               |    | j                  || j                  | j                        }|r| j                  |_        |S r   )r   ra   rb   rc   )rd   seriesr   results       rh   r~   zPandasLikeSeries._with_native   s<    4#7#7   
  $Frj    N)r^   dtypeindexc                  |j                   }|j                  }|j                         }i }	|rt        |d ||      |	d<   n)|j	                         rd|	d<   n	 |t        |      r||	d<   | j                   |j                  |fd|i|	|      S )Nr   Fcopyr   r^   context)ra   rb   rq   r   	is_pandaslenfrom_nativeSeries)
clsdatar   r^   r   r   rf   rg   nskwdss
             rh   from_iterablezPandasLikeSeries.from_iterable   s     !00""//1!4UD.RYZDM'')$V SZ %WyryyADADA7SSrj   c                    t        |       S rl   )r#   )objs    rh   
_is_nativezPandasLikeSeries._is_native   s    $S))rj   c              @     | ||j                   |j                        S r   )ra   rb   )r   r   r   s      rh   r   zPandasLikeSeries.from_native   s    4(?(?IYIYZZrj   c                  |j                   }t        |      r|n|g}|j                         j                  |d      }| j	                  ||      S )Nr   r^   r   )ra   r"   rq   r   r   )r   r   r   rf   arrrn   s         rh   
from_numpyzPandasLikeSeries.from_numpy   sN     00'-dD6335<<Sr<Jvw77rj   c                t   |d   j                         j                  }|D cg c]  }t        |       }}t        d t	        ||d      D              }||j                  |         j                  j
                  }g }|D ]  }|j                  rCt        |j                  ||j                  j                         |      }|j                  |      }	nN|j                  j
                  |ur4t        |j                  ||j                        }|j                  |      }	n|}	|j                  |	        |S c c}w )Nr   c              3  @   K   | ]  \  }}|j                   r|  y wrl   )rc   ).0lengthss      rh   	<genexpr>z9PandasLikeSeries._align_full_broadcast.<locals>.<genexpr>   s      
$FyvqallF$Fs   F)strict)	is_nestedseries_classrf   )rv   r   r   maxzipr   rn   rc   r   r   r   r~   r   ra   append)
r   r   r   r   lengthstarget_lengthidx	reindexedrn   	compliants
             rh   _align_full_broadcastz&PandasLikeSeries._align_full_broadcast   s   //188#)*6a3q66* 
$'$F
 
 W]]=1299??	A||2HHcQWW->->-@v NN62	s*"188SARARSNN62		Y'  % +s   D5c                    | j                   S rl   )r_   rm   s    rh   r^   zPandasLikeSeries.name   s    zzrj   c                    | j                   j                  }|dk7  r!t        || j                  | j                        S t        | j                   | j                  | j                        S )Nobject)rn   r   r   rb   ra   r   )rd   native_dtypes     rh   r   zPandasLikeSeries.dtype   s\    {{(( x' %\4==$BVBVW	
 1T]]D,@,@	
rj   c                D    t         rdd l}|S t        | j                        S Nr   )r   numpyr   ra   )rd   nps     rh   _array_funcszPandasLikeSeries._array_funcs   s    I"4#7#788rj   c          	     |   | j                   }|j                         }	| j                  t        j                  u rI|dk(  r|r|	j                         s%|j                  |||||      j                         }
n3d}t        |      |j                  |||||||      j                         }
d |
|	<   | j                  |
      S )Nr   )comspanhalflifealphaadjustzscuDF only supports `ewm_mean` when there are no missing values or when both `min_period=0` and `ignore_nulls=False`)	ignore_na)
rn   isnara   r    CUDFanyewmmeanNotImplementedErrorr~   )rd   r   r   	half_lifer   r   min_samplesignore_nullssermask_nar   ru   s               rh   ewm_meanzPandasLikeSeries.ewm_mean   s     kk((*>#6#66q w{{}$%PV ! $& 
K  *#..WWT9e[&L  df  w  ((rj   c                    y rl    rd   indicesvaluesin_places       rh   scatterzPandasLikeSeries.scatter       rj   )r   c                    y rl   r   r   s       rh   r   zPandasLikeSeries.scatter!  r   rj   c               ^   | j                   }| j                  |j                  }}t        |j                  |j                  |   |      }|r|n|j	                  d      }|j                         r|rt        dk  r|j	                         }||j                  |<   |rd S | j                  |      S )Nr   T)deep)   )	ra   rn   r   r   r   r   r   r   r~   )	rd   r   r   r   implre   indices_nativevalues_nativer   s	            rh   r   zPandasLikeSeries.scatter&  s    
 ##(,W^^~!MM=..~>t
 #+0B0B0B0M>>]T-A)..0M&3N#t>T%6%6v%>>rj   c                z   | j                   |k(  r6| j                  j                   dk7  r| j                  | j                  d      S t        |t	        | j                  j                   | j
                        | j
                  | j                        }| j                  | j                  j                  |      d      S )Nr   Tr   )dtype_backendrf   rg   )r   rn   r~   r   r   ra   rb   astype)rd   r   pd_dtypes      rh   castzPandasLikeSeries.cast9  s    ::4;;#4#4#@ $$T[[T$JJ++DKK,=,=t?S?ST//MM	
   !3!3H!=RV WWrj   c                    |At        |       dk7  rdt        |        d}t        |      | j                  j                  d   S | j                  j                  |   S )N   zlcan only call '.item()' if the Series is of length 1, or an explicit index is provided (Series is of length )r   )r   
ValueErrorrn   r   )rd   r   ru   s      rh   itemzPandasLikeSeries.itemG  sf    =4yA~NNQRVi[XY[  !o%;;##A&&{{&&rj   c                ~    ddl m}  || j                  j                         | j                  | j
                  d      S )Nr   r1   F)rf   rg   validate_column_names)narwhals._pandas_like.dataframer2   rn   to_framera   rb   )rd   r2   s     rh   r   zPandasLikeSeries.to_frameS  s5    G"KK  "//MM"'	
 	
rj   c                    | j                   j                         }|r(| j                  j                         j	                         S | j                  j                         S rl   )ra   is_cudfrn   to_arrow	to_pylistto_list)rd   r   s     rh   r   zPandasLikeSeries.to_list]  sF    &&..05<t{{##%//1W$++BUBUBWWrj   c                   | j                   }t        | |      \  }}t        | |      \  }}|dk(  r$|j                  |      |j                  |      z  }n|dk(  r$|j	                  |      |j                  |      z  }n]|dk(  r$|j	                  |      |j                  |      z  }n4|dk(  r$|j                  |      |j                  |      z  }nt        |       | j                        j                  |j                        S )Nleftrightnoneboth)
rn   r   geltgtler   r~   aliasr^   )rd   lower_boundupper_boundclosedr   _ress          rh   
is_betweenzPandasLikeSeries.is_betweena  s     kk1$D;1$D;V&&%{(;;Cw&&%{(;;Cv&&%{(;;Cv&&%{(;;C   %++CHH55rj   c                V    | j                  | j                  j                  |            S rl   )r~   rn   isinrd   others     rh   is_inzPandasLikeSeries.is_ins  s"      !1!1%!899rj   c                    | j                   }t        |      }| j                  j                  |      }|j	                  ||j
                  |j                        j                  |   }| j                  |      S )N)r^   r   )	rn   r   r   aranger   r^   r   locr~   )rd   r   sizer   r   s        rh   arg_truezPandasLikeSeries.arg_truev  sb    kk3x  ''-t#((#))DHHM  ((rj   c                6    | j                   j                         S rl   )rn   argminrm   s    rh   arg_minzPandasLikeSeries.arg_min}      {{!!##rj   c                6    | j                   j                         S rl   )rn   argmaxrm   s    rh   arg_maxzPandasLikeSeries.arg_max  r  rj   c                    t        |t              st        | |      \  }}n|}| j                  | j                  j
                  |         j                  | j                        S rl   )r!   boolr   r~   rn   r  r  r^   )rd   	predicater  other_natives       rh   filterzPandasLikeSeries.filter  sN    )T*6tYGOA|$L  !>?EEdiiPPrj   c                b    t        | j                        r| j                  j                  d   S d S r   r   rn   r   rm   s    rh   firstzPandasLikeSeries.first  s'    &)$++&6t{{"@D@rj   c                b    t        | j                        r| j                  j                  d   S d S )Nr"  rm   s    rh   lastzPandasLikeSeries.last  s'    '*4;;'7t{{#ATArj   c                   t        | |      \  }}| j                  xr t        |dd      }	  |||      }| j                  ||      j                  | j                        S # t        $ r} |j                  dk(  rj| j
                  t        k(  rWt        |t              s)t        || j                        r1|j
                  t        k(  r| j                         }t        |||      }n Y w xY w)Nrc   Taddr   )r   rc   getattr	TypeError__name__r   r$   r{   strr   rv   r   r~   r  r^   )rd   opr  r   r  r   r	  pdxs           rh   _with_binaryzPandasLikeSeries._with_binary  s    4T5A\!__Sd1S	S,'C   9K LRRII
 	
  	 u$JJ&(uc*"5$..9ekkV>S //10lCH 	s   	A! !BC'&C'c                `    | j                  fd|      j                  | j                        S )Nc                     ||       S rl   r   )xyr-  s     rh   <lambda>z5PandasLikeSeries._with_binary_right.<locals>.<lambda>  s    bAhrj   )r/  r  r^   )rd   r-  r  s    ` rh   _with_binary_rightz#PandasLikeSeries._with_binary_right  s&      !6>DDTYYOOrj   c                B    | j                  t        j                  |      S rl   )r/  operatoreqr  s     rh   __eq__zPandasLikeSeries.__eq__        e44rj   c                B    | j                  t        j                  |      S rl   )r/  r7  ner  s     rh   __ne__zPandasLikeSeries.__ne__  r:  rj   c                B    | j                  t        j                  |      S rl   )r/  r7  r   r  s     rh   __ge__zPandasLikeSeries.__ge__  r:  rj   c                B    | j                  t        j                  |      S rl   )r/  r7  r  r  s     rh   __gt__zPandasLikeSeries.__gt__  r:  rj   c                B    | j                  t        j                  |      S rl   )r/  r7  r  r  s     rh   __le__zPandasLikeSeries.__le__  r:  rj   c                B    | j                  t        j                  |      S rl   )r/  r7  r  r  s     rh   __lt__zPandasLikeSeries.__lt__  r:  rj   c                B    | j                  t        j                  |      S rl   )r/  r7  and_r  s     rh   __and__zPandasLikeSeries.__and__  s      66rj   c                B    | j                  t        j                  |      S rl   )r5  r7  rG  r  s     rh   __rand__zPandasLikeSeries.__rand__  s    &&x}}e<<rj   c                B    | j                  t        j                  |      S rl   )r/  r7  or_r  s     rh   __or__zPandasLikeSeries.__or__        u55rj   c                B    | j                  t        j                  |      S rl   )r5  r7  rL  r  s     rh   __ror__zPandasLikeSeries.__ror__      &&x||U;;rj   c                B    | j                  t        j                  |      S rl   )r/  r7  r(  r  s     rh   __add__zPandasLikeSeries.__add__  rN  rj   c                B    | j                  t        j                  |      S rl   )r5  r7  r(  r  s     rh   __radd__zPandasLikeSeries.__radd__  rQ  rj   c                B    | j                  t        j                  |      S rl   )r/  r7  subr  s     rh   __sub__zPandasLikeSeries.__sub__  rN  rj   c                B    | j                  t        j                  |      S rl   )r5  r7  rW  r  s     rh   __rsub__zPandasLikeSeries.__rsub__  rQ  rj   c                B    | j                  t        j                  |      S rl   )r/  r7  mulr  s     rh   __mul__zPandasLikeSeries.__mul__  rN  rj   c                B    | j                  t        j                  |      S rl   )r5  r7  r\  r  s     rh   __rmul__zPandasLikeSeries.__rmul__  rQ  rj   c                B    | j                  t        j                  |      S rl   )r/  r7  truedivr  s     rh   __truediv__zPandasLikeSeries.__truediv__  s      !1!1599rj   c                B    | j                  t        j                  |      S rl   )r5  r7  ra  r  s     rh   __rtruediv__zPandasLikeSeries.__rtruediv__  s    &&x'7'7??rj   c                B    | j                  t        j                  |      S rl   )r/  r7  floordivr  s     rh   __floordiv__zPandasLikeSeries.__floordiv__  s      !2!2E::rj   c                B    | j                  t        j                  |      S rl   )r5  r7  rf  r  s     rh   __rfloordiv__zPandasLikeSeries.__rfloordiv__  s    &&x'8'8%@@rj   c                B    | j                  t        j                  |      S rl   )r/  r7  powr  s     rh   __pow__zPandasLikeSeries.__pow__  rN  rj   c                B    | j                  t        j                  |      S rl   )r5  r7  rk  r  s     rh   __rpow__zPandasLikeSeries.__rpow__  rQ  rj   c                B    | j                  t        j                  |      S rl   )r/  r7  modr  s     rh   __mod__zPandasLikeSeries.__mod__  rN  rj   c                B    | j                  t        j                  |      S rl   )r5  r7  rp  r  s     rh   __rmod__zPandasLikeSeries.__rmod__  rQ  rj   c                :    | j                  | j                         S rl   r~   rn   rm   s    rh   
__invert__zPandasLikeSeries.__invert__        $++..rj   c                :    | j                  | j                         S rl   ru  rm   s    rh   __neg__zPandasLikeSeries.__neg__  rw  rj   c                6    | j                   j                         S rl   )rn   r   rm   s    rh   r   zPandasLikeSeries.any      {{  rj   c                6    | j                   j                         S rl   )rn   allrm   s    rh   r}  zPandasLikeSeries.all  r{  rj   c                6    | j                   j                         S rl   )rn   minrm   s    rh   r  zPandasLikeSeries.min  r{  rj   c                6    | j                   j                         S rl   )rn   r   rm   s    rh   r   zPandasLikeSeries.max  r{  rj   c                6    | j                   j                         S rl   )rn   sumrm   s    rh   r  zPandasLikeSeries.sum
  r{  rj   c                6    | j                   j                         S rl   )rn   countrm   s    rh   r  zPandasLikeSeries.count  s    {{  ""rj   c                6    | j                   j                         S rl   )rn   r   rm   s    rh   r   zPandasLikeSeries.mean  s    {{!!rj   c                    | j                   j                         sd}t        |      | j                  j	                         S )Nz<`median` operation not supported for non-numeric input type.)r   
is_numericr%   rn   medianrt   s     rh   r  zPandasLikeSeries.median  s5    zz$$&PC',,{{!!##rj   c               :    | j                   j                  |      S Nddof)rn   stdrd   r  s     rh   r  zPandasLikeSeries.std      {{D))rj   c               :    | j                   j                  |      S r  )rn   varr  s     rh   r  zPandasLikeSeries.var  r  rj   c                F   | j                   j                         }t        |      dk(  ry t        |      dk(  rt        d      S t        |      dk(  ry||j	                         z
  }|dz  j	                         }|dz  j	                         }|dk7  r||dz  z  S t        d      S )Nr   r   nanr   g           g      ?rn   dropnar   floatr   )rd   ser_not_nullmm2m3s        rh   skewzPandasLikeSeries.skew  s    {{))+|!|!<|!<,,..d[[]d[[]!#qrRW~:eEl:rj   c                .   | j                   j                         }t        |      dk(  ry t        |      dk(  rt        d      S ||j	                         z
  }|dz  j	                         }|dz  j	                         }|dk7  r||dz  z  dz
  S t        d      S )Nr   r   r  r      g      @r  )rd   r  r  r  m4s        rh   kurtosiszPandasLikeSeries.kurtosis,  s    {{))+|!|!<<,,..d[[]d[[]%'1WrRU|c!>%,>rj   c                ,    t        | j                        S rl   )r   rn   rm   s    rh   r   zPandasLikeSeries.len7  s    4;;rj   c                X    | j                  | j                  j                         d      S )NTr   )r~   rn   r   rm   s    rh   is_nullzPandasLikeSeries.is_null<  s%      !1!1!3 MMrj   c                    | j                   }| j                  j                         sd| j                   d}t        |      | j	                  ||k7  d      S )Nz3`.is_nan` only supported for numeric dtype and not z, did you mean `.is_null`?Tr   )rn   r   r  r%   r~   )rd   r   ru   s      rh   is_nanzPandasLikeSeries.is_nan?  sS    kkzz$$&G

|SmnC',,   EErj   c                   | j                   }| j                  t        j                  u r| j                  dk  rddini }t        j                         5  t        j                  ddt               |5t        | |      \  }}| j                   |j                  dd|i|d	      }n>| j                  |d
k(  r |j                  dd|i|n |j                  dd|i|d	      }d d d        |S # 1 sw Y   S xY w)Nr  downcastFignorez&The 'downcast' keyword .*is deprecated)categoryvalueTr   forwardlimitr   )rn   ra   r    PANDAS_backend_versionwarningscatch_warningsfilterwarningsFutureWarningr   r~   fillnaffillbfill)	rd   r  strategyr  r   kwargsr  native_valueres_sers	            rh   	fill_nullzPandasLikeSeries.fill_nullG  s    kk ##~'<'<<%%,  	 	 $$&##B]  ":4"G<++CJJ<\<V<QU ,  ++9, CII4E4V4"99&9'+	 ,  '  ! '  s   BC..C8c                   | j                   }|j                         r|d}t        |      | j                  j	                         sd| j                   d}t        |      | j                  }| |j                  j                  j                  n|}||k7  }|j                         }|j                         r|dk  r|j                  dd       n|j                  d      }| j                  |j                  ||      d      S )	Nz6`fill_nan(value=None)` is not support for CuDF backendz5`.fill_nan` only supported for numeric dtype and not z, did you mean `.fill_null`?)r  r   FT)inplacer   )ra   r   r   r   r  r%   rn   arrayna_valuer  r   r  r~   mask)rd   r  r   ru   r   fillr  backend_versions           rh   fill_nanzPandasLikeSeries.fill_nanf  s    ##<<>u}JC%c**zz$$&I$**UqrC',,KK).qww}}%%EAv//1>>& 8KKtK,;;u%D  d!3 MMrj   c                T    | j                  | j                  j                               S rl   )r~   rn   r  rm   s    rh   
drop_nullszPandasLikeSeries.drop_nulls|  s       !3!3!566rj   c                :    | j                   j                  d      S )NF)r  )rn   nuniquerm   s    rh   n_uniquezPandasLikeSeries.n_unique  s    {{""%"00rj   c               ^    | j                  | j                  j                  ||||            S )N)nfracreplacerandom_state)r~   rn   sample)rd   r  fractionwith_replacementseeds        rh   r  zPandasLikeSeries.sample  s8       KK(,<4  
 	
rj   c                T    | j                  | j                  j                               S rl   )r~   rn   absrm   s    rh   r  zPandasLikeSeries.abs  s      !233rj   c                   |s| j                   j                  d      n'| j                   d d d   j                  d      d d d   }| j                  |      S NT)skipnar%  )rn   cumsumr~   rd   reverser   s      rh   cum_sumzPandasLikeSeries.cum_sum  ]      KKd+TrT")))6tt< 	
   ((rj   Tmaintain_orderc                   | j                   t        | j                        | j                  j                         | j                              S )zuPandas always maintains order, as per its docstring.

        > Uniques are returned in order of appearance.
        r   )r~   rr   rn   uniquer^   )rd   r  s     rh   r  zPandasLikeSeries.unique  s9    
   !2dkk!24;;3E3E3Gdii!XYYrj   c                T    | j                  | j                  j                               S rl   )r~   rn   diffrm   s    rh   r  zPandasLikeSeries.diff  s       !1!1!344rj   c                V    | j                  | j                  j                  |            S rl   )r~   rn   shiftrd   r  s     rh   r  zPandasLikeSeries.shift  s"      !2!21!566rj   c               H   | j                         }| j                  }| j                  }| j                  }t	        |j
                  |      }	|rt        ||	|| j                        nd }
|j                  |      j                  |      }|dk\  }|j                  ||
| j                        }||	|j                  |	      }|j                  |j                  ||d         }|j                  |_        |t         u ry|j#                         | z  }|j%                         rB| j'                  ||         j)                  d      j+                         }d| }t-        |      |j                  |d       }n!t/        | |      \  }}|j                  ||      }| j'                  |      S )Nr   )r   r^   )r   Fr  zYreplace_strict did not replace all non-null values.

The following did not get replaced: )rv   r   rn   ra   r   r   r   rb   Indexget_indexerr   r^   convert_dtypesr   wherer   r   notnar   r~   r  r   r%   r   )rd   defaultoldnewreturn_dtype	namespacearray_funcsrn   r   r   r   idxswas_matched
new_seriesnative_resultunmatched_maskunmatched_valuesru   r  default_natives                       rh   replace_strictzPandasLikeSeries.replace_strict  s    --/	''##)&,,=  %\=$V 	 s#//7ai%%cTYY%G
M$=#222OJ #(9(9+tQ(OP$llj #\\^|<N!!#%%f^&<=V5V1WY !;;K:LN  ,C00)//TBM !9w GA~)//^LM  //rj   c                   |rdnd}| j                  | j                  j                  | |            j                  | j                        S )Nr&  r#  )	ascendingna_position)r~   rn   sort_valuesr  r^   )rd   
descending
nulls_lastr  s       rh   sortzPandasLikeSeries.sort  sE     *f  KK##*n+#V

%		
	rj   c                    || j                   k7  r3| j                  t        | j                  || j                        d      S | S )Nr   Tr   )r^   r~   r   rn   ra   )rd   r^   s     rh   r  zPandasLikeSeries.alias  sF    499$$t{{D9M9MN#' %   rj   c               (    | j                  ||      S )N)r   r   )to_numpy)rd   r   r   s      rh   	__array__zPandasLikeSeries.__array__  s     }}5t}44rj   )r   c                   | j                   j                  }t        | j                  |j                        rU| j                  j
                  ?| j                  j                  d      j                  j                  d       j                  }n| j                  }|j                         j                         }d|xs | j                  j                         i}|rWt        |j                        t        v r<|j!                  dt#        d      i       |xs t        t        |j                           }|s;t        |j                        t$        v r |xs t$        t        |j                           } |j&                  dd|i|S )NUTCr   r  r  r   r   )rb   dtypesr{   r   Datetime	time_zonedtconvert_time_zonereplace_time_zonern   r   r   ra   r   r,  PANDAS_TO_NUMPY_DTYPE_MISSINGupdater   PANDAS_TO_NUMPY_DTYPE_NO_MISSINGr  )rd   r   r   r  r   has_missingr  s          rh   r  zPandasLikeSeries.to_numpy  s    %%djj&//2tzz7K7K7W))%033EEdKRRAAffhlln"($*P$2F2F2N2N2P!Q3qww<+HHMM:uU|45H:3qww<HEs177|/OOK=c!''lKEqzz0000rj   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: )	ra   r    r  rn   r   	to_pandasMODIN
_to_pandasrs   rt   s     rh   r  zPandasLikeSeries.to_pandas  s    >#8#88;;>#6#66;;((**>#7#77;;))++()=)=(>?S!!rj   c                J    dd l } |j                  | j                               S r   )polarsfrom_pandasr  )rd   pls     rh   	to_polarszPandasLikeSeries.to_polars  s    r~~dnn.//rj   c                    | j                  | j                  j                  d             j                  | j                        S )NFkeepr~   rn   
duplicatedr  r^   rm   s    rh   	is_uniquezPandasLikeSeries.is_unique  s7      $++"8"8e"8"D!DEKKDIIVVrj   c                R    | j                   j                         j                         S rl   )rn   r   r  rm   s    rh   
null_countzPandasLikeSeries.null_count  s    {{!%%''rj   c                    | j                  | j                  j                  d             j                  | j                        S )Nr#  r  r  rm   s    rh   is_first_distinctz"PandasLikeSeries.is_first_distinct  s7      $++"8"8g"8"F!FGMMdiiXXrj   c                    | j                  | j                  j                  d             j                  | j                        S )Nr&  r  r  rm   s    rh   is_last_distinctz!PandasLikeSeries.is_last_distinct  s7      $++"8"8f"8"E!EFLLTYYWWrj   c                   t        |t              sdt        |       }t        |      |r| j                  j
                  S | j                  j                  S )Nz/argument 'descending' should be boolean, found )r{   r  rr   r*  rn   is_monotonic_decreasingis_monotonic_increasing)rd   r  ru   s      rh   	is_sortedzPandasLikeSeries.is_sorted!  sK    *d+CDDTCUVCC. ;;666{{222rj   c                  ddl m} | j                  dn| j                  }|xs |rdnd}| j                  j	                  dd|      j                         }||g|_        |r|j                  |d      } |j                  || 	      S )
z-Parallel is unused, exists for compatibility.r   r1   r   
proportionr  F)r  r  	normalize)r  r   )	r   r2   r_   rn   value_countsreset_indexcolumnsr  r   )	rd   r  parallelr^   r+  r2   index_name_value_name_	val_counts	            rh   r,  zPandasLikeSeries.value_counts*  s     	H!%!3gFy|gKK,,u	 - 

+- 	 )+6	!--kU-KI."..y$GGrj   c                <    | j                   j                  ||      S )N)qinterpolation)rn   quantile)rd   r6  r5  s      rh   r6  zPandasLikeSeries.quantile=  s     {{##hm#LLrj   c                    | j                   }t        | |      \  }}t        | |      \  }}|j                  ||      }| j                  |      S rl   )rn   r   r  r~   )rd   r  r  r   r  r	  s         rh   zip_withzPandasLikeSeries.zip_withB  sL    kk*464+D%85iie$  %%rj   c                V    | j                  | j                  j                  |            S rl   )r~   rn   headr  s     rh   r:  zPandasLikeSeries.headI  "      !1!1!!455rj   c                V    | j                  | j                  j                  |            S rl   )r~   rn   tailr  s     rh   r=  zPandasLikeSeries.tailL  r;  rj   c                X    | j                  | j                  j                  |            S )N)decimals)r~   rn   round)rd   r?  s     rh   r@  zPandasLikeSeries.roundO  s%      !2!2H!2!EFFrj   c                   | j                   }| j                  |j                        r#dd lm} | j                  ||j                        }n(| j                  j                  }| j                  ||      }| j                  |      S r   )
rn   is_native_dtype_pyarrowr   pyarrow.computecompute_apply_pyarrow_compute_funcfloorr   _apply_array_funcr~   rd   rn   pcresult_native
array_funcs        rh   rF  zPandasLikeSeries.floorR  sj    ''5( <<VRXXNM**00J 226:FM  //rj   c                   | j                   }| j                  |j                        r#dd lm} | j                  ||j                        }n(| j                  j                  }| j                  ||      }| j                  |      S r   )
rn   rB  r   rC  rD  rE  ceilr   rG  r~   rH  s        rh   rM  zPandasLikeSeries.ceil]  sj    ''5( <<VRWWMM**//J 226:FM  //rj   c                  ddl m} | j                         }| j                  }| j                  rt        | j                        nd}| | d}|j                         j                         }|j                  |||||d      }	|rLt        |	j                        ^ }
}|g|
}t        t        |	|| j                        ||i| j                        }	 |j                  |	|       S )	Nr   r1   r   nullrN   )prefix
prefix_sep
drop_firstdummy_nar   )r.  rf   r   )r   r2   rv   rn   r_   r,  r   r   get_dummiesr}   r.  r   r   ra   r   )rd   	separatorrR  r2   plxr   r^   null_col_pl	has_nullsr   colsnull_col_pdoutput_orders                rh   
to_dummieszPandasLikeSeries.to_dummiesh  s    G'')"&**s4::"yk.KKM%%'	 ! ! 
 !%fnn!5T;'/$/L&v|T=Q=QR$k2#33F
 /"..vtDDrj   c                X    | j                  | j                  j                  |d |         S rl   )r~   rn   r   )rd   r  offsets      rh   gather_everyzPandasLikeSeries.gather_every  s(      !1!1&)!)!<==rj   c                   t        | |      \  }}t        | |      \  }}| j                  }|j                         rddini }| j                  }|j	                         sP| j                  |      r|j                  ||k\  |      }d }| j                  |      r|j                  ||k  |      }d }| j                   |j                  ||fi |      S Naxisr   	r   ra   is_modinrn   r   r   r  r~   clip)	rd   r  r  r  lowerupperr   r  r   s	            rh   re  zPandasLikeSeries.clip  s    +D+>5+D+>5##04&!R~~ u%fou=u%fou=  UE!DV!DEErj   c                0   t        | |      \  }}| j                  }|j                         rddini }| j                  }|j	                         s(| j                  |      r|j                  ||k\  |      }d }| j                   |j                  |fi |      S ra  rc  )rd   r  r  rf  r   r  r   s          rh   
clip_lowerzPandasLikeSeries.clip_lower  s    +D+>5##04&!R~~DOOE$: \\&E/59FE  U!=f!=>>rj   c                2   t        | |      \  }}| j                  }|j                         rddini }| j                  }|j	                         s(| j                  |      r|j                  ||k  |      }d }| j                   |j                  dd|i|      S )Nrb  r   rg  r   rc  )rd   r  r  rg  r   r  r   s          rh   
clip_upperzPandasLikeSeries.clip_upper  s    +D+>5##04&!R~~DOOE$: \\&E/59FE  !C5!CF!CDDrj   c                    | j                   t        j                  u r| j                  j	                         S dd l}|j                  j                  | j                        S r   )ra   r    r   rn   r   pyarrowArrayr  )rd   pas     rh   r   zPandasLikeSeries.to_arrow  sE    >#6#66;;''))xx##DKK00rj   c                   | j                   j                         }| j                  |_        | j                  |dk(  r|j	                  d            S |      S )Nr   r   )rn   moder^   r~   r:  )rd   r  r   s      rh   rq  zPandasLikeSeries.mode  sF    !!#ii  45=QMMfMMrj   c                   | j                   j                          }|s|j                         n!t        |       |j                         z
  |z   dz
  }| j	                  |      S Nr   )rn   r   r  r   r~   )rd   r  not_na_seriesr   s       rh   	cum_countzPandasLikeSeries.cum_count  sa    ))++    "T]1133mCaG 	
   ((rj   c                   |s| j                   j                  d      n'| j                   d d d   j                  d      d d d   }| j                  |      S r  )rn   cumminr~   r  s      rh   cum_minzPandasLikeSeries.cum_min  r  rj   c                   |s| j                   j                  d      n'| j                   d d d   j                  d      d d d   }| j                  |      S r  )rn   cummaxr~   r  s      rh   cum_maxzPandasLikeSeries.cum_max  r  rj   c                   |s| j                   j                  d      n'| j                   d d d   j                  d      d d d   }| j                  |      S r  )rn   cumprodr~   r  s      rh   cum_prodzPandasLikeSeries.cum_prod  s]      KKt,TrT"**$*7"= 	
   ((rj   c               |    | j                   j                  |||      j                         }| j                  |      S Nwindowmin_periodscenter)rn   rollingr  r~   rd   window_sizer   r  r   s        rh   rolling_sumzPandasLikeSeries.rolling_sum  s?    $$K % 

#% 	   ((rj   c               |    | j                   j                  |||      j                         }| j                  |      S r  )rn   r  r   r~   r  s        rh   rolling_meanzPandasLikeSeries.rolling_mean  s?    $$K % 

$& 	   ((rj   c                   | j                   j                  |||      j                  |      }| j                  |      S Nr  r  )rn   r  r  r~   rd   r  r   r  r  r   s         rh   rolling_varzPandasLikeSeries.rolling_var  E     $$K % 

#4#. 	   ((rj   c                   | j                   j                  |||      j                  |      }| j                  |      S r  )rn   r  r  r~   r  s         rh   rolling_stdzPandasLikeSeries.rolling_std  r  rj   c              #     K   | j                   j                         rd}t        |      | j                  j	                         E d {    y 7 w)NzIterating over a cuDF Series, DataFrame or Index is not supported. For more information see: https://docs.rapids.ai/api/cudf/stable/user_guide/pandas-comparison/#iteration)ra   r   r   rn   __iter__rt   s     rh   r  zPandasLikeSeries.__iter__  sF     ''){  &c**;;'')))s   AAAAc                    |(| j                   j                         j                         S | j                   |k(  j                         S rl   )rn   r   r   r  s     rh   __contains__zPandasLikeSeries.__contains__  s9    +0=t{{!%%'Zt{{e?S>X>X>ZZrj   c                r    | j                   }| j                  |t        d      kD  |t        d      k  z        S )Nz-infinf)rn   r~   r  )rd   r   s     rh   	is_finitezPandasLikeSeries.is_finite  s3    KK  !eFm"3E%L8H!IJJrj   c               :   |dk(  rdn|}| j                   }| j                  t        j                  u r;| j                  dk  r+t        | j                  j                  | j                        dk(  r| j                  j                         r| j                         x}j                         r| d}| j                         }| j                         j                  |j                  j                  |      j!                  |            j                  }| j#                  |j%                  |      j'                  |d| d      j(                  d d d	f         j!                  | j                         S | j#                  | j                  j'                  |d| d            S )
Nordinalr#  r  numpy_nullable_is_nullr  F)method	na_optionr  pctr   )r^   ra   r    r  r  r   rn   r   
is_integerr  r   ry   r   with_columns_expr_from_seriesr  r~   groupbyrankr   )	rd   r  r  	pd_methodr^   	null_mask	mask_namerV  dfs	            rh   r  zPandasLikeSeries.rank  so   %2G	yy  N$9$99%%,!$++"3"3T5I5IJ 

%%'"lln,113
  &)I--/Ccii44Y?EEiPQ 
 $$

9%$$",n	   ad	 eDII	   KK F*nRW  
 	
rj   c               j    t         j                  | |      j                  |      j                         S N)include_breakpoint)_PandasHistfrom_series	with_binsr   )rd   binsr  s      rh   hist_from_binszPandasLikeSeries.hist_from_bins:  s-     ##D=O#PYt_XZ	
rj   c               j    t         j                  | |      j                  |      j                         S r  )r  r  with_bin_countr   )rd   	bin_countr  s      rh   hist_from_bin_countz$PandasLikeSeries.hist_from_bin_countC  s.     ##D=O#P^I&XZ	
rj   c                   | j                   }| j                  |j                        r dd lm dfd}| j                  ||      }n/| j                  j                  dfd}| j                  ||      }| j                  |      S )Nr   c                (    j                  |       S rl   )logb)cabaserI  s    rh   pc_logz$PandasLikeSeries.log.<locals>.pc_logQ  s    wwr4((rj   c                &     |              z  S rl   r   )r   r  log_funcs    rh   	array_logz'PandasLikeSeries.log.<locals>.array_logX  s    }x~55rj   )r  r/   returnr/   )r   r5   r  r5   )
rn   rB  r   rC  rD  rE  r   logrG  r~   )rd   r  rn   r  rJ  r  r  rI  s    `    @@rh   r  zPandasLikeSeries.logL  su    ''5() !<<VVLM((,,H6 !2269EM  //rj   c                   | j                   }| j                  |j                        r#dd lm} | j                  ||j                        }n(| j                  j                  }| j                  ||      }| j                  |      S r   )
rn   rB  r   rC  rD  rE  expr   rG  r~   rH  s        rh   r  zPandasLikeSeries.exp^  sj    ''5( <<VRVVLM**..J 226:FM  //rj   c                V    | j                  | j                  j                  d            S )N      ?)r~   rn   rk  rm   s    rh   sqrtzPandasLikeSeries.sqrtj  s       !566rj   c                   | j                   }| j                  |j                        r#dd lm} | j                  ||j                        }n(| j                  j                  }| j                  ||      }| j                  |      S r   )
rn   rB  r   rC  rD  rE  sinr   rG  r~   rH  s        rh   r  zPandasLikeSeries.sinm  p    ''5( <<M
 **..J 226:FM  //rj   c                   | j                   }| j                  |j                        r#dd lm} | j                  ||j                        }n(| j                  j                  }| j                  ||      }| j                  |      S r   )
rn   rB  r   rC  rD  rE  cosr   rG  r~   rH  s        rh   r  zPandasLikeSeries.cos|  r  rj   c                :    | j                   }t        ||      dk(  S )Nr   rm  )ra   r   )rd   r   r   s      rh   rB  z(PandasLikeSeries.is_native_dtype_pyarrow  s    ## dCyPPrj   c                   ddl m} t        |      } ||j                  j                        } ||j                  | j
                        }t        |d| j                  | j
                        } ||||j                  |j                        S )Nr   )r   rm  )r   r   r^   )
narwhals._arrow.utilsr   rr   r  	_pa_arrayrb   r   ra   r   r^   )rd   rn   pc_funcr   
native_cls
result_arrnw_dtype	out_dtypes           rh   rE  z,PandasLikeSeries._apply_pyarrow_compute_func  sv     	C&\
V\\334
+JOOT]]K,i!5!5t}}
	 iv||&++
 	
rj   c                    t        |      } ||      }| j                  j                         r |||j                  |j                        S |S )N)r   r^   )rr   ra   r   r   r^   )rd   rn   rK  r  r  s        rh   rG  z"PandasLikeSeries._apply_array_func  sP     &\
'
 ##++- zFKKH	
 	
rj   c               b    |r| j                         j                         S | j                         S rl   )r  r#  )rd   r   s     rh   	any_valuezPandasLikeSeries.any_value  s%    ,8t &&(JdjjlJrj   c                    t        |       S rl   r   rm   s    rh   r,  zPandasLikeSeries.str  s    .t44rj   c                    t        |       S rl   r   rm   s    rh   r	  zPandasLikeSeries.dt  s    066rj   c                    t        |       S rl   r
   rm   s    rh   catzPandasLikeSeries.cat  s    +D11rj   c                ^    t        | j                  d      sd}t        |      t        |       S )Nr}   z>Series must be of PyArrow List type to support list namespace.)hasattrrn   r*  r   rt   s     rh   r}   zPandasLikeSeries.list  s*    t{{F+RCC. ,T22rj   c                ^    t        | j                  d      sd}t        |      t        |       S )NstructzBSeries must be of PyArrow Struct type to support struct namespace.)r  rn   r*  r   rt   s     rh   r  zPandasLikeSeries.struct  s*    t{{H-VCC. .t44rj   )re   r   rf   r    rg   r7   r  None)r  r   )r  r+   )r  r4   )r   z'SizedMultiIndexSelector[pd.Series[Any]]r  r-   )r   z_SliceIndex | ranger  r-   )rg   r7   r  r-   )r   r   r   r  r  r-   )r   zIterable[Any]r   r8   r^   r,  r   IntoDType | Noner   r   r  r-   )r   r   r  zTypeIs[Any])r   r   r   r8   r  r-   )r   r<   r   r8   r  r-   )r   r-   r  zSequence[Self])r  r,  )r  r9   )r   float | Noner   r  r   r  r   r  r   r  r   intr   r  r  r-   )r   r-   r   r-   r   zLiteral[True]r  r  )r   r-   r   r-   r   zLiteral[False]r  r-   )r   r-   r   r-   r   r  r  zSelf | None)r   r=   r  r-   rl   )r   
int | Noner  r   r  r2   )r  z	list[Any])r  r   r  r   r  r:   r  r-   )r  r   r  r-   )r  r-   )r  r  )r  r   r  r-   )r  r@   )r-  zCallable[..., pd.Series]r  r   r  r-   )r  r   r  r-   r  r  )r  r  )r  r  r  r  )r  r  )r  zSelf | NonNestedLiteralr  zFillNullStrategy | Noner  r  r  r-   )r  r  r  r-   )
r  r  r  r  r  r  r  r  r  r-   )r  r  r  r-   )r  r  r  r-   )r  r  r  r-   )
r  zPandasLikeSeries | NoDefaultr  Sequence[Any]r  r  r  r  r  r\   )r  r  r  r  r  r\   )r^   zstr | Hashabler  r-   )r   r   r   zbool | Noner  rD   )r  pd.Series[Any])r  z	pl.Series)r  r  r  r  )
r  r  r/  r  r^   z
str | Noner+  r  r  r2   )r6  r  r5  rB   r  r  )r  r   r  r   r  r-   )r?  r  r  r-   )rU  r,  rR  r  r  r2   )r  r  r^  r  r  r-   )r  r-   r  r-   r  r-   )r  r-   r  r-   )r  r-   r  r-   )r  zpa.Array[Any])r  r>   r  r-   )r  r  r   r  r  r  r  r-   )
r  r  r   r  r  r  r  r  r  r-   )r  zIterator[Any])r  r   r  r  )r  rA   r  r  r  r-   )r  list[float]r  r  r  r2   )r  r  r  r  r  r2   )r  r  r  r-   )r   r   r  r  )rn   r5   r  z,Callable[[ChunkedArrayAny], ChunkedArrayAny]r  r5   )rn   r5   rK  z(Callable[[NativeSeriesT], NativeSeriesT]r  r5   )r   r  r  r@   )r  r   )r  r   )r  r   )r  r   )r  r   )r+  
__module____qualname__ri   propertyrn   rv   ry   r   r   r   r~   classmethodr   staticmethodr   r   r   r   r^   r   r   r   r   r   r   r   r   r   r
  r  r  r  r  r   r#  r&  r/  r5  r9  r=  r?  rA  rC  rE  rH  rJ  rM  rP  rS  rU  rX  rZ  r]  r_  rb  rd  rg  ri  rl  rn  rq  rs  rv  ry  r   r}  r  r   r  r  r   r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r"  r$  r(  r,  r6  r8  r:  r=  r@  rF  rM  r\  r_  re  ri  rk  r   rq  ru  rx  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rB  rE  rG  r  r,  r	  r  r}   r  r   rj   rh   r\   r\   s   s      5C NU 	  # #"H
9



 GL   "&TT !	T
 T  T T 
T T0 * * [ [ 8 8  ,   
 
 9 9) ) 	)
  ) ) ) ) ) 
)> %)8E	  IN%)8F	 
 @E??%)?8<?	?&X
'
X66-06:H6	6$:)$$
QAB
.P5555557=6<6<6<6<:@;A6<6<
//
!!!!!#"$**;	? 
NF& * 	
 
>N,71

 	

 
 
 

4) 04 Z5750-50 50 	50 '50 
50n51 1$"0W(YX3HH'+H3=HJNH	H&MM.HM	M
&66G	0	0E:>F(?E1N
))))))))03)=A)IL)	)))03)=A)IL)	)*[K#
J

8<
	


59
	
0$
0700Q
#
.Z
	
	
#	
1Y	
		
K 5 5 7 7 2 2 3 3 5 5rj   r\   c                      e Zd ZU ded<   ddZddZddZddZddd		 	 	 	 	 	 	 dd
Zdd	 	 	 	 	 	 	 	 	 ddZ	ddZ
ddZy)r  r\   _seriesc                    | j                   j                         j                  j                  }| j                   j	                         j
                  } | || j                        | j                         S )Nr   )r  ry   
_dataframer   rv   	DataFrame_data)rd   r   r  s      rh   r   z_PandasHist.to_frame  sR    ll99;FFRRLL557AA	9TZZ0$,,GGrj   c                <    | j                   j                         dk  S rs  )r  r  rm   s    rh   is_empty_seriesz_PandasHist.is_empty_series  s    ||!!#a''rj   c               l    | j                  |      }| j                  r| j                  |      |dS d|iS )N
breakpointr  r  )_zeros_breakpoint_calculate_breakpoint)rd   argr  s      rh   series_emptyz_PandasHist.series_empty  s:    C "&"<"<S"AERRrj   c                   | j                   j                  j                  }t        |t              r ||      S  |t        |      dz
        S rs  )r  r   zerosr{   r  r   )rd   r  r  s      rh   r  z_PandasHist._zeros  s<    ))//'S1uSzJuSX\7JJrj   Nr   )labelsr  c               ~    | j                   j                         j                  } || j                  ||dk(  |d      S )Nr   T)r  r   r   include_lowest)r  rv   cutrn   )rd   breaksr   r  r  s        rh   _cutz_PandasHist._cut  sA     ll//155KKG#
 	
rj   r   )r  c               Z    | j                   j                  j                  ||||dk(        S )Nr   )r   r   numendpoint)r  r   linspace)rd   r   endnum_samplesr  s        rh   _linear_spacez_PandasHist._linear_space  s4     ||((11c{Vv=M 2 
 	
rj   c                    | j                   j                         | j                   j                         }}||k(  r
|dz  }|dz  }| j                  |||dz         S )z6Prepare bins for histogram calculation from bin_count.r  r   )rn   r  r   r  )rd   r  rf  rg  s       rh   _calculate_binsz_PandasHist._calculate_bins  sS    {{($++//*;uE>SLESLE!!%	A>>rj   c                    | j                  |      }|j                  dd      j                  |j                  j                  d      }|j                  dd       | j                  r|dd  |dS d	|iS )
NTF)r  r  r   )
fill_value)dropr  r   r  r  )r  r,  reindexr  
categoriesr-  r  )rd   r  r  r  s       rh   _calculate_histz_PandasHist._calculate_hist  s     YYt_
 ''t%'@HHNN%%! I 
 	tT2"&qr(U;;rj   r  r  )r  int | list[float]r  rF   )r  r  r  rD   )r  list[float] | _1DArrayr   zSequence[str] | Noner  zLiteral['left', 'right']r  r  )
r   r  r
  r  r  r  r  zLiteral['both', 'none']r  rD   )r  r  r  rD   )r  r  r  rF   )r+  r  r  __annotations__r   r  r  r  r  r  r  r  r   rj   rh   r  r    s    H(
 K (,+2
&
 %	

 )
 

. +1



 

 	

 (

 


? rj   r  )r  r  )d
__future__r   r7  r  typingr   r   r   r   narwhals._compliantr   r	    narwhals._pandas_like.series_catr   narwhals._pandas_like.series_dtr   !narwhals._pandas_like.series_listr    narwhals._pandas_like.series_strr   #narwhals._pandas_like.series_structr   narwhals._pandas_like.utilsr   r   r   r   r   r   r   r   r   r   r   r   narwhals._typing_compatr   narwhals._utilsr   r    r!   narwhals.dependenciesr"   r#   narwhals.dtypesr$   narwhals.exceptionsr%   collections.abcr&   r'   r(   r)   r*   typesr+   r,   pandaspdr  r  rm  ro  typing_extensionsr-   r.   narwhals._arrow.typingr/   narwhals._compliant.seriesr0   r   r2   rx   r4   narwhals._pandas_like.typingr5   narwhals._typingr6   r7   r8   r9   narwhals.typingr:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   r  r  r  r\   r  r   rj   rh   <module>r0     s   "   8 8 < I M K L O    1 B B J " 5PP  .63CC:*8%    !HNIG$W$g$ W$ g	$
 W$ g$ F$ V$ h$ x$ h$ x$ h$ x$ W$  g!$" y#$$ "!)$  ,!Y!i! Y! i	!
 Y! i! I! Y! i! y! i! y! i! y! Y!  i!!" y#!$ "!)! 0Q5{3' Q5h"J /"AB J rj   