
    hh                    *   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
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" 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rwd dl.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5 d dl6Z7d dl8Z9d dl:Z;d dl<m=Z=m>Z>m?Z? d dl@mAZA d dlBmCZC d dlDmEZE d dlFmGZG d dl%mHZHmIZI d dlJmKZK d dlLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZ 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,d.d/d0d/d1d2d3d2d4d5d5d6d6d7Z]i dd5dd5dd5d!d5d"d5d$d5d%d5d'd5d(d5d*d5d+d5d-d5d.d5d0d5d1d5d3d5d4d5d5d6d6d7Z^ G d8 d9ee                   Z_ G d: d;ed<                   Z`dS )=    )annotationsN)TYPE_CHECKINGAnyCallableLiteralcast)EagerSeriesEagerSeriesHistPandasLikeSeriesCatNamespace!PandasLikeSeriesDateTimeNamespace)PandasLikeSeriesListNamespacePandasLikeSeriesStringNamespace)PandasLikeSeriesStructNamespace)	align_and_extract_native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parse_version)is_numpy_array_1dis_pandas_like_series)InvalidOperationError)HashableIterableIteratorMappingSequence)
ModuleType)Self	TypeAliasTypeIs)ChunkedArrayAny)HistDataPandasLikeDataFramePandasLikeNamespace)Version_LimitedContext)DType)ClosedIntervalFillNullStrategyInto1DArray	IntoDTypeModeKeepStrategyNonNestedLiteralNumericLiteralPythonLiteral
RankMethodRollingInterpolationMethodSizedMultiIndexSelectorTemporalLiteral_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dd	Zedd
            Zdd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ddBZddCZddEZdddGZddIZddKZddPZddRZddSZddTZ ddUZ!ddWZ"ddYZ#ddZ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Z.ddhZ/ddiZ0ddjZ1ddkZ2ddlZ3ddmZ4ddnZ5ddoZ6ddpZ7ddqZ8ddrZ9ddsZ:ddtZ;dduZ<ddvZ=ddwZ>ddxZ?ddyZ@ddzZAdd{ZBdd|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ZUddd$d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d,dZdd-dZed.dÄZfd/dńZgd%dƄZhd%dǄZid0dɄZjddʄZkdd˄Zld1d΄Zmd2dЄZnd3d҄Zod4dԄZpd5dׄZqd#d؄Zrd#dلZsd#dڄZtd#dۄZud6dބZvd6d߄Zwd7dZxd7dZyd8dZzd9dZ{ddZ|d:dZ}d;dZ~d<dZd=dZddZddZed>d            Zed?d            Zed@d            ZedAd            ZedBd            ZdS (C  PandasLikeSeriesnative_seriesr   implementationr   versionr2   returnNonec               V    |j         | _        || _        || _        || _        d| _        d S )NF)name_name_native_series_implementation_version
_broadcast)selfrZ   r[   r\   s       S/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_pandas_like/series.py__init__zPandasLikeSeries.__init__q   s2     #'
+-      c                    | j         S N)rb   rf   s    rg   nativezPandasLikeSeries.native   s    ""ri   r(   c                    | j                                         r| j                                         S dt          | j                    }t	          |          )Nz!Expected pandas/modin/cudf, got: )rc   is_pandas_liketo_native_namespacetypeAssertionErrorrf   msgs     rg   __native_namespace__z%PandasLikeSeries.__native_namespace__   sT    ..00 	>';;===N$t7K2L2LNNS!!!ri   r1   c                :    ddl m}  || j        | j                  S )Nr   r0   )narwhals._pandas_like.namespacer1   rc   rd   )rf   r1   s     rg   __narwhals_namespace__z'PandasLikeSeries.__narwhals_namespace__   s,    GGGGGG""4#7GGGri   rows'SizedMultiIndexSelector[pd.Series[Any]]r)   c                    t          |t                    rt          |          n|}|                     | j        j        |                   S rk   )
isinstancetuplelist_with_nativerm   ilocrf   ry   s     rg   _gatherzPandasLikeSeries._gather   s>    'e44>tDzzz$  !1$!7888ri   _SliceIndex | rangec                    |                      | j        j        t          |j        |j        |j                                     S rk   )r   rm   r   slicestartstopstepr   s     rg   _gather_slicezPandasLikeSeries._gather_slice   s9      KU4:ty$)DDE
 
 	
ri   c                F    |                      | j        | j        |          S N)r[   r\   )	__class__rm   rc   )rf   r\   s     rg   _with_versionzPandasLikeSeries._with_version   s)    ~~K(<g  
 
 	
ri   Fpreserve_broadcastseriesr   boolc               f    |                      || j        | j                  }|r| j        |_        |S r   )r   rc   rd   re   )rf   r   r   results       rg   r   zPandasLikeSeries._with_native   s?    4#7   
 
  	0 $Fri    N)r`   dtypeindexdataIterable[Any]contextr3   r`   strr   IntoDType | Noner   c               "   |j         }|j        }|                                }i }	|rt          |d ||          |	d<   n/|                                rd|	d<   |t          |          r||	d<   |                      |j        |fd|i|	|          S )Nr   Fcopyr   r`   r   )rc   rd   rp   r   	is_pandaslenfrom_nativeSeries)
clsr   r   r`   r   r   r[   r\   nskwdss
             rg   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Sri   objTypeIs[Any]c                     t          |           S rk   )r!   )r   s    rg   
_is_nativezPandasLikeSeries._is_native   s    $S)))ri   c              2     | ||j         |j                  S r   )rc   rd   )r   r   r   s      rg   r   zPandasLikeSeries.from_native   s    s4(?IYZZZZri   r7   c                  |j         }t          |          r|n|g}|                                                    |d          }|                     ||          S )Nr   r`   r   )rc   r    rp   r   r   )r   r   r   r[   arrrm   s         rg   
from_numpyzPandasLikeSeries.from_numpy   s\     0'--9ddD63355<<Sr<JJvw777ri   Sequence[Self]c                   |d                                          j        }d |D             }t          |          }||                    |                   j        j        }g }|D ]}|j        rD ||j        j        d         ||j        |j        j                  }|	                    |          }	nB|j        j        |ur2t          |j        ||j                  }|	                    |          }	n|}	|                    |	           |S )Nr   c                ,    g | ]}t          |          S  )r   ).0ss     rg   
<listcomp>z:PandasLikeSeries._align_full_broadcast.<locals>.<listcomp>   s    ***a3q66***ri   )r   r`   r   r[   )ru   r   maxr   rm   re   r   r`   r   r   r   rc   append)
r   r   r   lengths
max_lengthidx	reindexedr   rm   	compliants
             rg   _align_full_broadcastz&PandasLikeSeries._align_full_broadcast   s   //118**6***\\
W]]:../6<	 	( 	(A| 	HM!$CafAHN   NN622		s**"18SARSSSNN622			Y''''ri   c                    | j         S rk   )ra   rl   s    rg   r`   zPandasLikeSeries.name   s
    zri   r4   c                    | j         j        }|dk    rt          || j        | j                  nt          | j         | j        | j                  S )Nobject)rm   r   r   rd   rc   r   )rf   native_dtypes     rg   r   zPandasLikeSeries.dtype   sR    {( x'' %\4=$BVWWW0T]D,@ 	
ri   c                D    t           rdd l}|S t          | j                  S Nr   )r   numpyr   rc   )rf   nps     rg   _array_funcszPandasLikeSeries._array_funcs   s,     	I"4#7888ri   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)
rm   isnarc   r   CUDFanyewmmeanNotImplementedErrorr   )rf   r   r   r   r   r   r   r   sermask_nar   rt   s               rg   ewm_meanzPandasLikeSeries.ewm_mean   s     k((**>#666q   w{{}} $%PV !  $&& 
K  *#...WWT9e[&L   dff  w  (((ri   indicesint | Sequence[int]valuesc                   t          || j                  r,t          |j        | j        j        |         | j                  }| j                            d          }||j        |<   | j        |_        | 	                    |          S )Nr   T)deep)
r|   r   r   rm   r   rc   r   r   r`   r   )rf   r   r   r   s       rg   scatterzPandasLikeSeries.scatter  s    fdn-- 	!'*#3  F
 K$'' w  ###ri   c                x   | j         }| j        }t          |j        | j        j        |j                 |          }|t
          j        u r,t          t                    dk     r|	                                }d}|t
          j        u r!||k     r|| j        j
        |j        j        <   d S || j        j
        |j        <   d S )Nr   )   )   r   )rc   _backend_versionr   rm   r   r   PANDASr   r   r   r   r   )rf   r   r   r[   backend_versionvalues_nativemin_pd_versions          rg   _scatter_in_placez"PandasLikeSeries._scatter_in_place"  s    -/!MKgn-)
 
 

 ^222}R7H7H47O7O)..00M^2227W7W6CDKW^2333/<DKW^,,,ri   r8   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   rm   r   r   r   rc   rd   astype)rf   r   pd_dtypes      rg   r   zPandasLikeSeries.cast3  s    :4;#4#@#@ $$T[T$JJJ++DK,=t?STT/M	
 
 
   !3!3H!=!=RV WWWri   
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   
ValueErrorrm   r   )rf   r   rt   s      rg   itemzPandasLikeSeries.itemA  sk    =4yyA~~[NQRVii[ [ [  !oo%;#A&&{&&ri   r/   c                n    ddl m}  || j                                        | j        | j        d          S )Nr   r.   F)r[   r\   validate_column_names)narwhals._pandas_like.dataframer/   rm   to_framerc   rd   )rf   r/   s     rg   r   zPandasLikeSeries.to_frameM  sM    GGGGGG""K  ""/M"'	
 
 
 	
ri   	list[Any]c                    | j                                         }|r+| j                                                                        n| j                                        S rk   )rc   is_cudfrm   to_arrow	to_pylistto_list)rf   r   s     rg   r   zPandasLikeSeries.to_listW  sN    &..005<Wt{##%%//111$+BUBUBWBWWri   lower_boundupper_boundclosedr5   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)
rm   r   geltgtler   r   aliasr`   )rf   r   r  r  r   _ress          rg   
is_betweenzPandasLikeSeries.is_between[  s    k1$DD;1$DD;V&&%%{(;(;;CCw&&%%{(;(;;CCv&&%%{(;(;;CCv&&%%{(;(;;CC     %%++CH555ri   otherc                \    |                      | j                            |                    S rk   )r   rm   isinrf   r  s     rg   is_inzPandasLikeSeries.is_inm  s&      !1!1%!8!8999ri   c                    | j         }t          |          }| j                            |          }|                    ||j        |j                  j        |         }|                     |          S )N)r`   r   )	rm   r   r   aranger   r`   r   locr   )rf   r   sizer   r   s        rg   arg_truezPandasLikeSeries.arg_truep  sa    k3xx ''--t#(#)DDHM  (((ri   c                4    | j                                         S rk   )rm   argminrl   s    rg   arg_minzPandasLikeSeries.arg_minw      {!!###ri   c                4    | j                                         S rk   )rm   argmaxrl   s    rg   arg_maxzPandasLikeSeries.arg_maxz  r  ri   	predicatec                    t          |t                    st          | |          \  }}n|}|                     | j        j        |                                       | j                  S rk   )r   r   r   r   rm   r  r  r`   )rf   r!  r  other_natives       rg   filterzPandasLikeSeries.filter  s[    )T** 	%6tYGGOA||$L  !>??EEdiPPPri   r<   c                R    t          | j                  r| j        j        d         nd S r   r   rm   r   rl   s    rg   firstzPandasLikeSeries.first  s&    &)$+&6&6@t{""D@ri   c                R    t          | j                  r| j        j        d         nd S )Nr&  rl   s    rg   lastzPandasLikeSeries.last  s&    '*4;'7'7At{##TAri   opCallable[..., PandasLikeSeries]c                    t          | |          \  }}| j        ot          |dd          }|                      |||          |                              | j                  S )Nre   Tr   )r   re   getattrr   r  r`   )rf   r+  r  r   r#  r   s         rg   _with_binaryzPandasLikeSeries._with_binary  sm    4T5AA\!_Sd1S1S  BsL!!6H ! 
 

%	

	ri   c                f    |                      fd|                              | j                  S )Nc                     ||           S rk   r   )xyr+  s     rg   <lambda>z5PandasLikeSeries._with_binary_right.<locals>.<lambda>  s    bbAhh ri   )r/  r  r`   )rf   r+  r  s    ` rg   _with_binary_rightz#PandasLikeSeries._with_binary_right  s3      !6!6!6!6>>DDTYOOOri   r   c                B    |                      t          j        |          S rk   )r/  operatoreqr  s     rg   __eq__zPandasLikeSeries.__eq__        e444ri   c                B    |                      t          j        |          S rk   )r/  r7  ner  s     rg   __ne__zPandasLikeSeries.__ne__  r:  ri   c                B    |                      t          j        |          S rk   )r/  r7  r  r  s     rg   __ge__zPandasLikeSeries.__ge__  r:  ri   c                B    |                      t          j        |          S rk   )r/  r7  r
  r  s     rg   __gt__zPandasLikeSeries.__gt__  r:  ri   c                B    |                      t          j        |          S rk   )r/  r7  r  r  s     rg   __le__zPandasLikeSeries.__le__  r:  ri   c                B    |                      t          j        |          S rk   )r/  r7  r	  r  s     rg   __lt__zPandasLikeSeries.__lt__  r:  ri   c                B    |                      t          j        |          S rk   )r/  r7  and_r  s     rg   __and__zPandasLikeSeries.__and__  s      666ri   c                B    |                      t          j        |          S rk   )r5  r7  rG  r  s     rg   __rand__zPandasLikeSeries.__rand__  s    &&x}e<<<ri   c                B    |                      t          j        |          S rk   )r/  r7  or_r  s     rg   __or__zPandasLikeSeries.__or__        u555ri   c                B    |                      t          j        |          S rk   )r5  r7  rL  r  s     rg   __ror__zPandasLikeSeries.__ror__      &&x|U;;;ri   c                B    |                      t          j        |          S rk   )r/  r7  addr  s     rg   __add__zPandasLikeSeries.__add__  rN  ri   c                B    |                      t          j        |          S rk   )r5  r7  rS  r  s     rg   __radd__zPandasLikeSeries.__radd__  rQ  ri   c                B    |                      t          j        |          S rk   )r/  r7  subr  s     rg   __sub__zPandasLikeSeries.__sub__  rN  ri   c                B    |                      t          j        |          S rk   )r5  r7  rX  r  s     rg   __rsub__zPandasLikeSeries.__rsub__  rQ  ri   c                B    |                      t          j        |          S rk   )r/  r7  mulr  s     rg   __mul__zPandasLikeSeries.__mul__  rN  ri   c                B    |                      t          j        |          S rk   )r5  r7  r]  r  s     rg   __rmul__zPandasLikeSeries.__rmul__  rQ  ri   c                B    |                      t          j        |          S rk   )r/  r7  truedivr  s     rg   __truediv__zPandasLikeSeries.__truediv__  s      !15999ri   c                B    |                      t          j        |          S rk   )r5  r7  rb  r  s     rg   __rtruediv__zPandasLikeSeries.__rtruediv__  s    &&x'7???ri   c                B    |                      t          j        |          S rk   )r/  r7  floordivr  s     rg   __floordiv__zPandasLikeSeries.__floordiv__  s      !2E:::ri   c                B    |                      t          j        |          S rk   )r5  r7  rg  r  s     rg   __rfloordiv__zPandasLikeSeries.__rfloordiv__  s    &&x'8%@@@ri   c                B    |                      t          j        |          S rk   )r/  r7  powr  s     rg   __pow__zPandasLikeSeries.__pow__  rN  ri   c                B    |                      t          j        |          S rk   )r5  r7  rl  r  s     rg   __rpow__zPandasLikeSeries.__rpow__  rQ  ri   c                B    |                      t          j        |          S rk   )r/  r7  modr  s     rg   __mod__zPandasLikeSeries.__mod__  rN  ri   c                B    |                      t          j        |          S rk   )r5  r7  rq  r  s     rg   __rmod__zPandasLikeSeries.__rmod__  rQ  ri   c                8    |                      | j                   S rk   )r   rm   rl   s    rg   
__invert__zPandasLikeSeries.__invert__  s      $+...ri   c                4    | j                                         S rk   )rm   r   rl   s    rg   r   zPandasLikeSeries.any      {   ri   c                4    | j                                         S rk   )rm   allrl   s    rg   rz  zPandasLikeSeries.all  rx  ri   c                4    | j                                         S rk   )rm   minrl   s    rg   r|  zPandasLikeSeries.min  rx  ri   c                4    | j                                         S rk   )rm   r   rl   s    rg   r   zPandasLikeSeries.max  rx  ri   floatc                4    | j                                         S rk   )rm   sumrl   s    rg   r  zPandasLikeSeries.sum  rx  ri   c                4    | j                                         S rk   )rm   countrl   s    rg   r  zPandasLikeSeries.count  s    {  """ri   c                4    | j                                         S rk   )rm   r   rl   s    rg   r   zPandasLikeSeries.mean  s    {!!!ri   c                    | j                                         sd}t          |          | j                                        S )Nz<`median` operation not supported for non-numeric input type.)r   
is_numericr"   rm   medianrs   s     rg   r  zPandasLikeSeries.median  s?    z$$&& 	-PC',,,{!!###ri   ddofc               8    | j                             |          S Nr  )rm   stdrf   r  s     rg   r  zPandasLikeSeries.std       {D)))ri   c               8    | j                             |          S r  )rm   varr  s     rg   r  zPandasLikeSeries.var  r  ri   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      ?rm   dropnar   r~  r   )rf   ser_not_nullmm2m3s        rg   skewzPandasLikeSeries.skew  s    {))++|!!4|!!<<|!!3<,,...d[[]]d[[]]!#qrRW~~eEll:ri   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  )rf   r  r  r  m4s        rg   kurtosiszPandasLikeSeries.kurtosis  s    {))++|!!4|!!<<<,,...d[[]]d[[]]%'1WWrRU|c!!%,,>ri   c                *    t          | j                  S rk   )r   rm   rl   s    rg   r   zPandasLikeSeries.len  s    4;ri   c                ^    |                      | j                                        d          S )NTr   )r   rm   r   rl   s    rg   is_nullzPandasLikeSeries.is_null#  s)      !1!1!3!3 MMMri   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   )rm   r   r  r"   r   )rf   r   rt   s      rg   is_nanzPandasLikeSeries.is_nan&  s\    kz$$&& 	-n
nnnC',,,   EEEri   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   )rm   rc   r   r   r   warningscatch_warningsfilterwarningsFutureWarningr   r   fillnaffillbfill)	rf   r  r  r  r   kwargsr  native_valueres_sers	            rg   	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                0   | j                                         sd| j          d}t          |          | j        }||j        j         j        n|}||k    }|                    dd           |                     |                    ||          d          S )Nz5`.fill_nan` only supported for numeric dtype and not z, did you mean `.fill_null`?FT)inplacer   )	r   r  r"   rm   arrayna_valuer  r   mask)rf   r  rt   r   fillr  s         rg   fill_nanzPandasLikeSeries.fill_nanM  s    z$$&& 	-r$*rrrC',,,K).qw}%%EAvE4(((  d!3!3 MMMri   c                Z    |                      | j                                                  S rk   )r   rm   r  rl   s    rg   
drop_nullszPandasLikeSeries.drop_nullsY  s$      !3!3!5!5666ri   c                8    | j                             d          S )NF)r  )rm   nuniquerl   s    rg   n_uniquezPandasLikeSeries.n_unique\  s    {""%"000ri   nfractionwith_replacementseedc               d    |                      | j                            ||||                    S )N)r  fracreplacerandom_state)r   rm   sample)rf   r  r  r  r  s        rg   r  zPandasLikeSeries.sample_  s@       K(,<4   
 
 	
ri   c                Z    |                      | j                                                  S rk   )r   rm   absrl   s    rg   r  zPandasLikeSeries.absm  s"      !2!2333ri   reversec                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S NT)skipnar)  )rm   cumsumr   rf   r  r   s      rg   cum_sumzPandasLikeSeries.cum_sump  k     =DKd+++TTrT")))66ttt< 	
   (((ri   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   rq   rm   uniquer`   )rf   r  s     rg   r  zPandasLikeSeries.uniquex  sB    
   !2dk!2!24;3E3E3G3Gdi!X!X!XYYYri   c                Z    |                      | j                                                  S rk   )r   rm   diffrl   s    rg   r  zPandasLikeSeries.diff  s$      !1!1!3!3444ri   c                \    |                      | j                            |                    S rk   )r   rm   shiftrf   r  s     rg   r  zPandasLikeSeries.shift  s&      !2!21!5!5666ri   old!Sequence[Any] | Mapping[Any, Any]newSequence[Any]return_dtypec          	     v   | j          d}t          | j        j        | j                  }|rt          ||| 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  )r`   r   rm   r   rc   r   rd   ru   	DataFramer   r   r   merger  r  r  r$  r  r   r   )rf   r  r  r  tmp_namer   r   	namespacer  r   rt   s              rg   replace_strictzPandasLikeSeries.replace_strict  s    i%%%)$+*;T=QRR
 $mT-A4=    	 --//	##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//!ri   
descending
nulls_lastc                   |rdnd}|                      | j                            | |                                        | j                  S )Nr*  r'  )	ascendingna_position)r   rm   sort_valuesr  r`   )rf   r  r  r  s       rg   sortzPandasLikeSeries.sort  sQ     *7ff  K##*n+#VV
 

%	

	ri   str | Hashablec                ~    || j         k    r1|                     t          | j        || j                  d          S | S )Nr   Tr   )r`   r   r   rm   rc   )rf   r`   s     rg   r  zPandasLikeSeries.alias  sM    49$$t{D9MNNN#' %    ri   r   bool | NonerA   c               0    |                      ||          S )N)r   r   )to_numpy)rf   r   r   s      rg   	__array__zPandasLikeSeries.__array__  s     }}5t}444ri   )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   )rd   dtypesr|   r   Datetime	time_zonedtconvert_time_zonereplace_time_zonerm   r   r   rc   r   r   PANDAS_TO_NUMPY_DTYPE_MISSINGupdater~   PANDAS_TO_NUMPY_DTYPE_NO_MISSINGr  )rf   r   r   r  r   has_missingr  s          rg   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0ri   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: )	rc   r   r   rm   r   	to_pandasMODIN
_to_pandasrr   rs   s     rg   r
  zPandasLikeSeries.to_pandas  s    >#888;>#666;((***>#777;))+++?)=??S!!!ri   	pl.Seriesc                N    dd l } |j        |                                           S r   )polarsfrom_pandasr
  )rf   pls     rg   	to_polarszPandasLikeSeries.to_polars  s*    r~dnn..///ri   c                    |                      | j                            d                                         | j                  S )NFkeepr   rm   
duplicatedr  r`   rl   s    rg   	is_uniquezPandasLikeSeries.is_unique  s<      $+"8"8e"8"D"D!DEEKKDIVVVri   c                X    | j                                                                         S rk   )rm   r   r  rl   s    rg   
null_countzPandasLikeSeries.null_count  s"    {!!%%'''ri   c                    |                      | j                            d                                         | j                  S )Nr'  r  r  rl   s    rg   is_first_distinctz"PandasLikeSeries.is_first_distinct  s<      $+"8"8g"8"F"F!FGGMMdiXXXri   c                    |                      | j                            d                                         | j                  S )Nr*  r  r  rl   s    rg   is_last_distinctz!PandasLikeSeries.is_last_distinct  s<      $+"8"8f"8"E"E!EFFLLTYWWWri   c                   t          |t                    s!dt          |           }t          |          |r| j        j        S | j        j        S )Nz/argument 'descending' should be boolean, found )r|   r   rq   	TypeErrorrm   is_monotonic_decreasingis_monotonic_increasing)rf   r  rt   s      rg   	is_sortedzPandasLikeSeries.is_sorted  sS    *d++ 	!VDDTDTVVCC..  	7;66{22ri   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   r/   ra   rm   value_countsreset_indexcolumnsr  r   )	rf   r  r$  r`   r&  r/   index_name_value_name_	val_counts	            rg   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Gri   quantileinterpolationr>   c                :    | j                             ||          S )N)qr0  )rm   r/  )rf   r/  r0  s      rg   r/  zPandasLikeSeries.quantile  s     {##hm#LLLri   r  c                    | j         }t          | |          \  }}t          | |          \  }}|                    ||          }|                     |          S rk   )rm   r   wherer   )rf   r  r  r   r  r  s         rg   zip_withzPandasLikeSeries.zip_with  sV    k*4664+D%885iie$$  %%%ri   c                \    |                      | j                            |                    S rk   )r   rm   headr  s     rg   r7  zPandasLikeSeries.head  &      !1!1!!4!4555ri   c                \    |                      | j                            |                    S rk   )r   rm   tailr  s     rg   r:  zPandasLikeSeries.tail  r8  ri   decimalsc                ^    |                      | j                            |                    S )N)r;  )r   rm   round)rf   r;  s     rg   r=  zPandasLikeSeries.round  s)      !2!2H!2!E!EFFFri   c                F   | j         }t          |          }| j        }t          |j        |          dk    rdd lm} ddlm} |j	        j
        }t          d|                    |                    } ||j        | j                  }t          |d| j        | j                  }	 |||	|j        |j                  }
nO| j        }|                    | j                   }|                                r |||j        |j                  n|}
|                     |
          S Nr   pyarrowr   )r   r,   )r   r   r`   )r   r`   )rm   rq   rc   r   r   pyarrow.computecomputenarwhals._arrow.utilsr   r  	_pa_arrayr   floorrd   r   r   r`   r   r   r   rf   rm   
native_clsr[   pcr   ca
result_arrnw_dtype	out_dtyperesult_nativearray_funcss               rg   rE  zPandasLikeSeries.floor  sE   &\\
-V\.IIIYVV((((((FFFFFF'B/">>J//
OOH0)T%94= I 'J)6<fk  MM +K$**4;77J "))++ 

:V\LLLL 
   ///ri   c                F   | j         }t          |          }| j        }t          |j        |          dk    rdd lm} ddlm} |j	        j
        }t          d|                    |                    } ||j        | j                  }t          |d| j        | j                  }	 |||	|j        |j                  }
nO| j        }|                    | j                   }|                                r |||j        |j                  n|}
|                     |
          S r?  )rm   rq   rc   r   r   rA  rB  rC  r   r  rD  r   ceilrd   r   r   r`   r   r   r   rF  s               rg   rP  zPandasLikeSeries.ceil3  sE   &\\
-V\.IIIYVV((((((FFFFFF'B/==J//
OOH0)T%94= I 'J)6<fk  MM +K$))$+66J "))++ 

:V\LLLL 
   ///ri   	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   nullrK   )prefix
prefix_seprR  dummy_nar   )r+  r[   r   )r   r/   ru   rm   ra   r   r   r   get_dummiesr~   r+  r   r   rc   r   )rf   rQ  rR  r/   plxr   r`   null_col_pl	has_nullsr   colsnull_col_pdoutput_orders                rg   
to_dummieszPandasLikeSeries.to_dummiesO  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Dri   offsetc                R    |                      | j        j        |d |                   S rk   )r   rm   r   )rf   r  r`  s      rg   gather_everyzPandasLikeSeries.gather_everyl  s&      !1&)!)!<===ri   .Self | NumericLiteral | TemporalLiteral | Nonec                   |t          | |          nd\  }}|t          | |          nd\  }}| j        }|                                rddini }| j        }|                                sb|                     |          r|                    ||k    |          }d }|                     |          r|                    ||k    |          }d }|                      |j        ||fi |          S )N)NNaxisr   )	r   rc   is_modinrm   r   r   r4  r   clip)	rf   r   r  r  lowerupperimplr  r   s	            rg   rg  zPandasLikeSeries.clipo  s    & %T;777 	5 & %T;777 	5
 #04!G&!R~~ 		 u%% fou==u%% fou==  UE!D!DV!D!DEEEri   pa.Array[Any]c                    | j         t          j        u r| j                                        S dd l}|j                            | j                  S r   )rc   r   r   rm   r   r@  Arrayr  )rf   pas     rg   r   zPandasLikeSeries.to_arrow  sK    >#666;'')))x##DK000ri   r  r9   c                   | j                                         }| j        |_        |                     |dk    r|                    d          n|          S )Nr   r   )rm   moder`   r   r7  )rf   r  r   s      rg   rp  zPandasLikeSeries.mode  sH    !!##i  45==QfMMMri   c                   | j                                          }|s|                                n)t          |           |                                z
  |z   dz
  }|                     |          S Nr   )rm   r   r  r   r   )rf   r  not_na_seriesr   s       rg   	cum_countzPandasLikeSeries.cum_count  ss    ))+++ HM  """T]11333mCaG 	
   (((ri   c                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S r  )rm   cumminr   r  s      rg   cum_minzPandasLikeSeries.cum_min  r  ri   c                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S r  )rm   cummaxr   r  s      rg   cum_maxzPandasLikeSeries.cum_max  r  ri   c                   |s| j                             d          n,| j         d d d                             d          d d d         }|                     |          S r  )rm   cumprodr   r  s      rg   cum_prodzPandasLikeSeries.cum_prod  sk     >DKt,,,TTrT"**$*77"= 	
   (((ri   window_sizecenterc                   | j                             |||                                          }|                     |          S Nwindowmin_periodsr  )rm   rollingr  r   rf   r~  r   r  r   s        rg   rolling_sumzPandasLikeSeries.rolling_sum  sG    $$K % 
 

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

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

#4#.. 	   (((ri   c                   | j                             |||                              |          }|                     |          S r  )rm   r  r  r   r  s         rg   rolling_stdzPandasLikeSeries.rolling_std  r  ri   Iterator[Any]c              #  H   K   | j                                         E d {V  d S rk   )rm   __iter__rl   s    rg   r  zPandasLikeSeries.__iter__  s2      ;'')))))))))))ri   c                    |+| j                                                                         n| j         |k                                    S rk   )rm   r   r   r  s     rg   __contains__zPandasLikeSeries.__contains__  s>    +0=t{!!%%'''t{e?S>X>X>Z>ZZri   c                    | j         }|                     |t          d          k    |t          d          k     z            S )Nz-infinf)rm   r   r~  )rf   r   s     rg   	is_finitezPandasLikeSeries.is_finite  s8    K  !eFmm"3E%LL8H!IJJJri   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ordinalr'  r  numpy_nullable_is_nullr  F)r  	na_optionr  pctr   )r`   rc   r   r   r   r   rm   r   
is_integerr  r   rx   r   with_columns_expr_from_seriesr  r   groupbyrankr   )	rf   r  r  	pd_methodr`   	null_mask	mask_namerY  dfs	            rg   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   
 
 	
ri   binslist[float]include_breakpointc                   t                               | |                              |                                          S N)r  )_PandasHistfrom_series	with_binsr   )rf   r  r  s      rg   hist_from_binszPandasLikeSeries.hist_from_bins  s4     ##D=O#PPYt__XZZ	
ri   	bin_countc                   t                               | |                              |                                          S r  )r  r  with_bin_countr   )rf   r  r  s      rg   hist_from_bin_countz$PandasLikeSeries.hist_from_bin_count  s6     ##D=O#PP^I&&XZZ	
ri   basec                j   | j         }t          |          }| j        }t          |j        |          dk    rdd lm} ddlm} |j	        j
        }t          d|                    ||                    } ||j        | j                  }	t          |	d| j        | j                  }
 |||
|j        |j                  }n`| j        }|                    |          |                    |          z  }|                                r |||j        |j                  n|}|                     |          S r?  )rm   rq   rc   r   r   rA  rB  rC  r   r  rD  r   logbrd   r   r   r`   r   logr   r   )rf   r  rm   rG  r[   rH  r   rI  rJ  rK  rL  rM  rN  s                rg   r  zPandasLikeSeries.log  sV   &\\
-V\.IIIYVV((((((FFFFFF'B/T1B1BCCJ//
OOH0)T%94= I 'J)6<fk  MM +K$00;??43H3HHJ "))++ 

:V\LLLL    ///ri   c                8   | j         }t          |          }| j        }t          |j        |          dk    rdd lm} ddlm} |j	        j
        }t          d|                    |                    } ||j        | j                  }t          |d| j        | j                  }	 |||	|j        |j                  }
nH| j                            |          }|                                r |||j        |j                  n|}
|                     |
          S r?  )rm   rq   rc   r   r   rA  rB  rC  r   r  rD  r   exprd   r   r   r`   r   r   r   )rf   rm   rG  r[   rH  r   rI  rJ  rK  rL  rM  s              rg   r  zPandasLikeSeries.exp8  s>   &\\
-V\.IIIYVV((((((FFFFFF'B/<<J//
OOH0)T%94= I 'J)6<fk  MM *..v66J "))++ 

:V\LLLL    ///ri   c                \    |                      | j                            d                    S )N      ?)r   rm   rl  rl   s    rg   sqrtzPandasLikeSeries.sqrtU  s$      !5!5666ri   r   c                     t          |           S rk   r   rl   s    rg   r   zPandasLikeSeries.strX  s    .t444ri   r   c                     t          |           S rk   r   rl   s    rg   r  zPandasLikeSeries.dt\  s    0666ri   r   c                     t          |           S rk   r   rl   s    rg   catzPandasLikeSeries.cat`  s    +D111ri   r   c                l    t          | j        d          sd}t          |          t          |           S )Nr~   z>Series must be of PyArrow List type to support list namespace.)hasattrrm   r   r   rs   s     rg   r~   zPandasLikeSeries.listd  s5    t{F++ 	!RCC.. ,T222ri   r   c                l    t          | j        d          sd}t          |          t          |           S )NstructzBSeries must be of PyArrow Struct type to support struct namespace.)r  rm   r   r   rs   s     rg   r  zPandasLikeSeries.structk  s5    t{H-- 	!VCC.. .t444ri   )rZ   r   r[   r   r\   r2   r]   r^   )r]   r   )r]   r(   )r]   r1   )ry   rz   r]   r)   )ry   r   r]   r)   )r\   r2   r]   r)   )r   r   r   r   r]   r)   )r   r   r   r3   r`   r   r   r   r   r   r]   r)   )r   r   r]   r   )r   r   r   r3   r]   r)   )r   r7   r   r3   r]   r)   )r   r)   r]   r   )r]   r   )r]   r4   )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   r8   r]   r)   rk   )r   r   r]   r   r]   r/   )r]   r   )r   r   r  r   r  r5   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]   r)   )r  r   r]   r)   )r  r   r]   r)   )r  r  r  r  r  r   r]   rY   )r  r   r  r   r]   rY   )r`   r  r]   r)   )r   r   r   r  r]   rA   )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   r  r   r]   r)   )r;  r   r]   r)   )rQ  r   rR  r   r]   r/   )r  r   r`  r   r]   r)   )r   rc  r  rc  r]   r)   )r]   rk  )r  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   )__name__
__module____qualname__rh   propertyrm   ru   rx   r   r   r   r   classmethodr   staticmethodr   r   r   r   r`   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r$  r'  r*  r/  r5  r9  r=  r?  rA  rC  rE  rH  rJ  rM  rP  rT  rV  rY  r[  r^  r`  rc  re  rh  rj  rm  ro  rr  rt  rv  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  r  r
  r  r  r  r  r  r#  r)  r/  r5  r7  r:  r=  rE  rP  r_  rb  rg  r   rp  rt  rw  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r~   r  r   ri   rg   rY   rY   p   s               # # # X#" " " "H H H H
9 9 9 9
 
 
 


 
 
 

 GL        "&T T T T T [T, * * * \* [ [ [ [[ 8 8 8 [8    [(    X 
 
 
 X
 9 9 X9) ) ) )>
$ 
$ 
$ 
$= = = ="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 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 080 0 0 08E E E E:> > > >F F F F@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 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 5ri   rY   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  rY   _seriesr]   r/   c                    | j                                         j        j        }| j                                         j        } | || j                  | j                   S )Nr   )r  rx   
_dataframer   ru   r  _data)rf   r   r  s      rg   r   z_PandasHist.to_framev  sT    l99;;FRL5577A	{99TZ00$,GGGGri   r   c                <    | j                                         dk     S rr  )r  r  rl   s    rg   is_empty_seriesz_PandasHist.is_empty_series|  s    |!!##a''ri   argint | list[float]rC   c               r    |                      |          }| j        r|                     |          |dS d|iS )N
breakpointr  r  )_zeros_breakpoint_calculate_breakpoint)rf   r  r  s      rg   series_emptyz_PandasHist.series_empty  sF    C   	S"&"<"<S"A"AERRRri   rA   c                   | j         j        j        }t          |t                    r ||          n |t          |          dz
            S rr  )r  r   zerosr|   r   r   )rf   r  r  s      rg   r  z_PandasHist._zeros  sD    )/'S11JuuSzzzuuSXX\7J7JJri   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  ru   cutrm   )rf   r  r  r  r  s        rg   _cutz_PandasHist._cut  sI     l//115sKG#
 
 
 	
ri   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)rf   r   r  r  r  s        rg   _linear_spacez_PandasHist._linear_space  s4     |(11c{Vv=M 2 
 
 	
ri   r  c                    | j                                         | j                                         }}||k    r
|dz  }|dz  }|                     |||dz             S )z6Prepare bins for histogram calculation from bin_count.r  r   )rm   r|  r   r  )rf   r  rh  ri  s       rg   _calculate_binsz_PandasHist._calculate_bins  sZ    {(($+//*;*;uE>>SLESLE!!%	A>>>ri   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  r)  reindexr  
categoriesr*  r  )rf   r  r  r  s       rg   _calculate_histz_PandasHist._calculate_hist  s     YYt__
 ''t%'@@HHN%! I 
 
 	tT222 	<"&qrr(U;;;ri   r  r  )r  r  r]   rC   )r  r  r]   rA   )r  r  r  r  r  r  r]   r  )
r   r~  r  r~  r  r   r  r  r]   rA   )r  r   r]   rA   )r  r  r]   rC   )r  r  r  __annotations__r   r  r  r  r  r  r  r  r   ri   rg   r  r  s  s         H H H H( ( ( (
       K K K K (,+2
 
 
 
 
 
. +1

 

 

 

 

 

? ? ? ?           ri   r  )r  r  )a
__future__r   r7  r  typingr   r   r   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   narwhals._typing_compatr   narwhals._utilsr   r   r   narwhals.dependenciesr    r!   narwhals.exceptionsr"   collections.abcr#   r$   r%   r&   r'   typesr(   pandaspdr  r  r@  rn  typing_extensionsr)   r*   r+   narwhals._arrow.typingr,   narwhals._compliant.seriesr-   r   r/   rw   r1   r2   r3   narwhals.dtypesr4   narwhals.typingr5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   r  r  r  rY   r  r   ri   rg   <module>r     s   " " " " " " "   > > > > > > > > > > > > > >     < < < < < < < < 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 E E E E E E E E E E J J J J J J J J 5 5 5 5 5 5  HOOOOOOOOOOOOOO      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#!$ "!)! ! ! 0@5 @5 @5 @5 @5{3' @5 @5 @5F J  J  J  J  J /"AB J  J  J  J  J ri   