
    -Phs                       d dl mZ d dlmZmZmZmZmZmZ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mZmZmZmZmZmZm Z  d dl!m"Z"m#Z#m$Z$m%Z% d dl&m'Z'm(Z( d dl)m*Z* er^d dl+m,Z, d dlm-Z- d dl.Z/d dl0Z1d dl2Z3d dl4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z< d dl!m=Z=m>Z> d dl?m@Z@ d dlAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZN i ddddddddddddd d!d"d!d#d$d%d$d&d'd(d'd)d*d+d*d,d-d.d-d/d0d0d1d1d2ZOi dd0dd0dd0dd0dd0dd0d d0d"d0d#d0d%d0d&d0d(d0d)d0d+d0d,d0d.d0d/d0d0d1d1d2ZP G d3 d4ee                   ZQdS )5    )annotations)TYPE_CHECKINGAnyIterableIteratorMappingSequencecastN)EagerSeriesPandasLikeSeriesCatNamespace!PandasLikeSeriesDateTimeNamespace)PandasLikeSeriesListNamespacePandasLikeSeriesStringNamespace)PandasLikeSeriesStructNamespace)align_and_extract_nativeget_dtype_backendnarwhals_to_native_dtypenative_to_narwhals_dtypeobject_native_to_narwhals_dtyperenameselect_columns_by_name	set_index)Implementation
is_list_ofparse_versionvalidate_backend_version)is_numpy_array_1dis_pandas_like_series)InvalidOperationError)
ModuleType)Hashable)SelfTypeIs)ChunkedArrayAnyPandasLikeDataFramePandasLikeNamespace)Version_FullContext)DType)ClosedIntervalFillNullStrategyInto1DArray	IntoDTypeNonNestedLiteralNumericLiteral
RankMethodRollingInterpolationMethodSizedMultiIndexSelectorTemporalLiteral_1DArray
_AnyDArray_SliceIndex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                  b   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dd0            Zedd1            Zedd3            Zdd=ZddAZddBZddDZd dFZddHZddJZddOZddQZddRZddSZddTZddVZ ddXZ!ddYZ"ddZZ#dd[Z$dd\Z%dd]Z&dd^Z'dd_Z(dd`Z)ddaZ*ddbZ+ddcZ,dddZ-ddeZ.ddfZ/ddgZ0ddhZ1ddiZ2ddjZ3ddkZ4ddlZ5ddmZ6ddnZ7ddoZ8d	dqZ9d
drZ:d
dsZ;ddtZ<dduZ=ddwZ>ddxZ?ddyZ@ddzZAdd|ZBdd}ZCdd~ZDddZEddZFddZGddZHddZIddZJddZKddZLddZMddddZNddZOddZPddZQddZRddZSddZTdddddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_ddZ`ddZad dZbd!dÄZcd"dńZdd#dǄZed$dɄZfddʄZgdd˄Zhdd̄Zidd̈́Zjdd΄Zkd%dфZld%d҄Zmd&dӄZnd&dԄZod'dքZpd(dׄZqdd؄Zrd)dۄZsd*dZtd+dZuddZved,d            Zwed-d            Zxed.d            Zyed/d            Zzed0d            Z{dS (1  PandasLikeSeriesnative_seriesr   implementationr   backend_versiontuple[int, ...]versionr,   returnNonec                   |j         | _        || _        || _        || _        || _        t          | j        | j                   d| _        d S )NF)name_name_native_series_implementation_backend_version_versionr   
_broadcast)selfrR   rS   rT   rV   s        \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/narwhals/_pandas_like/series.py__init__zPandasLikeSeries.__init__m   sP     #'
+- / !5t7LMMM      c                    | j         S N)r\   ra   s    rb   nativezPandasLikeSeries.native   s    ""rd   r#   c                    | j                                         r| j                                         S dt          | j                    }t	          |          )Nz!Expected pandas/modin/cudf, got: )r]   is_pandas_liketo_native_namespacetypeAssertionErrorra   msgs     rb   __native_namespace__z%PandasLikeSeries.__native_namespace__   sT    ..00 	>';;===N$t7K2L2LNNS!!!rd   r+   c                F    ddl m}  || j        | j        | j                  S )Nr   r*   )narwhals._pandas_like.namespacer+   r]   r^   r_   )ra   r+   s     rb   __narwhals_namespace__z'PandasLikeSeries.__narwhals_namespace__   s8    GGGGGG"" $"7
 
 	
rd   rows'SizedMultiIndexSelector[pd.Series[Any]]r%   c                    t          |t                    rt          |          n|}|                     | j        j        |                   S rf   )
isinstancetuplelist_with_nativerh   ilocra   rt   s     rb   _gatherzPandasLikeSeries._gather   s>    'e44>tDzzz$  !1$!7888rd   _SliceIndex | rangec                    |                      | j        j        t          |j        |j        |j                                     S rf   )rz   rh   r{   slicestartstopstepr|   s     rb   _gather_slicezPandasLikeSeries._gather_slice   s9      KU4:ty$)DDE
 
 	
rd   c                R    |                      | j        | j        | j        |          S N)rS   rT   rV   )	__class__rh   r]   r^   )ra   rV   s     rb   _with_versionzPandasLikeSeries._with_version   s1    ~~K/ 1	  
 
 	
rd   Fpreserve_broadcastseriesr   boolc               r    |                      || j        | j        | j                  }|r| j        |_        |S r   )r   r]   r^   r_   r`   )ra   r   r   results       rb   rz   zPandasLikeSeries._with_native   sG    / 1M	   
 
  	0 $Frd    N)rZ   dtypeindexdataIterable[Any]contextr-   rZ   strr   IntoDType | Noner   c               2   |j         }|j        }|j        }|                                }	i }
|rt	          |d |||          |
d<   n/|                                rd|
d<   |t          |          r||
d<   |                      |	j        |fd|i|
|          S )Nr   Fcopyr   rZ   r   )	r]   r^   r_   rk   r   	is_pandaslenfrom_nativeSeries)clsr   r   rZ   r   r   rS   rT   rV   nskwdss              rb   from_iterablezPandasLikeSeries.from_iterable   s     !0!2"//11! 	&4t^_g DMM '')) %$V SZZ  %WyryAADADAA7SSSrd   objTypeIs[Any]c                     t          |           S rf   )r!   )r   s    rb   
_is_nativezPandasLikeSeries._is_native   s    $S)))rd   c              >     | ||j         |j        |j                  S r   )r]   r^   r_   )r   r   r   s      rb   r   zPandasLikeSeries.from_native   s0    s"2#4$	
 
 
 	
rd   r1   c                  |j         }t          |          r|n|g}|                                                    |d          }|                     ||          S )Nr   rZ   r   )r]   r    rk   r   r   )r   r   r   rS   arrrh   s         rb   
from_numpyzPandasLikeSeries.from_numpy   s\     0'--9ddD63355<<Sr<JJvw777rd   c                    | j         S rf   )r[   rg   s    rb   rZ   zPandasLikeSeries.name   s
    zrd   r.   c                    | j         j        }|dk    rt          || j        | j                  nt          | j         | j        | j                  S )Nobject)rh   r   r   r_   r]   r   )ra   native_dtypes     rb   r   zPandasLikeSeries.dtype   sR    {( x'' %\4=$BVWWW0T]D,@ 	
rd   comfloat | Nonespan	half_lifealphaadjustmin_samplesintignore_nullsc          	        | j         }|                                }	| j        t          j        u rZ|dk    r|r|	                                s-|                    |||||                                          }
n?d}t          |          |                    |||||||                                          }
d |
|	<   | 	                    |
          S )Nr   )r   r   halflifer   r   zscuDF only supports `ewm_mean` when there are no missing values or when both `min_period=0` and `ignore_nulls=False`)	ignore_na)
rh   isnar]   r   CUDFanyewmmeanNotImplementedErrorrz   )ra   r   r   r   r   r   r   r   sermask_nar   ro   s               rb   ewm_meanzPandasLikeSeries.ewm_mean   s     k((**>#666q   w{{}} $%PV !  $&& 
K  *#...WWT9e[&L   dff  w  (((rd   indicesint | Sequence[int]valuesc                   t          || j                  r2t          |j        | j        j        |         | j        | j                  }| j                            d          }||j        |<   | j	        |_	        | 
                    |          S )NrS   rT   T)deep)rw   r   r   rh   r   r]   r^   r   r{   rZ   rz   )ra   r   r   ss       rb   scatterzPandasLikeSeries.scatter  s    fdn-- 	!'*#3 $ 5	  F K$'' w  ###rd   c                   t          |j        | j        j        |j                 | j        | j                  }| j        t
          j        u r,t          t                    dk     r|	                                }d}| j        t
          j        u r&| j        |k     r|| j        j
        |j        j        <   d S || j        j
        |j        <   d S )Nr   )   )   r   )r   rh   r   r]   r^   r   PANDASr   npr   r{   r   )ra   r   r   values_nativemin_pd_versions        rb   _scatter_in_placez"PandasLikeSeries._scatter_in_place  s    !MKgn-/ 1	
 
 
 >#888]2=N=NQU=U=U)..00M N$999%666CDKW^2333/<DKW^,,,rd   r2   c                    t          |t          | j        j        | j                  | j        | j        | j                  }|                     | j                            |          d          S )N)dtype_backendrS   rT   rV   Tr   )	r   r   rh   r   r]   r^   r_   rz   astype)ra   r   pd_dtypes      rb   r
   zPandasLikeSeries.cast,  sk    ++DK,=t?STT/ 1M
 
 
   !3!3H!=!=RV WWWrd   
int | Nonec                    |Gt          |           dk    r"dt          |            d}t          |          | j        j        d         S | j        j        |         S )Nr   zlcan only call '.item()' if the Series is of length 1, or an explicit index is provided (Series is of length )r   )r   
ValueErrorrh   r{   )ra   r   ro   s      rb   itemzPandasLikeSeries.item6  sk    =4yyA~~[NQRVii[ [ [  !oo%;#A&&{&&rd   r)   c                z    ddl m}  || j                                        | j        | j        | j        d          S )Nr   r(   F)rS   rT   rV   validate_column_names)narwhals._pandas_like.dataframer)   rh   to_framer]   r^   r_   )ra   r)   s     rb   r   zPandasLikeSeries.to_frameB  sS    GGGGGG""K  ""/ 1M"'
 
 
 	
rd   	list[Any]c                    | j                                         }|r+| j                                                                        n| j                                        S rf   )r]   is_cudfrh   to_arrow	to_pylistto_list)ra   r   s     rb   r   zPandasLikeSeries.to_listM  sN    &..005<Wt{##%%//111$+BUBUBWBWWrd   lower_boundupper_boundclosedr/   c                T   | j         }t          | |          \  }}t          | |          \  }}|dk    r,|                    |          |                    |          z  }n|dk    r,|                    |          |                    |          z  }nk|dk    r,|                    |          |                    |          z  }n9|dk    r,|                    |          |                    |          z  }nt          |                     |                              |j	                  S )Nleftrightnoneboth)
rh   r   geltgtlerm   rz   aliasrZ   )ra   r   r   r   r   _ress          rb   
is_betweenzPandasLikeSeries.is_betweenQ  s    k1$DD;1$DD;V&&%%{(;(;;CCw&&%%{(;(;;CCv&&%%{(;(;;CCv&&%%{(;(;;CC    %%++CH555rd   otherc                \    |                      | j                            |                    S rf   )rz   rh   isinra   r   s     rb   is_inzPandasLikeSeries.is_inc  s&      !1!1%!8!8999rd   c                    | j         }|                    t          t          |                    |j        |j                  j        |         }|                     |          S )N)rZ   r   )rh   r   ranger   rZ   r   locrz   )ra   r   r   s      rb   arg_truezPandasLikeSeries.arg_truef  sM    kuSXXSXSYOOSTWX  (((rd   c                    | j         t          j        u r6| j        dk     r+| j                                                                        S | j                                        S Nr   )r]   r   r   r^   rh   to_numpyargminrg   s    rb   arg_minzPandasLikeSeries.arg_mink  sU    >#888T=RUY=Y=Y;''))00222{!!###rd   c                    | j         }| j        t          j        u r1| j        dk     r&|                                                                S |                                S r  )rh   r]   r   r   r^   r  argmax)ra   r   s     rb   arg_maxzPandasLikeSeries.arg_maxp  sP    k>#888T=RUY=Y=Y<<>>((***zz||rd   	predicatec                    t          |t                    st          | |          \  }}n|}|                     | j        j        |                                       | j                  S rf   )r   r   r   rz   rh   r   r   rZ   )ra   r	  r   other_natives       rb   filterzPandasLikeSeries.filterx  s[    )T** 	%6tYGGOA||$L  !>??EEdiPPPrd   r   c                    t          | |          \  }}|                     ||k                                  | j                  S rf   r   rz   r   rZ   ra   r   r   s      rb   __eq__zPandasLikeSeries.__eq__  =    -dE::
U  ..44TY???rd   c                    t          | |          \  }}|                     ||k                                  | j                  S rf   r  r  s      rb   __ne__zPandasLikeSeries.__ne__  r  rd   c                    t          | |          \  }}|                     ||k                                  | j                  S rf   r  r  s      rb   __ge__zPandasLikeSeries.__ge__  r  rd   c                    t          | |          \  }}|                     ||k                                  | j                  S rf   r  r  s      rb   __gt__zPandasLikeSeries.__gt__  =    -dE::
U  u--33DI>>>rd   c                    t          | |          \  }}|                     ||k                                  | j                  S rf   r  r  s      rb   __le__zPandasLikeSeries.__le__  r  rd   c                    t          | |          \  }}|                     ||k                                   | j                  S rf   r  r  s      rb   __lt__zPandasLikeSeries.__lt__  r  rd   c                    t          | |          \  }}|                     ||z                                | j                  S rf   r  r  s      rb   __and__zPandasLikeSeries.__and__  =    -dE::
U  u--33DI>>>rd   c                    t          | |          \  }}t          d|          }|                     |                    |                                        | j                  S Npd.Series[Any])r   r
   rz   r  r   rZ   r  s      rb   __rand__zPandasLikeSeries.__rand__  sU    -dE::
U#S))  U!3!344::49EEErd   c                    t          | |          \  }}|                     ||z                                | j                  S rf   r  r  s      rb   __or__zPandasLikeSeries.__or__  r  rd   c                    t          | |          \  }}t          d|          }|                     |                    |                                        | j                  S r!  )r   r
   rz   r%  r   rZ   r  s      rb   __ror__zPandasLikeSeries.__ror__  sU    -dE::
U#S))  E!2!23399$)DDDrd   c                    t          | |          \  }}|                     ||z                                 | j                  S rf   r  r  s      rb   __add__zPandasLikeSeries.__add__  r  rd   c                    t          | |          \  }}|                     | j                            |                                        | j                  S rf   )r   rz   rh   __radd__r   rZ   ra   r   r   r  s       rb   r+  zPandasLikeSeries.__radd__  I    24??<  !5!5l!C!CDDJJ49UUUrd   c                    t          | |          \  }}|                     ||z
                                | j                  S rf   r  r  s      rb   __sub__zPandasLikeSeries.__sub__  r  rd   c                    t          | |          \  }}|                     | j                            |                                        | j                  S rf   )r   rz   rh   __rsub__r   rZ   r,  s       rb   r1  zPandasLikeSeries.__rsub__  r-  rd   c                    t          | |          \  }}|                     ||z                                | j                  S rf   r  r  s      rb   __mul__zPandasLikeSeries.__mul__  r  rd   c                    t          | |          \  }}|                     | j                            |                                        | j                  S rf   )r   rz   rh   __rmul__r   rZ   r,  s       rb   r5  zPandasLikeSeries.__rmul__  r-  rd   c                    t          | |          \  }}|                     ||z                                | j                  S rf   r  r  s      rb   __truediv__zPandasLikeSeries.__truediv__  r  rd   c                    t          | |          \  }}|                     | j                            |                                        | j                  S rf   )r   rz   rh   __rtruediv__r   rZ   r,  s       rb   r9  zPandasLikeSeries.__rtruediv__  sI    24??<  !9!9,!G!GHHNNtyYYYrd   c                    t          | |          \  }}|                     ||z                                | j                  S rf   r  r  s      rb   __floordiv__zPandasLikeSeries.__floordiv__  s=    -dE::
U  ..44TY???rd   c                    t          | |          \  }}|                     | j                            |                                        | j                  S rf   )r   rz   rh   __rfloordiv__r   rZ   r,  s       rb   r=  zPandasLikeSeries.__rfloordiv__  sK    24??<  !:!:<!H!HIIOOPTPYZZZrd   c                    t          | |          \  }}|                     ||z                                | j                  S rf   r  r  s      rb   __pow__zPandasLikeSeries.__pow__  s=    -dE::
U  e,,2249===rd   c                    t          | |          \  }}|                     | j                            |                                        | j                  S rf   )r   rz   rh   __rpow__r   rZ   r,  s       rb   rA  zPandasLikeSeries.__rpow__  r-  rd   c                    t          | |          \  }}|                     ||z                                | j                  S rf   r  r  s      rb   __mod__zPandasLikeSeries.__mod__  r  rd   c                    t          | |          \  }}|                     | j                            |                                        | j                  S rf   )r   rz   rh   __rmod__r   rZ   r,  s       rb   rE  zPandasLikeSeries.__rmod__  r-  rd   ra   c                8    |                      | j                   S rf   )rz   rh   rg   s    rb   
__invert__zPandasLikeSeries.__invert__  s      $+...rd   c                4    | j                                         S rf   )rh   r   rg   s    rb   r   zPandasLikeSeries.any      {   rd   c                4    | j                                         S rf   )rh   allrg   s    rb   rK  zPandasLikeSeries.all  rI  rd   c                4    | j                                         S rf   )rh   minrg   s    rb   rM  zPandasLikeSeries.min  rI  rd   c                4    | j                                         S rf   )rh   maxrg   s    rb   rO  zPandasLikeSeries.max  rI  rd   floatc                4    | j                                         S rf   )rh   sumrg   s    rb   rR  zPandasLikeSeries.sum  rI  rd   c                4    | j                                         S rf   )rh   countrg   s    rb   rT  zPandasLikeSeries.count  s    {  """rd   c                4    | j                                         S rf   )rh   r   rg   s    rb   r   zPandasLikeSeries.mean  s    {!!!rd   c                    | j                                         sd}t          |          | j                                        S )Nz<`median` operation not supported for non-numeric input type.)r   
is_numericr"   rh   medianrn   s     rb   rX  zPandasLikeSeries.median  s?    z$$&& 	-PC',,,{!!###rd   ddofc               8    | j                             |          S NrY  )rh   stdra   rY  s     rb   r]  zPandasLikeSeries.std      {D)))rd   c               8    | j                             |          S r[  )rh   varr^  s     rb   ra  zPandasLikeSeries.var  r_  rd   c                   | j                                         }t          |          dk    rd S t          |          dk    rt          d          S t          |          dk    rdS ||                                z
  }|dz                                  }|dz                                  }|dk    r||dz  z  nt          d          S )Nr   r   nanr   g           g      ?)rh   dropnar   rP  r   )ra   ser_not_nullmm2m3s        rb   skewzPandasLikeSeries.skew	  s    {))++|!!4!##<<!##3|00222AQ$BQ$B%'1WW2S>>%,,>rd   c                *    t          | j                  S rf   )r   rh   rg   s    rb   r   zPandasLikeSeries.len  s    4;rd   c                ^    |                      | j                                        d          S )NTr   )rz   rh   r   rg   s    rb   is_nullzPandasLikeSeries.is_null  s)      !1!1!3!3 MMMrd   c                    | j         }| j                                        r|                     ||k    d          S d| j         d}t	          |          )NTr   z3`.is_nan` only supported for numeric dtype and not z, did you mean `.is_null`?)rh   r   rW  rz   r"   )ra   r   ro   s      rb   is_nanzPandasLikeSeries.is_nan  s]    k:  "" 	J$$SCZD$IIIjDJjjj#C(((rd   valueSelf | NonNestedLiteralstrategyFillNullStrategy | Nonelimitc                $   | j         }|?t          | |          \  }}|                     |                    |          d          }nG|                     |dk    r|                    |          n|                    |          d          }|S )N)rp  Tr   forward)rt  )rh   r   rz   fillnaffillbfill)ra   rp  rr  rt  r   r   native_valueres_sers           rb   	fill_nullzPandasLikeSeries.fill_null&  s     k6tUCCOA|''


..4 (  GG ''y(( 			&&&YYUY++#'	 (  G rd   c                Z    |                      | j                                                  S rf   )rz   rh   re  rg   s    rb   
drop_nullszPandasLikeSeries.drop_nulls<  s$      !3!3!5!5666rd   c                8    | j                             d          S )NF)re  )rh   nuniquerg   s    rb   n_uniquezPandasLikeSeries.n_unique?  s    {""%"000rd   nfractionwith_replacementseedc               d    |                      | j                            ||||                    S )N)r  fracreplacerandom_state)rz   rh   sample)ra   r  r  r  r  s        rb   r  zPandasLikeSeries.sampleB  s@       K(,<4   
 
 	
rd   c                Z    |                      | j                                                  S rf   )rz   rh   absrg   s    rb   r  zPandasLikeSeries.absP  s"      !2!2333rd   reversec                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S NT)skipna)rh   cumsumrz   ra   r  r   s      rb   cum_sumzPandasLikeSeries.cum_sumS  k     =DKd+++TTrT")))66ttt< 	
   (((rd   Tmaintain_orderr  c                   |                      | j                            | j                                        | j                            S )zuPandas always maintains order, as per its docstring.

        > Uniques are returned in order of appearance.
        r   )rz   rh   r   uniquerZ   )ra   r  s     rb   r  zPandasLikeSeries.unique[  sD    
   K!!$+"4"4"6"6TY!GG
 
 	
rd   c                Z    |                      | j                                                  S rf   )rz   rh   diffrg   s    rb   r  zPandasLikeSeries.diffd  s$      !1!1!3!3444rd   c                \    |                      | j                            |                    S rf   )rz   rh   shiftra   r  s     rb   r  zPandasLikeSeries.shiftg  s&      !2!21!5!5666rd   old!Sequence[Any] | Mapping[Any, Any]newSequence[Any]return_dtypec          	        | j          d}t          | j        j        | j                  }|r"t          ||| j        | j        | j                  nd }|                                 }|	                    | j         |||
                    ||          i          }|                     | j                                                            || j         d          |                                       | j                   }	|	                                                                |                                                                 k    rud|                     |                                  |	                                z                                d                                           }
t)          |
          |	S )N_tmp)r   r   )onhowzYreplace_strict did not replace all non-null values.

The following did not get replaced: Fr  )rZ   r   rh   r   r]   r   r^   r_   rp   	DataFramer   rz   r   merger   rm  rR  r  r  r   r   )ra   r  r  r  tmp_namer   r   	namespacer   r   ro   s              rb   replace_strictzPandasLikeSeries.replace_strictj  s    i%%%)$+*;T=QRR $$%    	 --//	##YXy'7'75'7'I'IJ
 
 ""K  ""((49&(II(S
 

%	

 	 >>!!T\\^^%7%7%9%999P7;{{DLLNN?U[UcUcUeUeCe7f7f7m7m  ~C7m  8D  8D  8L  8L  8N  8NP P  S//!rd   
descending
nulls_lastc                   |rdnd}|                      | j                            | |                                        | j                  S )Nlastfirst)	ascendingna_position)rz   rh   sort_valuesr   rZ   )ra   r  r  r  s       rb   sortzPandasLikeSeries.sort  sQ     *7ff  K##*n+#VV
 

%	

	rd   str | Hashablec                    || j         k    r7|                     t          | j        || j        | j                  d          S | S )Nr   Tr   )rZ   rz   r   rh   r]   r^   )ra   rZ   s     rb   r   zPandasLikeSeries.alias  s^    49$$K#'#7$($9	   $( %    rd   r   bool | Noner9   c               0    |                      ||          S )N)r   r   )r  )ra   r   r   s      rb   	__array__zPandasLikeSeries.__array__  s     }}5t}444rd   )r   c                  | j         j        }t          | j        |j                  rD| j        j        8| j                            d          j                            d           j	        }n| j	        }|
                                                                }d|p| j                                        i}|rt          |j                  t          v rd| j        t           j        u r| j        dk     rn$|                    dt)          d          i           |pt          t          |j                           }|s<t          |j                  t*          v r!|pt*          t          |j                           } |j        dd|i|S )NUTCr   r  na_valuerc  r    )r_   dtypesrw   r   Datetime	time_zonedtconvert_time_zonereplace_time_zonerh   r   r   r]   r   r   PANDAS_TO_NUMPY_DTYPE_MISSINGr   r   r^   updaterP   PANDAS_TO_NUMPY_DTYPE_NO_MISSINGr  )ra   r   r   r  r   has_missingkwargss          rb   r  zPandasLikeSeries.to_numpy  sb    %dj&/22 	tz7K7W))%003EEdKKRAAAffhhllnn"($*P$2F2N2N2P2P!Q 	I3qw<<+HHH#~'<<<AV Z B B z5<<8999H:3qw<<HE 	Ls17||/OOOK=c!'llKEqz000000rd   r"  c                   | j         t          j        u r| j        S | j         t          j        u r| j                                        S | j         t          j        u r| j                                        S d| j          }t          |          )NzUnknown implementation: )	r]   r   r   rh   r   	to_pandasMODIN
_to_pandasrm   rn   s     rb   r  zPandasLikeSeries.to_pandas  s    >#888;!^%888;((***!^%999;))+++?)=??S!!!rd   	pl.Seriesc                N    dd l } |j        |                                           S Nr   )polarsfrom_pandasr  )ra   pls     rb   	to_polarszPandasLikeSeries.to_polars  s*    r~dnn..///rd   c                    |                      | j                            d                                         | j                  S )NFkeeprz   rh   
duplicatedr   rZ   rg   s    rb   	is_uniquezPandasLikeSeries.is_unique  s<      $+"8"8e"8"D"D!DEEKKDIVVVrd   c                X    | j                                                                         S rf   )rh   r   rR  rg   s    rb   
null_countzPandasLikeSeries.null_count  s"    {!!%%'''rd   c                    |                      | j                            d                                         | j                  S )Nr  r  r  rg   s    rb   is_first_distinctz"PandasLikeSeries.is_first_distinct  s<      $+"8"8g"8"F"F!FGGMMdiXXXrd   c                    |                      | j                            d                                         | j                  S )Nr  r  r  rg   s    rb   is_last_distinctz!PandasLikeSeries.is_last_distinct  s<      $+"8"8f"8"E"E!EFFLLTYWWWrd   c                   t          |t                    s!dt          |           }t          |          |r| j        j        S | j        j        S )Nz/argument 'descending' should be boolean, found )rw   r   rl   	TypeErrorrh   is_monotonic_decreasingis_monotonic_increasing)ra   r  ro   s      rb   	is_sortedzPandasLikeSeries.is_sorted  sS    *d++ 	!VDDTDTVVCC..  	7;66;66rd   r  parallel
str | None	normalizec                  ddl m} | j        dn| j        }|p|rdnd}| j                            dd|                                          }||g|_        |r|                    |d	          } |j        || 
          S )z-Parallel is unused, exists for compatibility.r   r(   Nr   
proportionrT  F)re  r  r  )r  r   )	r   r)   r[   rh   value_countsreset_indexcolumnsr  r   )	ra   r  r  rZ   r  r)   index_name_value_name_	val_counts	            rb   r  zPandasLikeSeries.value_counts  s     	HGGGGG!%!3ggFyE||gK,,u	 - 
 

+-- 	 )+6	 	L!--kU-KKI.".y$GGGGrd   quantileinterpolationr6   c                :    | j                             ||          S )N)qr  )rh   r  )ra   r  r  s      rb   r  zPandasLikeSeries.quantile  s     {##hm#LLLrd   maskc                    | j         }t          | |          \  }}t          | |          \  }}|                    ||          }|                     |          S rf   )rh   r   whererz   )ra   r  r   r   r   r   s         rb   zip_withzPandasLikeSeries.zip_with  sV    k*4664+D%885iie$$  %%%rd   c                \    |                      | j                            |                    S rf   )rz   rh   headr  s     rb   r  zPandasLikeSeries.head  &      !1!1!!4!4555rd   c                \    |                      | j                            |                    S rf   )rz   rh   tailr  s     rb   r  zPandasLikeSeries.tail  r  rd   decimalsc                ^    |                      | j                            |                    S )N)r  )rz   rh   round)ra   r  s     rb   r   zPandasLikeSeries.round  s)      !2!2H!2!E!EFFFrd   	separator
drop_firstc                  ddl m} |                                 }| j        }| j        rt          | j                  nd}| | d}|                                                                }|                    |||||d          }	|rUt          |	j
                  ^ }
}|g|
}t          t          |	|| j        | j                  ||i| j        | j                  }	 |j        |	|           S )	Nr   r(   r   nullrC   )prefix
prefix_sepr  dummy_nar   )r  rS   rT   r   )r   r)   rp   rh   r[   r   r   r   get_dummiesry   r  r   r   r^   r]   r   )ra   r  r  r)   plxr   rZ   null_col_pl	has_nullsr   colsnull_col_pdoutput_orders                rb   
to_dummieszPandasLikeSeries.to_dummies  s&   GGGGGG''))"&*4s4:".y...KKMM%%''	 ! ! 
 
  
	!%fn!5!5T;'/$/L&L$*?AU  %k2#3 $ 5  F /".vtDDDDrd   offsetc                R    |                      | j        j        |d |                   S rf   )rz   rh   r{   )ra   r  r  s      rb   gather_everyzPandasLikeSeries.gather_every+  s&      !1&)!)!<===rd   .Self | NumericLiteral | TemporalLiteral | Nonec                    |rt          | |          nd\  }}|rt          | |          nd\  }}| j        t          j        u rddini }|                      | j        j        ||fi |          S )N)NNaxisr   )r   r]   r   r  rz   rh   clip)ra   r   r   r   lowerupperr  s          rb   r  zPandasLikeSeries.clip.  s     <GX$T;777L 	5 <GX$T;777L 	5 !% 48L L L&!RT  !1!1%!I!I&!I!IJJJrd   pa.Array[Any]c                    | j         t          j        u r| j                                        S dd l}|j                            | j                  S r  )r]   r   r   rh   r   pyarrowArrayr  )ra   pas     rb   r   zPandasLikeSeries.to_arrow<  sK    >#666;'')))x##DK000rd   c                v    | j                                         }| j        |_        |                     |          S rf   )rh   moderZ   rz   )ra   r   s     rb   r  zPandasLikeSeries.modeD  s2    !!##i  (((rd   c                   | j                                          }|s|                                n)t          |           |                                z
  |z   dz
  }|                     |          S )Nr   )rh   r   r  r   rz   )ra   r  not_na_seriesr   s       rb   	cum_countzPandasLikeSeries.cum_countI  ss    ))+++ HM  """T]11333mCaG 	
   (((rd   c                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S r  )rh   cumminrz   r  s      rb   cum_minzPandasLikeSeries.cum_minR  r  rd   c                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S r  )rh   cummaxrz   r  s      rb   cum_maxzPandasLikeSeries.cum_maxZ  r  rd   c                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S r  )rh   cumprodrz   r  s      rb   cum_prodzPandasLikeSeries.cum_prodb  sk     >DKt,,,TTrT"**$*77"= 	
   (((rd   window_sizecenterc                   | j                             |||                                          }|                     |          S Nwindowmin_periodsr-  )rh   rollingrR  rz   ra   r,  r   r-  r   s        rb   rolling_sumzPandasLikeSeries.rolling_sumj  sG    $$K % 
 

#%% 	   (((rd   c                   | j                             |||                                          }|                     |          S r/  )rh   r3  r   rz   r4  s        rb   rolling_meanzPandasLikeSeries.rolling_meanp  sG    $$K % 
 

$&& 	   (((rd   c                   | j                             |||                              |          }|                     |          S Nr0  r\  )rh   r3  ra  rz   ra   r,  r   r-  rY  r   s         rb   rolling_varzPandasLikeSeries.rolling_varv  M     $$K % 
 

#4#.. 	   (((rd   c                   | j                             |||                              |          }|                     |          S r9  )rh   r3  r]  rz   r:  s         rb   rolling_stdzPandasLikeSeries.rolling_std~  r<  rd   Iterator[Any]c              #  H   K   | j                                         E d {V  d S rf   )rh   __iter__rg   s    rb   rA  zPandasLikeSeries.__iter__  s2      ;'')))))))))))rd   c                    |+| j                                                                         n| j         |k                                    S rf   )rh   r   r   r   s     rb   __contains__zPandasLikeSeries.__contains__  s>    +0=t{!!%%'''t{e?S>X>X>Z>ZZrd   c                    | j         }|                     |t          d          k    |t          d          k     z            S )Nz-infinf)rh   rz   rP  )ra   r   s     rb   	is_finitezPandasLikeSeries.is_finite  s8    K  !eFmm"3E%LL8H!IJJJrd   methodr5   c                  |dk    rdn|}| j         }| j        t          j        u r| j        dk     r| j                                        r| j                                        x}	                                r^ | j        
                                j        di | d|i                    | d                              |d| d          |         }n| j                            |d| d          }|                     |          S )	Nordinalr  )rd  _is_nullr  F)rG  	na_optionr  pctr  )rZ   r]   r   r   r^   r   
is_integerrh   r   r   r   assigngroupbyrankrz   )ra   rG  r  	pd_methodrZ   	null_maskranked_seriess          rb   rP  zPandasLikeSeries.rank  s>   %22GG	y N$999%,,
%%'' -"k..0005577 -$$&&: :",,,i8: :D***++$$",n	   
  M !K,, F*nRW -  M   ///rd   binslist[float | int] | None	bin_countinclude_breakpointc                  ddl m}m} ddlm} |                                 }|dk    s|Ft          |          dk    r3i }|rg |d<   g |d<    |j        |                    |          |           S | j	        
                                dk     r|(|dd           |t          |          dz
            d	}nCt          d
|          }	|dk    rdgdgd	}n% |dd|	dz             dd           ||	          d	}|s|d=  |j        |                    |          |           S || j	                                        | j	                                        }}
|
|k    r
|
dz  }
|dz  }|dk    rH|g| j	        
                                gd	}|s|d=  |j        |                    |          |           S  ||
||dz             }d }|                    | j	        ||n|d          }|                    dd                              |j        j        d          }i }|r|
|dd          n|j        j        |d<   |                    d          |d<    |j        |                    |          |           S )Nr   )linspacezerosr(   r   
breakpointrT  r   )shape)r[  rT  r   g      ?g      ?T)rT  include_lowestF)re  r  )
fill_value)drop)numpyrY  rZ  r   r)   rp   r   r   r  rh   rT  r
   rM  rO  cutr  reindexcat
categoriesr   r   r  )ra   rT  rV  rW  rY  rZ  r)   r   r   rT  r  r  rd  r   s                 rb   histzPandasLikeSeries.hist  s"    	*)))))))GGGGGG&&(( >>d.3t99>>D! (%'\"DM2&22<<3E3EtTTTT;""&*122hSYYQR]9S9S9STTUI..>>+.%1#>>DD '/hq!UQY&?&?&C!&U!3!3!3 D & '&2&22<<3E3EtTTTT ;??,,dkoo.?.?5E~~A~~',g9J9J9L9L8MNN) +\*6*6r||D7I7ISWXXXX8E5)a-88DI
 VVK"*	  
 

 ((5(AAIIN%! J 
 
  	V-1-=abb6<CUD***55W.".r||D/A/A4PPPPrd   basec                
   | j         }| j        }t          |j        |          }|                                rpdd l}| j         }|                    |          |                    |          z  } t          |          ||j        |j	                  }| 
                    |          S |dk    rdd lm} ddlm}	 |j        j        }
t#          d|                    |
|                    } |	|j        | j                  }t)          |d| j        | j        | j                  }|                    |||j        |j	                  }n)t/          j        |          t/          j        |          z  }| 
                    |          S N)rS   r   )r   rZ   r  )r   r'   )r   r   rZ   )rh   r]   r   r   r   cupylogrl   r   rZ   rz   pyarrow.computecomputenarwhals._arrow.utilsr   array	_pa_arrayr
   logbr_   r   r^   r   r   )ra   rf  rh   rS   r   cplog_arrresult_nativepcr   ca
result_arrnw_dtype	out_dtypes                 rb   rj  zPandasLikeSeries.log  s   -)&,~VVV!!## 	4[FffVnnrvvd||3G(DLL6;WWWM$$]333I%%((((((FFFFFF'B/T1B1BCCJ//
OOH0$% I #,,)6<fk -  MM F6NNRVD\\9M  ///rd   c                   | j         }| j        }t          |j        |          }|                                rZdd l}| j         }|                    |          } t          |          ||j        |j	                  }| 
                    |          S |dk    rdd lm} ddlm} |j        j        }	t#          d|                    |	                    }
 ||
j        | j                  }t'          |d| j        | j        | j                  }|                    |
||j        |j	                  }nt-          j        |          }| 
                    |          S rh  )rh   r]   r   r   r   ri  exprl   r   rZ   rz   rk  rl  rm  r   rn  ro  r
   r_   r   r^   r   r   )ra   rh   rS   r   rq  exp_arrrs  rt  r   ru  rv  rw  rx  s                rb   rz  zPandasLikeSeries.exp  sl   -)&,~VVV!!## 	4[FffVnnG(DLL6;WWWM$$]333I%%((((((FFFFFF'B/<<J//
OOH0$% I #,,)6<fk -  MM F6NNM  ///rd   r   c                     t          |           S rf   r   rg   s    rb   r   zPandasLikeSeries.str=  s    .t444rd   r   c                     t          |           S rf   r   rg   s    rb   r  zPandasLikeSeries.dtA  s    0666rd   r   c                     t          |           S rf   r   rg   s    rb   rc  zPandasLikeSeries.catE  s    +D111rd   r   c                l    t          | j        d          sd}t          |          t          |           S )Nry   z>Series must be of PyArrow List type to support list namespace.)hasattrrh   r  r   rn   s     rb   ry   zPandasLikeSeries.listI  s5    t{F++ 	!RCC.. ,T222rd   r   c                l    t          | j        d          sd}t          |          t          |           S )NstructzBSeries must be of PyArrow Struct type to support struct namespace.)r  rh   r  r   rn   s     rb   r  zPandasLikeSeries.structP  s5    t{H-- 	!VCC.. .t444rd   )
rR   r   rS   r   rT   rU   rV   r,   rW   rX   )rW   r   )rW   r#   )rW   r+   )rt   ru   rW   r%   )rt   r~   rW   r%   )rV   r,   rW   r%   )r   r   r   r   rW   r%   )r   r   r   r-   rZ   r   r   r   r   r   rW   r%   )r   r   rW   r   )r   r   r   r-   rW   r%   )r   r1   r   r-   rW   r%   )rW   r   )rW   r.   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   rW   rQ   )r   r   r   r   rW   r%   )r   r%   r   r%   rW   rX   )r   r2   rW   r%   )r   r   rW   r   )rW   r)   )rW   r   )r   r   r   r   r   r/   rW   r%   )r   r   rW   rQ   )rW   rQ   )rW   r   )r	  r   rW   rQ   )r   r   rW   rQ   )ra   rQ   rW   rQ   )rW   r   )rW   rP  )rY  r   rW   rP  )rW   r   )rp  rq  rr  rs  rt  r   rW   r%   )
r  r   r  r   r  r   r  r   rW   r%   )r  r   rW   r%   )r  r   rW   rQ   )r  r   rW   rQ   )r  r  r  r  r  r   rW   rQ   )r  r   r  r   rW   rQ   )rZ   r  rW   r%   )r   r   r   r  rW   r9   rf   )rW   r"  )rW   r  )rW   r%   )r  r   rW   r   )
r  r   r  r   rZ   r  r  r   rW   r)   )r  rP  r  r6   rW   rP  )r  r   r   r   rW   rQ   )r  r   rW   r%   )r  r   rW   r%   )r  r   r  r   rW   r)   )r  r   r  r   rW   r%   )r   r  r   r  rW   r%   )rW   r  )r,  r   r   r   r-  r   rW   r%   )
r,  r   r   r   r-  r   rY  r   rW   r%   )rW   r?  )r   r   rW   r   )rG  r5   r  r   rW   r%   )rT  rU  rV  r   rW  r   rW   r)   )rf  rP  rW   r%   )rW   r   )rW   r   )rW   r   )rW   r   )rW   r   )|__name__
__module____qualname__rc   propertyrh   rp   rs   r}   r   r   rz   classmethodr   staticmethodr   r   r   rZ   r   r   r   r   r
   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r#  r%  r'  r)  r+  r/  r1  r3  r5  r7  r9  r;  r=  r?  rA  rC  rE  rG  r   rK  rM  rO  rR  rT  r   rX  r]  ra  rj  r   rm  ro  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+  r5  r7  r;  r>  rA  rC  rF  rP  re  rj  rz  r   r  rc  ry   r  r  rd   rb   rQ   rQ   l   s
              * # # # X#" " " "
 
 
 
9 9 9 9
 
 
 


 
 
 
 GL 	 	 	 	 	 	  "&T T T T T [T2 * * * \* 
 
 
 [
 8 8 8 [8    X 
 
 
 X
) ) ) )>$ $ $ $= = = =&X X X X
' 
' 
' 
'	
 	
 	
 	
X X X X6 6 6 6$: : : :) ) ) )
$ $ $ $
   Q Q Q Q@ @ @ @@ @ @ @@ @ @ @? ? ? ?@ @ @ @? ? ? ?? ? ? ?F F F F
? ? ? ?E E E E
? ? ? ?V V V V? ? ? ?V V V V? ? ? ?V V V V? ? ? ?Z Z Z Z@ @ @ @[ [ [ [> > > >V V V V? ? ? ?V V V V/ / / /
! ! ! !! ! ! !! ! ! !! ! ! !! ! ! !# # # #" " " "$ $ $ $* * * ** * * *? ? ? ?       
N N N N) ) ) )   ,7 7 7 71 1 1 1
 
 
 
4 4 4 4) ) ) ) 04 
 
 
 
 
 
5 5 5 57 7 7 7! ! ! !F      5 5 5 51 1 1 1 1 1 1." " " "0 0 0 0W W W W( ( ( (Y Y Y YX X X X7 7 7 7H H H H&M M M M
& & & &6 6 6 66 6 6 6G G G GE E E E@> > > >K K K K1 1 1 1) ) ) )
) ) ) )) ) ) )) ) ) )) ) ) )) ) ) )) ) ) )) ) ) )) ) ) )* * * *[ [ [ [K K K K0 0 0 0:FQ FQ FQ FQP"0 "0 "0 "0H"0 "0 "0 "0H 5 5 5 X5 7 7 7 X7 2 2 2 X2 3 3 3 X3 5 5 5 X5 5 5rd   rQ   )R
__future__r   typingr   r   r   r   r   r	   r
   r`  r   narwhals._compliantr    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   narwhals._utilsr   r   r   r   narwhals.dependenciesr    r!   narwhals.exceptionsr"   typesr#   r$   pandaspdr  r  r  r  typing_extensionsr%   r&   narwhals._arrow.typingr'   r   r)   rr   r+   r,   r-   narwhals.dtypesr.   narwhals.typingr/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r  r  rQ   r  rd   rb   <module>r     s   " " " " " " R R R R R R R R R R R R R R R R R R     + + + + + + I I I I I I M M M M M M K K K K K K L L L L L L O O O O O O	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	            K J J J J J J J 5 5 5 5 5 5       ........666666CCCCCCCCCCCC55555555%%%%%%                              $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#!$ "!)! ! ! 0i5 i5 i5 i5 i5{3' i5 i5 i5 i5 i5rd   