
    }i׻                    6   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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" 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- er}d dl.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5Z6d dl7Z8d dl9Z:d dl;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJ d dl%mKZKmLZL d dlMmNZN d dlOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[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-d.d/d.d0d1d2d1d3d4d5d4d6d7d7d8d8d9Z^i dd7d d7d!d7d#d7d$d7d&d7d'd7d)d7d*d7d,d7d-d7d/d7d0d7d2d7d3d7d5d7d6d7d7d8d8d9Z_ G d: d;ee                   Z` G d< d=ed>                   ZadS )?    )annotationsN)TYPE_CHECKINGAnyCallableLiteraloverload)EagerSeriesEagerSeriesHistPandasLikeSeriesCatNamespace!PandasLikeSeriesDateTimeNamespace)PandasLikeSeriesListNamespacePandasLikeSeriesStringNamespace)PandasLikeSeriesStructNamespace)NUMPY_VERSIONalign_and_extract_native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)Implementation
is_list_of
no_default)is_numpy_array_1dis_pandas_like_series)InvalidOperationError)HashableIterableIteratorSequence)
ModuleType)Self	TypeAlias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                     e Zd Zdd	Zedd
            ZddZddZddZddZ	ddZ
ddddZedddddd(            Zedd+            Zedd,            Zedd.            Zedd0            Zedd1            Zedd3            Zed4             Zd d>Zed!dC            ZeddDd"dF            ZddDd#dHZd$dJZd%d&dLZd'dNZd(dPZd)dUZd*dWZd+dXZd,dYZ d,dZZ!d-d\Z"d.d^Z#d.d_Z$d/dbZ%d/dcZ&d0deZ'd0dfZ(d*dgZ)d*dhZ*d*diZ+d*djZ,d*dkZ-d*dlZ.d*dmZ/d*dnZ0d*doZ1d*dpZ2d*dqZ3d*drZ4d*dsZ5d*dtZ6d*duZ7d*dvZ8d*dwZ9d*dxZ:d*dyZ;d*dzZ<d*d{Z=d*d|Z>d+d}Z?d1d~Z@d1dZAddZBddZCd2dZDd,dZEd2dZFd2dZGd3dZHd3dZId4dZJd4dZKd,dZLd+dZMd+dZNd5dZOd6dZPd+dZQd,dZRd7dZSd+dZTd8dZUddd9dZVd+dZWd:dZXd;dZYd<dZZd=dZ[d>dZ\d%ddd>dZ]d?dZ^d@dZ_d+dZ`d,dZad+dZbd+dZcdAdZddBdńZedCdɄZfdDd˄Zgd:d̄Zhd:d̈́ZidEdτZjd+dЄZkd+dфZldFdԄZmdGdքZndHdׄZodId؄ZpdJdلZqdKdۄZrdLdބZsd8d߄Ztd8dZud8dZvd8dZwdMdZxdMdZydNdZzdNdZ{dOdZ|dPdZ}d+dZ~dQdZdRdZdSdZdTdZd+dZd+dZd+dZd+dZdUdZdVdZdWdZdXdZedYd            ZedZd
            Zed[d            Zed\d            Zed]d            ZdS (^  PandasLikeSeriesnative_seriesr   implementationr   versionr5   returnNonec               V    |j         | _        || _        || _        || _        d| _        d S )NF)name_name_native_series_implementation_version
_broadcast)selfr[   r\   r]   s       P/home/jrussi/.local/lib/python3.11/site-packages/narwhals/_pandas_like/series.py__init__zPandasLikeSeries.__init__q   s2     #'
+-      c                    | j         S N)rc   rg   s    rh   nativezPandasLikeSeries.native   s    ""rj   r)   c                    | j                                         r| j                                         S dt          | j                    }t	          |          )Nz!Expected pandas/modin/cudf, got: )rd   is_pandas_liketo_native_namespacetypeAssertionErrorrg   msgs     rh   __native_namespace__z%PandasLikeSeries.__native_namespace__   sT    ..00 	>';;===N$t7K2L2LNNS!!!rj   r2   c                :    ddl m}  || j        | j                  S )Nr   r1   )narwhals._pandas_like.namespacer2   rd   re   )rg   r2   s     rh   __narwhals_namespace__z'PandasLikeSeries.__narwhals_namespace__   s,    GGGGGG""4#7GGGrj   rows'SizedMultiIndexSelector[pd.Series[Any]]r*   c                    t          |t                    rt          |          n|}|                     | j        j        |                   S rl   )
isinstancetuplelist_with_nativern   ilocrg   rz   s     rh   _gatherzPandasLikeSeries._gather   s>    'e44>tDzzz$  !1$!7888rj   _SliceIndex | rangec                    |                      | j        j        t          |j        |j        |j                                     S rl   )r   rn   r   slicestartstopstepr   s     rh   _gather_slicezPandasLikeSeries._gather_slice   s9      KU4:ty$)DDE
 
 	
rj   c                F    |                      | j        | j        |          S N)r\   r]   )	__class__rn   rd   )rg   r]   s     rh   _with_versionzPandasLikeSeries._with_version   s)    ~~K(<g  
 
 	
rj   Fpreserve_broadcastseriesr   boolc               f    |                      || j        | j                  }|r| j        |_        |S r   )r   rd   re   rf   )rg   r   r   results       rh   r   zPandasLikeSeries._with_native   s?    4#7   
 
  	0 $Frj    N)ra   dtypeindexdataIterable[Any]contextr6   ra   strr   IntoDType | Noner   c               &   |j         }|j        }|                                }i }	|rt          |d ||          |	d<   n1|                                rd|	d<   n	 |t          |          r||	d<   |                      |j        |fd|i|	|          S )Nr   Fcopyr   ra   r   )rd   re   rq   r   	is_pandaslenfrom_nativeSeries)
clsr   r   ra   r   r   r\   r]   nskwdss
             rh   from_iterablezPandasLikeSeries.from_iterable   s     !0"//11! 	&4UD.RYZZDMM'')) $V SZZ  %WyryAADADAA7SSSrj   objTypeIs[Any]c                     t          |           S rl   )r#   )r   s    rh   
_is_nativezPandasLikeSeries._is_native   s    $S)))rj   c              2     | ||j         |j                  S r   )rd   re   )r   r   r   s      rh   r   zPandasLikeSeries.from_native   s    s4(?IYZZZZrj   r:   c                  |j         }t          |          r|n|g}|                                                    |d          }|                     ||          S )Nr   ra   r   )rd   r"   rq   r   r   )r   r   r   r\   arrrn   s         rh   
from_numpyzPandasLikeSeries.from_numpy   s\     0'--9ddD63355<<Sr<JJvw777rj   Sequence[Self]c                H   |d                                          j        }d |D             }t          d t          ||          D                       }||                    |                   j        j        }g }|D ]}|j        rEt          |j        ||j        	                                |          }|
                    |          }	nB|j        j        |ur2t          |j        ||j                  }|
                    |          }	n|}	|                    |	           |S )Nr   c                ,    g | ]}t          |          S  )r   ).0ss     rh   
<listcomp>z:PandasLikeSeries._align_full_broadcast.<locals>.<listcomp>   s    ***a3q66***rj   c              3  .   K   | ]\  }}|j         |V  d S rl   )rf   )r   lengthr   s      rh   	<genexpr>z9PandasLikeSeries._align_full_broadcast.<locals>.<genexpr>   sA       
 
 vq

 
 
 
 
 
rj   )	is_nestedseries_classr\   )rv   r   maxzipr   rn   rf   r   r   r   r   r   rd   append)
r   r   r   lengthstarget_lengthidx	reindexedr   rn   	compliants
             rh   _align_full_broadcastz&PandasLikeSeries._align_full_broadcast   s=   //118**6*** 
 
$'$8$8
 
 
 
 
 W]]=1129?	 	( 	(A| 	2HcQW->->-@-@v   NN622		s**"18SARSSSNN622			Y''''rj   c                    | j         S rl   )rb   rm   s    rh   ra   zPandasLikeSeries.name   s
    zrj   r7   c                    | j         j        }|dk    rt          || j        | j                  nt          | j         | j        | j                  S )Nobject)rn   r   r   re   rd   r   )rg   native_dtypes     rh   r   zPandasLikeSeries.dtype   sR    {( x'' %\4=$BVWWW0T]D,@ 	
rj   c                D    t           rdd l}|S t          | j                  S Nr   )r   numpyr   rd   )rg   nps     rh   _array_funcszPandasLikeSeries._array_funcs   s,     	I"4#7888rj   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)
rn   isnard   r   CUDFanyewmmeanNotImplementedErrorr   )rg   r   r   r   r   r   r   r   sermask_nar   ru   s               rh   ewm_meanzPandasLikeSeries.ewm_mean   s     k((**>#666q   w{{}} $%PV !  $&& 
K  *#...WWT9e[&L   dff  w  (((rj   indicesvaluesin_placeLiteral[True]c                   d S rl   r   rg   r   r   r   s       rh   scatterzPandasLikeSeries.scatter  	     srj   )r   Literal[False]c                   d S rl   r   r   s       rh   r   zPandasLikeSeries.scatter  r   rj   Self | Nonec                  | j         }| j        |j        }}t          |j        |j        |         |          }|r|n|                    d          }|                                r@|rt          dk     r|                                }| j        dk     r|                                }||j	        |<   |rd n| 
                    |          S )Nr   T)deep)   )   r   )rd   rn   r   r   r   r   r   _backend_versionto_numpyr   r   )	rg   r   r   r   implr[   indices_nativevalues_nativer   s	            rh   r   zPandasLikeSeries.scatter#  s    
 #(,W^~!M=.~>t
 
 
 #+M0B0B0B0M0M>> 	; 5MD00 - 2 2 4 4$v--!/!8!8!:!:&3N#>ttT%6%6v%>%>>rj   r;   c                B   | j         |k    r,| j        j         dk    r|                     | j        d          S t          |t	          | j        j         | j                  | j        | j                  }|                     | j                            |          d          S )Nr   Tr   )dtype_backendr\   r]   )r   rn   r   r   r   rd   re   astype)rg   r   pd_dtypes      rh   castzPandasLikeSeries.cast9  s    :4;#4#@#@ $$T[T$JJJ++DK,=t?STT/M	
 
 
   !3!3H!=!=RV WWWrj   
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   
ValueErrorrn   r   )rg   r   ru   s      rh   itemzPandasLikeSeries.itemG  sk    =4yyA~~[NQRVii[ [ [  !oo%;#A&&{&&rj   r0   c                n    ddl m}  || j                                        | j        | j        d          S )Nr   r/   F)r\   r]   validate_column_names)narwhals._pandas_like.dataframer0   rn   to_framerd   re   )rg   r0   s     rh   r  zPandasLikeSeries.to_frameS  sM    GGGGGG""K  ""/M"'	
 
 
 	
rj   	list[Any]c                    | j                                         }|r+| j                                                                        n| j                                        S rl   )rd   is_cudfrn   to_arrow	to_pylistto_list)rg   r	  s     rh   r  zPandasLikeSeries.to_list]  sN    &..005<Wt{##%%//111$+BUBUBWBWWrj   lower_boundupper_boundclosedr8   c                d   | j         }t          | |          \  }}t          | |          \  }}|dk    r,|                    |          |                    |          z  }n|dk    r,|                    |          |                    |          z  }ns|dk    r,|                    |          |                    |          z  }nA|dk    r,|                    |          |                    |          z  }nt          |           |                     |                              |j	                  S )Nleftrightnoneboth)
rn   r   geltgtler   r   aliasra   )rg   r  r  r  r   _ress          rh   
is_betweenzPandasLikeSeries.is_betweena  s    k1$DD;1$DD;V&&%%{(;(;;CCw&&%%{(;(;;CCv&&%%{(;(;;CCv&&%%{(;(;;CC     %%++CH555rj   otherc                \    |                      | j                            |                    S rl   )r   rn   isinrg   r  s     rh   is_inzPandasLikeSeries.is_ins  s&      !1!1%!8!8999rj   c                    | j         }t          |          }| j                            |          }|                    ||j        |j                  j        |         }|                     |          S )N)ra   r   )	rn   r   r   aranger   ra   r   locr   )rg   r   sizer   r   s        rh   arg_truezPandasLikeSeries.arg_truev  sa    k3xx ''--t#(#)DDHM  (((rj   c                4    | j                                         S rl   )rn   argminrm   s    rh   arg_minzPandasLikeSeries.arg_min}      {!!###rj   c                4    | j                                         S rl   )rn   argmaxrm   s    rh   arg_maxzPandasLikeSeries.arg_max  r*  rj   	predicatec                    t          |t                    st          | |          \  }}n|}|                     | j        j        |                                       | j                  S rl   )r    r   r   r   rn   r$  r  ra   )rg   r.  r  other_natives       rh   filterzPandasLikeSeries.filter  s[    )T** 	%6tYGGOA||$L  !>??EEdiPPPrj   r>   c                R    t          | j                  r| j        j        d         nd S r   r   rn   r   rm   s    rh   firstzPandasLikeSeries.first  s&    &)$+&6&6@t{""D@rj   c                R    t          | j                  r| j        j        d         nd S )Nr3  rm   s    rh   lastzPandasLikeSeries.last  s&    '*4;'7'7At{##TArj   opCallable[..., PandasLikeSeries]c                   t          | |          \  }}| j        ot          |dd          }t          | j        j                  dk    rCt          |t                    r.|j        dk    r#dd l} |j	        | |j
                              }|                      |||          |                              | j                  S )Nrf   Tzlarge_string[pyarrow]addr   )rr   r   )r   rf   getattrr   rn   r   r}   __name__pyarrowscalarlarge_stringr   r  ra   )rg   r8  r  r   r0  r   pas          rh   _with_binaryzPandasLikeSeries._with_binary  s    4T5AA\!_Sd1S1S!""&===<-- >u$$ !   $29\8I8IJJJL  BsL!!6H ! 
 

%	

	rj   c                f    |                      fd|                              | j                  S )Nc                     ||           S rl   r   )xyr8  s     rh   <lambda>z5PandasLikeSeries._with_binary_right.<locals>.<lambda>  s    bbAhh rj   )rB  r  ra   )rg   r8  r  s    ` rh   _with_binary_rightz#PandasLikeSeries._with_binary_right  s3      !6!6!6!6>>DDTYOOOrj   r   c                B    |                      t          j        |          S rl   )rB  operatoreqr   s     rh   __eq__zPandasLikeSeries.__eq__        e444rj   c                B    |                      t          j        |          S rl   )rB  rJ  ner   s     rh   __ne__zPandasLikeSeries.__ne__  rM  rj   c                B    |                      t          j        |          S rl   )rB  rJ  r  r   s     rh   __ge__zPandasLikeSeries.__ge__  rM  rj   c                B    |                      t          j        |          S rl   )rB  rJ  r  r   s     rh   __gt__zPandasLikeSeries.__gt__  rM  rj   c                B    |                      t          j        |          S rl   )rB  rJ  r  r   s     rh   __le__zPandasLikeSeries.__le__  rM  rj   c                B    |                      t          j        |          S rl   )rB  rJ  r  r   s     rh   __lt__zPandasLikeSeries.__lt__  rM  rj   c                B    |                      t          j        |          S rl   )rB  rJ  and_r   s     rh   __and__zPandasLikeSeries.__and__  s      666rj   c                B    |                      t          j        |          S rl   )rH  rJ  rZ  r   s     rh   __rand__zPandasLikeSeries.__rand__  s    &&x}e<<<rj   c                B    |                      t          j        |          S rl   )rB  rJ  or_r   s     rh   __or__zPandasLikeSeries.__or__        u555rj   c                B    |                      t          j        |          S rl   )rH  rJ  r_  r   s     rh   __ror__zPandasLikeSeries.__ror__      &&x|U;;;rj   c                B    |                      t          j        |          S rl   )rB  rJ  r;  r   s     rh   __add__zPandasLikeSeries.__add__  ra  rj   c                B    |                      t          j        |          S rl   )rH  rJ  r;  r   s     rh   __radd__zPandasLikeSeries.__radd__  rd  rj   c                B    |                      t          j        |          S rl   )rB  rJ  subr   s     rh   __sub__zPandasLikeSeries.__sub__  ra  rj   c                B    |                      t          j        |          S rl   )rH  rJ  rj  r   s     rh   __rsub__zPandasLikeSeries.__rsub__  rd  rj   c                B    |                      t          j        |          S rl   )rB  rJ  mulr   s     rh   __mul__zPandasLikeSeries.__mul__  ra  rj   c                B    |                      t          j        |          S rl   )rH  rJ  ro  r   s     rh   __rmul__zPandasLikeSeries.__rmul__  rd  rj   c                B    |                      t          j        |          S rl   )rB  rJ  truedivr   s     rh   __truediv__zPandasLikeSeries.__truediv__  s      !15999rj   c                B    |                      t          j        |          S rl   )rH  rJ  rt  r   s     rh   __rtruediv__zPandasLikeSeries.__rtruediv__  s    &&x'7???rj   c                B    |                      t          j        |          S rl   )rB  rJ  floordivr   s     rh   __floordiv__zPandasLikeSeries.__floordiv__  s      !2E:::rj   c                B    |                      t          j        |          S rl   )rH  rJ  ry  r   s     rh   __rfloordiv__zPandasLikeSeries.__rfloordiv__  s    &&x'8%@@@rj   c                B    |                      t          j        |          S rl   )rB  rJ  powr   s     rh   __pow__zPandasLikeSeries.__pow__  ra  rj   c                B    |                      t          j        |          S rl   )rH  rJ  r~  r   s     rh   __rpow__zPandasLikeSeries.__rpow__  rd  rj   c                B    |                      t          j        |          S rl   )rB  rJ  modr   s     rh   __mod__zPandasLikeSeries.__mod__  ra  rj   c                B    |                      t          j        |          S rl   )rH  rJ  r  r   s     rh   __rmod__zPandasLikeSeries.__rmod__  rd  rj   c                8    |                      | j                   S rl   )r   rn   rm   s    rh   
__invert__zPandasLikeSeries.__invert__  s      $+...rj   c                4    | j                                         S rl   )rn   r   rm   s    rh   r   zPandasLikeSeries.any      {   rj   c                4    | j                                         S rl   )rn   allrm   s    rh   r  zPandasLikeSeries.all  r  rj   c                4    | j                                         S rl   )rn   minrm   s    rh   r  zPandasLikeSeries.min  r  rj   c                4    | j                                         S rl   )rn   r   rm   s    rh   r   zPandasLikeSeries.max  r  rj   floatc                4    | j                                         S rl   )rn   sumrm   s    rh   r  zPandasLikeSeries.sum   r  rj   c                4    | j                                         S rl   )rn   countrm   s    rh   r  zPandasLikeSeries.count  s    {  """rj   c                4    | j                                         S rl   )rn   r   rm   s    rh   r   zPandasLikeSeries.mean  s    {!!!rj   c                    | j                                         sd}t          |          | j                                        S )Nz<`median` operation not supported for non-numeric input type.)r   
is_numericr$   rn   medianrt   s     rh   r  zPandasLikeSeries.median	  s?    z$$&& 	-PC',,,{!!###rj   ddofc               8    | j                             |          S Nr  )rn   stdrg   r  s     rh   r  zPandasLikeSeries.std      {D)))rj   c               8    | j                             |          S r  )rn   varr  s     rh   r  zPandasLikeSeries.var  r  rj   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      ?rn   dropnar   r  r   )rg   ser_not_nullmm2m3s        rh   skewzPandasLikeSeries.skew  s    {))++|!!4|!!<<|!!3<,,...d[[]]d[[]]!#qrRW~~eEll:rj   c                l   | j                                         }t          |          dk    rd S t          |          dk    rt          d          S ||                                z
  }|dz                                  }|dz                                  }|dk    r||dz  z  dz
  nt          d          S )Nr   r   r  r      g      @r  )rg   r  r  r  m4s        rh   kurtosiszPandasLikeSeries.kurtosis"  s    {))++|!!4|!!<<<,,...d[[]]d[[]]%'1WWrRU|c!!%,,>rj   c                *    t          | j                  S rl   )r   rn   rm   s    rh   r   zPandasLikeSeries.len-  s    4;rj   c                ^    |                      | j                                        d          S )NTr   )r   rn   r   rm   s    rh   is_nullzPandasLikeSeries.is_null2  s)      !1!1!3!3 MMMrj   c                    | j         }| j                                        sd| j         d}t          |          |                     ||k    d          S )Nz3`.is_nan` only supported for numeric dtype and not z, did you mean `.is_null`?Tr   )rn   r   r  r$   r   )rg   r   ru   s      rh   is_nanzPandasLikeSeries.is_nan5  s\    kz$$&& 	-n
nnnC',,,   EEErj   valueSelf | NonNestedLiteralstrategyFillNullStrategy | Nonelimitc                   | j         }| j        t          j        u r| j        dk     rddini }t          j                    5  t          j        ddt                     |8t          | |          \  }}| 
                     |j        dd|i|d	          }n9| 
                    |d
k    r |j        dd|i|n |j        dd|i|d	          }d d d            n# 1 swxY w Y   |S )Nr  downcastFignorez&The 'downcast' keyword .*is deprecated)categoryr  Tr   forwardr  r   )rn   rd   r   PANDASr   warningscatch_warningsfilterwarningsFutureWarningr   r   fillnaffillbfill)	rg   r  r  r  r   kwargsr  native_valueres_sers	            rh   	fill_nullzPandasLikeSeries.fill_null=  s    k #~'<<<%,,  	 	 $&& 	 	#B]     ":4"G"G<++CJ<<\<V<<QU ,   ++9,, CI44E4V444"999&99'+	 ,  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  s   BCC"Cc                   | j                                         r|d}t          |          | j                                        sd| j         d}t          |          | j        }||j        j        j        n|}||k    }|	                    dd           | 
                    |                    ||          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`?FT)inplacer   )rd   r	  r   r   r  r$   rn   arrayna_valuer  r   mask)rg   r  ru   r   fillr  s         rh   fill_nanzPandasLikeSeries.fill_nan\  s    '')) 	+u}JC%c***z$$&& 	-r$*rrrC',,,K).qw}%%EAvE4(((  d!3!3 MMMrj   c                Z    |                      | j                                                  S rl   )r   rn   r  rm   s    rh   
drop_nullszPandasLikeSeries.drop_nullsl  s$      !3!3!5!5666rj   c                8    | j                             d          S )NF)r  )rn   nuniquerm   s    rh   n_uniquezPandasLikeSeries.n_uniqueo  s    {""%"000rj   nfractionwith_replacementseedc               d    |                      | j                            ||||                    S )N)r  fracreplacerandom_state)r   rn   sample)rg   r  r  r  r  s        rh   r  zPandasLikeSeries.sampler  s@       K(,<4   
 
 	
rj   c                Z    |                      | j                                                  S rl   )r   rn   absrm   s    rh   r  zPandasLikeSeries.abs  s"      !2!2333rj   reversec                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S NT)skipnar6  )rn   cumsumr   rg   r  r   s      rh   cum_sumzPandasLikeSeries.cum_sum  k     =DKd+++TTrT")))66ttt< 	
   (((rj   Tmaintain_orderr  c                   |                       t          | j                  | j                                        | j                            S )zuPandas always maintains order, as per its docstring.

        > Uniques are returned in order of appearance.
        r   )r   rr   rn   uniquera   )rg   r  s     rh   r  zPandasLikeSeries.unique  sB    
   !2dk!2!24;3E3E3G3Gdi!X!X!XYYYrj   c                Z    |                      | j                                                  S rl   )r   rn   diffrm   s    rh   r  zPandasLikeSeries.diff  s$      !1!1!3!3444rj   c                \    |                      | j                            |                    S rl   )r   rn   shiftrg   r  s     rh   r  zPandasLikeSeries.shift  s&      !2!21!5!5666rj   defaultPandasLikeSeries | NoDefaultoldSequence[Any]newreturn_dtypec                  |                                  }| j        }| j        }| j        }t	          |j        |          }	|rt          ||	|| j                  nd }
|                    |          	                    |          }|dk    }|
                    ||
| j                  }||	|                    |	          }|j        |                    ||d                   }|j        |_        |t           u r|                                | z  }|                                rU|                     ||                                       d                                          }d| }t-          |          |                    |d           }n)t/          | |          \  }}|                    ||          }|                     |          S )Nr   )r   ra   )r   Fr  zYreplace_strict did not replace all non-null values.

The following did not get replaced: )rv   r   rn   rd   r   r   r   re   Indexget_indexerr   ra   convert_dtypesr   wherer   r!   notnar   r   r  r  r$   r   )rg   r  r  r  r  	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VV 	 s##//77ai%%cTY%GG
M$=#222OOJ #(9(9+tQ(O(OP$lj  #\\^^|<N!!## 
1%%f^&<==V5V11WYY !N;KN N  ,C000)//TBBMM !9w G GA~)//^LLM  ///rj   
descending
nulls_lastc                   |rdnd}|                      | j                            | |                                        | j                  S )Nr7  r4  )	ascendingna_position)r   rn   sort_valuesr  ra   )rg   r
  r  r  s       rh   sortzPandasLikeSeries.sort  sQ     *7ff  K##*n+#VV
 

%	

	rj   str | Hashablec                ~    || j         k    r1|                     t          | j        || j                  d          S | S )Nr   Tr   )ra   r   r   rn   rd   )rg   ra   s     rh   r  zPandasLikeSeries.alias  sM    49$$t{D9MNNN#' %    rj   r   bool | NonerB   c               0    |                      ||          S )N)r   r   )r   )rg   r   r   s      rh   	__array__zPandasLikeSeries.__array__  s     }}5t}444rj   )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 rE|                    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  r  r   r   )re   dtypesr}   r   Datetime	time_zonedtconvert_time_zonereplace_time_zonern   r   r   rd   r	  r   PANDAS_TO_NUMPY_DTYPE_MISSINGupdater   PANDAS_TO_NUMPY_DTYPE_NO_MISSINGr   )rg   r   r   r  r   has_missingr  s          rh   r   zPandasLikeSeries.to_numpy  s5    %dj&/22 	tz7K7W))%003EEdKKRAAAffhhllnn"($*P$2F2N2N2P2P!Q 	I3qw<<+HHHMM:uU||4555H:3qw<<HE 	Ls17||/OOOK=c!'llKEqz000000rj   pd.Series[Any]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: )	rd   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   	pl.Seriesc                N    dd l } |j        |                                           S r   )polarsfrom_pandasr$  )rg   pls     rh   	to_polarszPandasLikeSeries.to_polars  s*    r~dnn..///rj   c                    |                      | j                            d                                         | j                  S )NFkeepr   rn   
duplicatedr  ra   rm   s    rh   	is_uniquezPandasLikeSeries.is_unique  s<      $+"8"8e"8"D"D!DEEKKDIVVVrj   c                X    | j                                                                         S rl   )rn   r   r  rm   s    rh   
null_countzPandasLikeSeries.null_count  s"    {!!%%'''rj   c                    |                      | j                            d                                         | j                  S )Nr4  r.  r0  rm   s    rh   is_first_distinctz"PandasLikeSeries.is_first_distinct  s<      $+"8"8g"8"F"F!FGGMMdiXXXrj   c                    |                      | j                            d                                         | j                  S )Nr7  r.  r0  rm   s    rh   is_last_distinctz!PandasLikeSeries.is_last_distinct  s<      $+"8"8f"8"E"E!EFFLLTYW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   	TypeErrorrn   is_monotonic_decreasingis_monotonic_increasing)rg   r
  ru   s      rh   	is_sortedzPandasLikeSeries.is_sorted  sS    *d++ 	!VDDTDTVVCC..  	7;66{22rj   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   
proportionr  F)r  r  r@  )r  r   )	r  r0   rb   rn   value_countsreset_indexcolumnsr  r   )	rg   r  r>  ra   r@  r0   index_name_value_name_	val_counts	            rh   rC  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Grj   quantileinterpolationr@   c                :    | j                             ||          S )N)qrJ  )rn   rI  )rg   rI  rJ  s      rh   rI  zPandasLikeSeries.quantile-  s     {##hm#LLLrj   r  c                    | j         }t          | |          \  }}t          | |          \  }}|                    ||          }|                     |          S rl   )rn   r   r  r   )rg   r  r  r   r  r  s         rh   zip_withzPandasLikeSeries.zip_with2  sV    k*4664+D%885iie$$  %%%rj   c                \    |                      | j                            |                    S rl   )r   rn   headr  s     rh   rP  zPandasLikeSeries.head9  &      !1!1!!4!4555rj   c                \    |                      | j                            |                    S rl   )r   rn   tailr  s     rh   rS  zPandasLikeSeries.tail<  rQ  rj   decimalsc                ^    |                      | j                            |                    S )N)rT  )r   rn   round)rg   rT  s     rh   rV  zPandasLikeSeries.round?  s)      !2!2H!2!E!EFFFrj   c                    | j         }|                     |j                  r"dd lm} |                     ||j                  }n"| j        j        }|                     ||          }| 	                    |          S r   )
rn   is_native_dtype_pyarrowr   pyarrow.computecompute_apply_pyarrow_compute_funcfloorr   _apply_array_funcr   rg   rn   pcresult_native
array_funcs        rh   r\  zPandasLikeSeries.floorB  s    ''55 	G(((((( <<VRXNNMM*0J 226:FFM  ///rj   c                    | j         }|                     |j                  r"dd lm} |                     ||j                  }n"| j        j        }|                     ||          }| 	                    |          S r   )
rn   rX  r   rY  rZ  r[  ceilr   r]  r   r^  s        rh   rc  zPandasLikeSeries.ceilM  s    ''55 	G(((((( <<VRWMMMM*/J 226:FFM  ///rj   	separator
drop_firstc                  ddl m} |                                 }| j        }| j        rt          | j                  nd}| | d}|                                                                }|                    |||||d          }	|rIt          |	j
                  ^ }
}|g|
}t          t          |	|| j                  ||i| j                  }	 |j        |	|           S )	Nr   r/   r   nullrL   )prefix
prefix_sepre  dummy_nar   )rE  r\   r   )r  r0   rv   rn   rb   r   r   r   get_dummiesr   rE  r   r   rd   r   )rg   rd  re  r0   plxr   ra   null_col_pl	has_nullsr   colsnull_col_pdoutput_orders                rh   
to_dummieszPandasLikeSeries.to_dummiesX  s   GGGGGG''))"&*4s4:".y...KKMM%%''	 ! ! 
 
  	!%fn!5!5T;'/$/L&v|T=QRR$k2#3  F
 /".vtDDDDrj   offsetc                R    |                      | j        j        |d |                   S rl   )r   rn   r   )rg   r  rs  s      rh   gather_everyzPandasLikeSeries.gather_everyu  s&      !1&)!)!<===rj   c                   t          | |          \  }}t          | |          \  }}| j        }|                                rddini }| j        }|                                sb|                     |          r|                    ||k    |          }d }|                     |          r|                    ||k    |          }d }|                      |j        ||fi |          S Naxisr   	r   rd   is_modinrn   r   r   r  r   clip)	rg   r  r  r  lowerupperr   r  r   s	            rh   r{  zPandasLikeSeries.clipx  s    +D+>>5+D+>>5#04!G&!R~~ 		 u%% fou==u%% fou==  UE!D!DV!D!DEEErj   c                D   t          | |          \  }}| j        }|                                rddini }| j        }|                                s1|                     |          r|                    ||k    |          }d }|                      |j        |fi |          S rw  ry  )rg   r  r  r|  r   r  r   s          rh   
clip_lowerzPandasLikeSeries.clip_lower  s    +D+>>5#04!G&!R~~ 	DOOE$:$: 	 \\&E/599FE  U!=!=f!=!=>>>rj   c                F   t          | |          \  }}| j        }|                                rddini }| j        }|                                s1|                     |          r|                    ||k    |          }d }|                      |j        dd|i|          S )Nrx  r   r}  r   ry  )rg   r  r  r}  r   r  r   s          rh   
clip_upperzPandasLikeSeries.clip_upper  s    +D+>>5#04!G&!R~~ 	DOOE$:$: 	 \\&E/599FE  !C!C5!CF!C!CDDDrj   pa.Array[Any]c                    | j         t          j        u r| j                                        S dd l}|j                            | j                  S r   )rd   r   r   rn   r
  r>  Arrayr*  )rg   rA  s     rh   r
  zPandasLikeSeries.to_arrow  sK    >#666;'')))x##DK000rj   r/  r<   c                   | j                                         }| j        |_        |                     |dk    r|                    d          n|          S )Nr   r   )rn   modera   r   rP  )rg   r/  r   s      rh   r  zPandasLikeSeries.mode  sH    !!##i  45==QfMMMrj   c                   | j                                          }|s|                                n)t          |           |                                z
  |z   dz
  }|                     |          S Nr   )rn   r   r  r   r   )rg   r  not_na_seriesr   s       rh   	cum_countzPandasLikeSeries.cum_count  ss    ))+++ HM  """T]11333mCaG 	
   (((rj   c                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S r  )rn   cumminr   r  s      rh   cum_minzPandasLikeSeries.cum_min  r  rj   c                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S r  )rn   cummaxr   r  s      rh   cum_maxzPandasLikeSeries.cum_max  r  rj   c                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S r  )rn   cumprodr   r  s      rh   cum_prodzPandasLikeSeries.cum_prod  sk     >DKt,,,TTrT"**$*77"= 	
   (((rj   window_sizecenterc                   | j                             |||                                          }|                     |          S Nwindowmin_periodsr  )rn   rollingr  r   rg   r  r   r  r   s        rh   rolling_sumzPandasLikeSeries.rolling_sum  sG    $$K % 
 

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

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

#4#.. 	   (((rj   c                   | j                             |||                              |          }|                     |          S r  )rn   r  r  r   r  s         rh   rolling_stdzPandasLikeSeries.rolling_std  r  rj   Iterator[Any]c              #     K   | j                                         rd}t          |          | j                                        E d {V  d S )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)rd   r	  r   rn   __iter__rt   s     rh   r  zPandasLikeSeries.__iter__  sd      '')) 	+{  &c***;'')))))))))))rj   c                    |+| j                                                                         n| j         |k                                    S rl   )rn   r   r   r   s     rh   __contains__zPandasLikeSeries.__contains__  s>    +0=t{!!%%'''t{e?S>X>X>Z>ZZrj   c                    | j         }|                     |t          d          k    |t          d          k     z            S )Nz-infinf)rn   r   r  )rg   r   s     rh   	is_finitezPandasLikeSeries.is_finite  s8    K  !eFmm"3E%LL8H!IJJJrj   methodr?   c               @   |dk    rdn|}| j         }| j        t          j        u rH| j        dk     r<t          | j        j        | j                  dk    r| j                                        r| 	                                x}
                                r| d}|                                 }|                                                     |j                            |                              |                    j        }|                     |                    |                              |d| d          j        d d d	f                                       | j                   S |                     | j                            |d| d                    S )
Nordinalr4  r  numpy_nullable_is_nullr/  F)r  	na_optionr  pctr   )ra   rd   r   r  r   r   rn   r   
is_integerr  r   ry   r  with_columns_expr_from_seriesr  r   groupbyrankr   )	rg   r  r
  	pd_methodra   	null_mask	mask_namerl  dfs	            rh   r  zPandasLikeSeries.rank  s   %22GG	y N$999%,,!$+"3T5IJJ   
%%''  #llnn,1133   )))I--//Cci44Y??EEiPPQQ 
 $$

9%%$$",n	    aaad	 	 eDI	   K F*nRW   
 
 	
rj   binslist[float]include_breakpointc                   t                               | |                              |                                          S N)r  )_PandasHistfrom_series	with_binsr  )rg   r  r  s      rh   hist_from_binszPandasLikeSeries.hist_from_bins*  s4     ##D=O#PPYt__XZZ	
rj   	bin_countc                   t                               | |                              |                                          S r  )r  r  with_bin_countr  )rg   r  r  s      rh   hist_from_bin_countz$PandasLikeSeries.hist_from_bin_count3  s6     ##D=O#PP^I&&XZZ	
rj   basec                   | j         }|                     |j                  r$dd lm d	fd}|                     ||          }n)| j        j        d
fd}|                     ||          }| 	                    |          S )Nr   car-   r^   c                0                         |           S rl   )logb)r  r  r_  s    rh   pc_logz$PandasLikeSeries.log.<locals>.pc_logA  s    wwr4(((rj   r   r3   c                2     |                      z  S rl   r   )r   r  log_funcs    rh   	array_logz'PandasLikeSeries.log.<locals>.array_logH  s    x}}xx~~55rj   )r  r-   r^   r-   )r   r3   r^   r3   )
rn   rX  r   rY  rZ  r[  r   logr]  r   )rg   r  rn   r  r`  r  r  r_  s    `    @@rh   r  zPandasLikeSeries.log<  s    ''55 	F(((((() ) ) ) ) ) ) !<<VVLLMM(,H6 6 6 6 6 6 6 !2269EEM  ///rj   c                    | j         }|                     |j                  r"dd lm} |                     ||j                  }n"| j        j        }|                     ||          }| 	                    |          S r   )
rn   rX  r   rY  rZ  r[  expr   r]  r   r^  s        rh   r  zPandasLikeSeries.expN  s    ''55 	G(((((( <<VRVLLMM*.J 226:FFM  ///rj   c                \    |                      | j                            d                    S )N      ?)r   rn   r~  rm   s    rh   sqrtzPandasLikeSeries.sqrtZ  s$      !5!5666rj   c                    | j         }|                     |j                  r"dd lm} |                     ||j                  }n"| j        j        }|                     ||          }| 	                    |          S r   )
rn   rX  r   rY  rZ  r[  sinr   r]  r   r^  s        rh   r  zPandasLikeSeries.sin]      ''55 		G(((((( << MM
 *.J 226:FFM  ///rj   c                    | j         }|                     |j                  r"dd lm} |                     ||j                  }n"| j        j        }|                     ||          }| 	                    |          S r   )
rn   rX  r   rY  rZ  r[  cosr   r]  r   r^  s        rh   r  zPandasLikeSeries.cosl  r  rj   r   c                :    | j         }t          ||          dk    S )Nr   r>  )rd   r   )rg   r   r   s      rh   rX  z(PandasLikeSeries.is_native_dtype_pyarrow{  s"    # dCCCyPPrj   rn   r3   pc_func,Callable[[ChunkedArrayAny], ChunkedArrayAny]c                    ddl m} t          |          } ||j        j                  } ||j        | j                  }t          |d| j        | j                  } ||||j        |j	                  S )Nr   )r   r>  )r   r   ra   )
narwhals._arrow.utilsr   rr   r  	_pa_arrayre   r   rd   r   ra   )rg   rn   r  r   
native_cls
result_arrnw_dtype	out_dtypes           rh   r[  z,PandasLikeSeries._apply_pyarrow_compute_func  s     	CBBBBB&\\
WV\344
++JOT]KK,i!5t}
 
	 ziv|&+
 
 
 	
rj   ra  (Callable[[NativeSeriesT], NativeSeriesT]c                    t          |          } ||          }| j                                        r |||j        |j                  n|S )N)r   ra   )rr   rd   r	  r   ra   )rg   rn   ra  r  r  s        rh   r]  z"PandasLikeSeries._apply_array_func  sY     &\\
Z''
 #++--JJzFKHHHH	
rj   c               z    |r&|                                                                  n|                                 S rl   )r  r4  )rg   r   s     rh   	any_valuezPandasLikeSeries.any_value  s0    ,8Jt  &&(((djjllJrj   r   c                     t          |           S rl   r   rm   s    rh   r   zPandasLikeSeries.str  s    .t444rj   r   c                     t          |           S rl   r   rm   s    rh   r  zPandasLikeSeries.dt  s    0666rj   r   c                     t          |           S rl   r   rm   s    rh   catzPandasLikeSeries.cat  s    +D111rj   r   c                l    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  s5    t{F++ 	!RCC.. ,T222rj   r   c                l    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  s5    t{H-- 	!VCC.. .t444rj   )r[   r   r\   r   r]   r5   r^   r_   )r^   r   )r^   r)   )r^   r2   )rz   r{   r^   r*   )rz   r   r^   r*   )r]   r5   r^   r*   )r   r   r   r   r^   r*   )r   r   r   r6   ra   r   r   r   r   r   r^   r*   )r   r   r^   r   )r   r   r   r6   r^   r*   )r   r:   r   r6   r^   r*   )r   r*   r^   r   )r^   r   )r^   r7   )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   r^   r   )r   r;   r^   r*   rl   )r   r   r^   r   r^   r0   )r^   r  )r  r   r  r   r  r8   r^   r*   )r  r   r^   r*   )r^   r*   )r^   r   )r.  r   r^   r*   )r^   r>   )r8  r9  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   r^   r*   )r  r   r^   r*   )r  r   r^   r*   )r  r   r^   r*   )
r  r  r  r  r  r  r  r   r^   rZ   )r
  r   r  r   r^   rZ   )ra   r  r^   r*   )r   r   r   r  r^   rB   )r^   r"  )r^   r'  )r
  r   r^   r   )
r  r   r>  r   ra   r?  r@  r   r^   r0   )rI  r  rJ  r@   r^   r  )r  r   r  r   r^   r*   )rT  r   r^   r*   )rd  r   re  r   r^   r0   )r  r   rs  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  r   r^   r*   )r^   r  )r  r   r^   r   )r  r?   r
  r   r^   r*   )r  r  r  r   r^   r0   )r  r   r  r   r^   r0   )r  r  r^   r*   )r   r   r^   r   )rn   r3   r  r  r^   r3   )rn   r3   ra  r  r^   r3   )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   ra   r   r   r   r   r   r   r  r  r  r  r!  r&  r)  r-  r1  r4  r7  rB  rH  rL  rP  rR  rT  rV  rX  r[  r]  r`  rc  rf  rh  rk  rm  rp  rr  ru  rw  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  r  r  r  r  r	  r  r  r  r   r$  r,  r2  r4  r6  r8  r=  rC  rI  rN  rP  rS  rV  r\  rc  rr  ru  r{  r  r  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rX  r[  r]  r  r   r  r  r   r  r   rj   rh   rZ   rZ   p   s               # # # X#" " " "H H H H
9 9 9 9
 
 
 


 
 
 

 GL        "&T T T T T [T0 * * * \* [ [ [ [[ 8 8 8 [8    [,    X 
 
 
 X
 9 9 X9) ) ) )>    X IN     X
 @E? ? ? ? ? ?,X X X X
' 
' 
' 
' 
'
 
 
 
X X X X6 6 6 6$: : : :) ) ) )$ $ $ $$ $ $ $
Q Q Q QA A A AB B B B    P P P P5 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 57 7 7 7= = = =6 6 6 6< < < <6 6 6 6< < < <6 6 6 6< < < <6 6 6 6< < < <: : : :@ @ @ @; ; ; ;A A A A6 6 6 6< < < <6 6 6 6< < < <
/ / / /
! ! ! !! ! ! !! ! ! !! ! ! !! ! ! !# # # #" " " "$ $ $ $* * * ** * * *; ; ; ;	? 	? 	? 	?       
N N N NF F F F   >N N N N 7 7 7 71 1 1 1
 
 
 
4 4 4 4) ) ) ) 04 Z Z Z Z Z Z5 5 5 57 7 7 750 50 50 50n      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3 3 3 3H H H H&M M M M
& & & &6 6 6 66 6 6 6G G G G	0 	0 	0 	0	0 	0 	0 	0E E E E:> > > >F F F F(? ? ? ?E E E E1 1 1 1N N N N
) ) ) )) ) ) )) ) ) )) ) ) )) ) ) )) ) ) )) ) ) )) ) ) )* * * *[ [ [ [K K K K#
 #
 #
 #
J
 
 
 

 
 
 
0 0 0 0$
0 
0 
0 
07 7 7 70 0 0 00 0 0 0Q Q Q Q
 
 
 
	
 	
 	
 	
K K K K 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 5rj   rZ   c                  h    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dS ).r  rZ   _seriesr^   r0   c                    | j                                         j        j        }| j                                         j        } | || j                  | j                   S )Nr   )r  ry   
_dataframer   rv   	DataFrame_data)rg   r   r  s      rh   r  z_PandasHist.to_frame  sT    l99;;FRL5577A	{99TZ00$,GGGGrj   r   c                <    | j                                         dk     S r  )r  r  rm   s    rh   is_empty_seriesz_PandasHist.is_empty_series  s    |!!##a''rj   argint | list[float]rD   c               r    |                      |          }| j        r|                     |          |dS d|iS )N
breakpointr  r  )_zeros_breakpoint_calculate_breakpoint)rg   r  r  s      rh   series_emptyz_PandasHist.series_empty  sF    C   	S"&"<"<S"A"AERRRrj   rB   c                   | j         j        j        }t          |t                    r ||          n |t          |          dz
            S r  )r  r   zerosr}   r   r   )rg   r  r  s      rh   r  z_PandasHist._zeros  sD    )/'S11JuuSzzzuuSXX\7J7JJrj   Nr  )labelsr  breakslist[float] | _1DArrayr  Sequence[str] | Noner  Literal['left', 'right']r"  c               p    | j                                         j        } || j        ||dk    |d          S )Nr  T)r  r  r  include_lowest)r  rv   cutrn   )rg   r  r  r  r  s        rh   _cutz_PandasHist._cut  sI     l//115sKG#
 
 
 	
rj   r  )r  r   r  endnum_samplesr   Literal['both', 'none']c               P    | j         j                            ||||dk              S )Nr  )r   r   numendpoint)r  r   linspace)rg   r   r  r  r  s        rh   _linear_spacez_PandasHist._linear_space  s4     |(11c{Vv=M 2 
 
 	
rj   r  c                    | j                                         | j                                         }}||k    r
|dz  }|dz  }|                     |||dz             S )z6Prepare bins for histogram calculation from bin_count.r  r   )rn   r  r   r!  )rg   r  r|  r}  s       rh   _calculate_binsz_PandasHist._calculate_bins  sZ    {(($+//*;*;uE>>SLESLE!!%	A>>>rj   r  c                    |                      |          }|                    dd                              |j        j        d          }|                    dd           | j        r|dd          |dS d	|iS )
NTF)r  r  r   )
fill_value)dropr  r   r	  r  )r  rC  reindexr  
categoriesrD  r  )rg   r  r(  r  s       rh   _calculate_histz_PandasHist._calculate_hist  s     YYt__
 ''t%'@@HHN%! I 
 
 	tT222 	<"&qrr(U;;;rj   r  r  )r  r  r^   rD   )r  r  r^   rB   )r  r  r  r  r  r  r^   r"  )
r   r  r  r  r  r   r  r  r^   rB   )r  r   r^   rB   )r  r  r^   rD   )r=  r  r  __annotations__r  r  r  r  r  r!  r#  r)  r   rj   rh   r  r    s         H H H H( ( ( (
       K K K K (,+2
 
 
 
 
 
. +1

 

 

 

 

 

? ? ? ?           rj   r  )r"  r  )b
__future__r   rJ  r  typingr   r   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   narwhals._typing_compatr   narwhals._utilsr   r    r!   narwhals.dependenciesr"   r#   narwhals.exceptionsr$   collections.abcr%   r&   r'   r(   typesr)   pandaspdr)  r+  r>  rA  typing_extensionsr*   r+   r,   narwhals._arrow.typingr-   narwhals._compliant.seriesr.   r  r0   rx   r2   narwhals._pandas_like.typingr3   narwhals._typingr4   r5   r6   narwhals.dtypesr7   narwhals.typingr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   r*  r   r  rZ   r  r   rj   rh   <module>rC     s   " " " " " " "   B B B B B B B B B B B B B B < < < < < < < < 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                          1 0 0 0 0 0 B B B B B B B B B B J J J J J J J J 5 5 5 5 5 5  HFFFFFFFFFFFF      9999999999666666333333CCCCCCCCCCCC::::::******88888888%%%%%%                            !HNGGG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#!$ "!)! ! ! 0D5 D5 D5 D5 D5{3' D5 D5 D5N"J  J  J  J  J /"AB J  J  J  J  J rj   