o
    믪gW                     @   s<  d dl Zd dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ ejddgddd Zd	d
 Zdd Zdd Zejdddgdd Zdd Zejddi d fdddidfdi dfdddidfgdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Z d-d. Z!d/d0 Z"ejd1d2d2ej#gd2d3ej#ggd4d5 Z$d6d7 Z%d8d9 Z&d:d; Z'ejd<ed=d> Z(d?d@ Z)dAdB Z*ejdCe+dDdE gdFdG Z,dHdI Z-ejdJdKdLgdMdN Z.dOdP Z/dQdR Z0ejdSdKi fdLddifdLddifgdTdU Z1dVdW Z2ejdXeddge3d dYgdZeej4ddggdd d[d\d]feej5d^ej6d]e
d_d^d`dadbeej4ddggd^d d[d\d]fgejdcddgddde Z7ejdfdee8d^d\d]fdggdhdi Z9djdk Z:ejdlej;gdmgfej;ej<gdmdngfe=ej;gdmgfe=ej;ej<gdmdngfgejdodKi gdLddigdLddiggdpdq Z>ejdrdsej;iej;ej<dtedsej;ieej;ej<dtgejdodKi gdLddigdLddiggdudv Z?ejdlej@gdwgfejAej@gdxdwgfe=ej@gdwgfe=ejAej@gdxdwgfgdydz ZBejd{d|dE gedEg d}ifd~dE gedgdEgdZfgdd ZCejdrdsej@iej@ejDdtedsej@ieej@ejDdtgdd ZEejd{dddE ieg d}eFdgd eGdgdZfdddE iedgdgdZfgdd ZHdd ZIdd ZJdd ZKdS )    N)	DataFrameIndex
MultiIndexSeriesconcat
date_rangetimedelta_range)series_transform_kernelsFcompat)paramsc                 C   s   | j S N)param)request r   `/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/pandas/tests/apply/test_series_apply.pyby_row   s   r   c                    sb   t tdddd} fdd}|j| d}|dd	 }t|| t g d
}t|| d S )Nz	1 day 1 s   h)periodsfreqc                    s    r|   S | j  S r   )total_secondsdtxr   r   r   f   s   z(test_series_map_box_timedelta.<locals>.fr   c                 S      |   S r   )r   r   r   r   r   <lambda>        z/test_series_map_box_timedelta.<locals>.<lambda>)g    @g    @g    @)r   r   applymaptmassert_series_equal)r   serr   resultexpectedr   r   r   test_series_map_box_timedelta   s   r&   c                 C   s  | j tj|d}tjdd t| }W d    n1 sw   Y  t|| | j tj|d}t| }t|| ttdt	g ddd}|j dd	 |d}t|| ||us\J |j
|j
u sdJ |j|jkslJ |j|jkstJ tg d
tjd}|j dd	 |d}t|| d S )Nr   ignoreallfoobarname)dtyper-   indexc                 S      | S r   r   r   r   r   r   r   4       ztest_apply.<locals>.<lambda>      r   r/   r.   c                 S   r0   r   r   r   r   r   r   r   ?   r1   )r   npsqrterrstater!   r"   expr   objectr   r/   r.   r-   float64)datetime_seriesr   r$   r%   srsr   r   r   
test_apply'   s$   
r?   c                  C   s<   t ddg} dd }| j|dd}| |}t|| d S )Nr3   r4   c                 S   s   | | d fS Nr3   r   r   r   r   r   r   F      z3test_apply_map_same_length_inference_bug.<locals>.fr
   r   )r   r   r    r!   r"   )r=   r   r$   r%   r   r   r   (test_apply_map_same_length_inference_bugC   s
   
rB   convert_dtypeTc                 C   s^   t tjdd}dd }tt |j|| dd W d    d S 1 s(w   Y  d S )Nr4   
   c                 S   s   | dkr| S t jS )Nr   )r6   nanr   r   r   r   funcR   s   z1test_apply_convert_dtype_deprecated.<locals>.funcr
   )rC   r   )	r   r6   randomdefault_rngstandard_normalr!   assert_produces_warningFutureWarningr   )rC   r#   rF   r   r   r   #test_apply_convert_dtype_deprecatedN   s
   "rL   c                  C   sD   t dg} | jtjdd}|d ddgksJ t|d ts J d S )Nzfoo,bar),argsr   r*   r+   )r   r   strsplit
isinstancelist)r=   r$   r   r   r   test_apply_argsY   s   
rT   zargs, kwargs, incrementr   ar3   )r4   r       )r3   cr4      c                 C   sz   ddd}t ddg}d}tjt|d |j|dg| R i |}W d    n1 s,w   Y  || }t|| d S )	Nr   c                 S   s   | | d|  d|  S )NrD   d   r   )r   rU   brW   r   r   r   r   g   s   ztest_agg_args.<locals>.fr3   r4   zhin Series.agg cannot aggregate and has been deprecated. Use Series.transform to keep behavior unchanged.match)r   r   r   )r   r!   rJ   rK   aggr"   )rO   kwargs	incrementr   r=   msgr$   r%   r   r   r   test_agg_argsa   s   
ra   c                  C   s   t g d} ddd}ddd}d	}tjt|d
 | j|dddd W d    n1 s-w   Y  tjt|d
 | j||gdddd W d    n1 sOw   Y  tjt|d
 | j||ddddd W d    d S 1 ssw   Y  d S )Nr2   r3   r   c                 S      | | | S r   r   )r   rU   rW   r   r   r   foo1y   rA   z.test_agg_mapping_func_deprecated.<locals>.foo1r4   c                 S   rb   r   r   )r   rZ   rW   r   r   r   foo2|   rA   z.test_agg_mapping_func_deprecated.<locals>.foo2z+using .+ in Series.agg cannot aggregate andr[   r      )rW   )rU   rZ   )r3   r   )r4   r   )r   r!   rJ   rK   r]   )r=   rc   rd   r`   r   r   r    test_agg_mapping_func_deprecatedu   s   

"rf   c                 C   s   t tddd}dd }| s1d}tjt|d |j|| d W d    d S 1 s*w   Y  d S |j|| d}||}t|| d S )	Nz1/1/2000rD   r   c                 S   s   | j | j| jfS r   )hourdaymonthr   r   r   r   rF      s   z2test_series_apply_map_box_timestamps.<locals>.funcz&Series' object has no attribute 'hour'r[   r   )	r   r   pytestraisesAttributeErrorr   r    r!   r"   )r   r#   rF   r`   r$   r%   r   r   r   $test_series_apply_map_box_timestamps   s   

rn   c                  C   s\   t dt dg} t| dd}|jdksJ |jdd dd	}td
dg}t|| d S )N
2011-01-01
2011-01-02zM8[ns]r.   zdatetime64[ns]c                 S      t | j d| j d| j S N_type__name__ri   tzr   r   r   r   r          z%test_apply_box_dt64.<locals>.<lambda>r
   r   Timestamp_1_NoneTimestamp_2_Nonepd	Timestampr   r.   r   r!   r"   valsr#   resr9   r   r   r   test_apply_box_dt64   s   r   c                  C   sd   t jdddt jdddg} t| dd}|jdksJ |jdd	 d
d}tddg}t|| d S )Nro   z
US/Eastern)rx   rp   zM8[ns, US/Eastern]rq   zdatetime64[ns, US/Eastern]c                 S   rr   rs   ru   r   r   r   r   r      ry   z'test_apply_box_dt64tz.<locals>.<lambda>r
   r   zTimestamp_1_US/EasternzTimestamp_2_US/Easternr|   r   r   r   r   test_apply_box_dt64tz   s   r   c                  C   sX   t dt dg} t| }|jdksJ |jdd dd}tdd	g}t|| d S )
Nz1 daysz2 daysztimedelta64[ns]c                 S      t | j d| j S rs   )rv   rw   daysr   r   r   r   r          z%test_apply_box_td64.<locals>.<lambda>r
   r   Timedelta_1Timedelta_2)r}   	Timedeltar   r.   r   r!   r"   r   r   r   r   test_apply_box_td64   s   r   c                  C   s`   t jdddt jdddg} t| }|jdksJ |jdd dd	}td
d
g}t|| d S )Nro   Mr   rp   z	Period[M]c                 S   r   rs   )rv   rw   freqstrr   r   r   r   r      r   z'test_apply_box_period.<locals>.<lambda>r
   r   Period_M)r}   Periodr   r.   r   r!   r"   r   r   r   r   test_apply_box_period   s   r   c                    s   t ddddd}t|dd}|jdd	  d
}t ddddd}t|dd}t|| |j fdd	 d
}tttddg d rHdndd}t||  fdd}|j| d
} rrtdgd dd}t|| d S |dksxJ d S )Nro   rp   r   r   z
Asia/TokyoXXr,   c                 S   s   | t j  S r   )r}   offsetsDayr   r   r   r   r          z'test_apply_datetimetz.<locals>.<lambda>r   z
2011-01-03c                    s    r| j S | jj S r   )rh   r   r   r   r   r   r      s       r   int64int32r-   r.   c                    s    rt | jS t | jjS r   )rP   rx   r   r   r   r   r   r      s   z test_apply_datetimetz.<locals>.f   )r   tz_localizer   r   r!   r"   rS   range)r   valuesr=   r$   
exp_valuesr9   r   r   r   r   test_apply_datetimetz   s"   $r   c                 C   s4  t jtdtddd}t|dtdd}| sHd}tjt|d	 |jd
d | d W d    n1 s4w   Y  |jdd | ddksFJ d S |jdd | d}t jtdtddd}t|dtdd}t	|| t
|j|j |dd }tdgd dtdd}t	|| |s|jtksJ d S d S )NABBABCDDCBAT)
categoriesorderedr   abcdefg)r-   r/   z&Series' object has no attribute 'lowerr[   c                 S   r   r   lowerr   r   r   r   r      r   z(test_apply_categorical.<locals>.<lambda>r   c                 S      dS NAr   r   r   r   r   r      r1   r   c                 S   r   r   r   r   r   r   r   r      r   abbabcddcbac                 S   r   r   r   r   r   r   r   r      r1      )r}   CategoricalrS   r   rk   rl   rm   r   r!   r"   assert_categorical_equalr   r.   r:   )r   using_infer_stringr   r#   r`   r$   r9   r   r   r   test_apply_categorical   s$   r   seriesz1-1z1-2c                 C   s   t | dd}|s-d}tjt|d |jdd |d W d    d S 1 s&w   Y  d S |jdd |d}|t}t d	d	tjgdd}|t}t	
|| d S )
Ncategoryrq   z('Series' object has no attribute 'split'r[   c                 S      |  dd S N-r   rQ   r   r   r   r   r     r   z8test_apply_categorical_with_nan_values.<locals>.<lambda>r   c                 S   r   r   r   r   r   r   r   r     r   1)r   rk   rl   rm   r   astyper:   r6   rE   r!   r"   )r   r   r=   r`   r$   r%   r   r   r   &test_apply_categorical_with_nan_values   s   


r   c                 C   s8   t g tdddtd}|jdd | d}t|| d S )Nz
2018-01-01r   )startr   r5   c                 S   r0   r   r   r   r   r   r   r     r1   zEtest_apply_empty_integer_series_with_datetime_index.<locals>.<lambda>r   )r   r   intr   r!   r"   )r   r=   r$   r   r   r   3test_apply_empty_integer_series_with_datetime_index  s   r   c                  C   sh   t tg ddgd} t g ddgd}dd }|d j|| fd}tg d	dd
d}t|| d S )N)r3   r4   r   re      Numbers)columns)r4   r   r4   r3   r4   Indicesc                 S   s   |d j |  }|S )Nr   )iloc)	targetRowtargetDFvalr   r   r   retrieve  s   z+test_apply_dataframe_iloc.<locals>.retrieverN   )r   re   r   r4   r   uint64r   )r   r6   r   r   r   r!   r"   )uintDFindexDFr   r$   r%   r   r   r   test_apply_dataframe_iloc  s   r   c                 C   sF  t jdd t | }t | }| jt j|d}| }t|| | jt jg|d}|  }dg|_	t
|| | jdg|d}t
|| t||gdd}ddg|_	| jt jt jg|d}t
|| t||gdd}dd	g|_	| d
}| jt jt jd|d}t||| W d    d S 1 sw   Y  d S )Nr'   r(   r   r7   r3   axisabsoluter*   r+   r   )r*   r+   )r6   r8   r7   absr   copyr!   r"   to_framer   assert_frame_equalr   unstackrenamereindex_like)string_seriesr   f_sqrtf_absr$   r%   r   r   r   test_transform  s,   



"r   opc                 C   sZ  | dv r| tjj|  dd tdtg }| dv r!t}d}n	t}ddd	g}tj	||d
 |
| dg W d    n1 sCw   Y  tj	||d
 |
| dd W d    n1 sbw   Y  tj	||d
 |
| gdgd W d    n1 sw   Y  tj	||d
 |
| dg| gd W d    d S 1 sw   Y  d S )N)ffillbfillpadbackfillshiftz is successful on any dtype)reasonr   )fillnangroupTransform function failed|z4not supported between instances of 'type' and 'type'zunsupported operand typer[   r   r   B)applymarkerrk   markxfailr   r:   
ValueError	TypeErrorjoinrl   	transform)r   r   r#   errorr`   r   r   r   test_transform_partial_failureE  s4   "r   c                  C   s(  dd } dd }t dtg }d}tjt|d || |g W d    n1 s*w   Y  tjt|d ||| d W d    n1 sIw   Y  tjt|d ||g| gd W d    n1 sjw   Y  tjt|d || |g| gd W d    d S 1 sw   Y  d S )	Nc                 S   r0   r   r   r   r   r   r   noopk     z7test_transform_partial_failure_valueerror.<locals>.noopc                 S   s   t r   )r   )rt   r   r   r   
raising_opn  r   z=test_transform_partial_failure_valueerror.<locals>.raising_opr   r   r[   r   )r   r:   rk   rl   r   r   )r   r   r#   r`   r   r   r   )test_transform_partial_failure_valueerrori  s    "r   c                  C   sr   t tdddd} | ddg}t ddgddgdd	}t|| | d
di}t dgd
gdd	}t|| d S )N   r   r   )r.   r-   minmaxr   r   r/   r-   r*   )r   r   r]   r!   r"   r=   r$   r%   r   r   r   	test_demo  s   r   rF   c                 C      t | S r   )rP   r   r   r   r   r     r   r   c                 C   s@   | j ||d}|r| |}t|| d S |t| ksJ d S )Nr   )r   r    r!   r"   rP   )r   rF   r   r$   r%   r   r   r   (test_apply_map_evaluate_lambdas_the_same  s
   
r   c                 C   s   t t | dd }W d    n1 sw   Y  t|tr)t|t| ks+J t t | t}W d    n1 s@w   Y  t|trRt|t| ksTJ d S )Nc                 S   r   r   )rv   r   r   r   r   r     r   z+test_agg_evaluate_lambdas.<locals>.<lambda>)r!   rJ   rK   r]   rR   r   lenrv   )r   r$   r   r   r   test_agg_evaluate_lambdas  s   "r   op_namer]   r   c                 C   s   d}|dkrt nd }tj||d t| |dd }W d    n1 s%w   Y  t| | d d}t|| tjt |d | dd }W d    n1 sRw   Y  t|| d S )	Nzcannot aggregater]   r[   c                 S      t | | d gddgdS Nr4   r   x^2r/   r   r   r   r   r   r         z)test_with_nested_series.<locals>.<lambda>r4   )r   r   c                 S   r   r   r   r   r   r   r   r     r  )rK   r!   rJ   getattrr   r   r]   )r<   r   r`   warningr$   r%   r   r   r   test_with_nested_series  s   r  c                 C   s<   |   }| dddddd ddd d	d
}t|| d S )Ncountmeanstdr   c                 S   
   |  dS )Ng      ?quantiler   r   r   r   r        
 z)test_replicate_describe.<locals>.<lambda>medianc                 S   r  )Ng      ?r	  r   r   r   r   r     r  r   )r  r  r  r   z25%z50%z75%r   )describer   r!   r"   )r   r%   r$   r   r   r   test_replicate_describe  s   r  c                 C   s>   |  ddg}t|  |  gddg| jd}t|| d S )Nsumr  r,   )r]   r   r  r  r-   r!   r"   )r   r$   r%   r   r   r   test_reduce  s   r  z	how, kwdsc                 C   s   t g d}t|| d	i |}|j}||ksJ t|| g dfi |}t dddd}t|| t|| ddddfi |}t|| d S )
N)r3   r4   Nsize)r  r  r        @       @g      ?r  r  )r  )r   r  r  r!   r"   )howkwdsr=   r$   r%   r   r   r   test_non_callable_aggregates  s   r  c                 C   sN   t dgd }|jddd dd g| d}t g dg dd	}t|| d S )
Nre   r   r  c                 S   r   r   r  r   r   r   r   r     r   z3test_series_apply_no_suffix_index.<locals>.<lambda>r   )   r  r  )r  r   r   r   )r   r   r!   r"   )r   r=   r$   r%   r   r   r   !test_series_apply_no_suffix_index  s   r  zdti,expl    ,b/ r   r   r   rq   rD   
2020-01-01rg   tsr   awarec                 C   s:   |r	|  dj}n| j}t|dd }t|| d S )NUTCc                 S   s   t ddgS )Nr3   r4   r   r   r   r   r   r     s    zCtest_apply_series_on_date_time_index_aware_series.<locals>.<lambda>)r   r/   r   r   r!   r   )dtir9   r  r/   r$   r   r   r   1test_apply_series_on_date_time_index_aware_series  s
   r  zby_row, expected)Fr3   c                 C   sJ   t tjdtjdtddddd}t |jjdd | d	}t|| d S )
NrD   rq   r  r  )r   rx   r   c                 S   r   r@   r   r   r   r   r   r     r1   zCtest_apply_scalar_on_date_time_index_aware_series.<locals>.<lambda>r   )	r   r6   aranger;   r   r/   r   r!   assert_equal)r   r%   r   r$   r   r   r   1test_apply_scalar_on_date_time_index_aware_series  s   r"  c                 C   s~   ddg}t |}t|jt j| d}tt|| dtjt jt jg}t |}t|}|jt j| d}tt|| d S )Nz00:00:01z00:00:02r   )	r}   to_timedeltar   r   r!   r"   r6   rE   NaT)r   list_of_valid_stringsrU   rZ   list_of_stringsr#   r   r   r   test_apply_to_timedelta#  s   

r'  z
ops, namesr  r  zhow, kwargsc           	         s   t  fddt||D }d|_|dkrtnd }dd| d}tj||d t ||fi |}W d    n1 s?w   Y  t|| d S )	Nc                       i | ]	\}}|| qS r   r   .0r-   r   r   r   r   
<dictcomp>@      z/test_apply_listlike_reducer.<locals>.<dictcomp>r   r]   zusing Series.[r   ]r[   )	r   zipr-   rK   r   r!   rJ   r  r"   )	r   opsnamesr  r^   r%   warnr`   r$   r   r+  r   test_apply_listlike_reducer1  s   r3  r0  r   r   c           	         s   t  fdd| D } j|_|dkrtnd }d}tj||d t ||fi |}W d    n1 s8w   Y  t|| d S )Nc                    r(  r   r   r)  r+  r   r   r,  X  r-  z/test_apply_dictlike_reducer.<locals>.<dictcomp>r]   zusing Series.[sum|mean]r[   )r   itemsr-   rK   r!   rJ   r  r"   )	r   r0  r  r^   r   r%   r2  r`   r$   r   r+  r   test_apply_dictlike_reducerI  s   r5  r7   r   c                    sl   t jdd& t fdd|D dd}||_ j||d}t|| W d    d S 1 s/w   Y  d S )Nr'   r(   c                    s   g | ]}| qS r   r   )r*  r   r+  r   r   
<listcomp>m  s    z3test_apply_listlike_transformer.<locals>.<listcomp>r3   r   r   )r6   r8   r   r   r   r!   r   )r   r0  r1  r   r%   r$   r   r+  r   test_apply_listlike_transformera  s   "r7  zops, expectedc                 C   r0   r   r   r   r   r   r   r   v  r1   r2   c                 C   r   r   r  r   r   r   r   r   w  r   r   c                 C   s*   t g d}|j| |d}t|| d S Nr2   r   r   r   r!   r!  )r0  r%   r   r#   r$   r   r   r   test_apply_listlike_lambdas  s   	r:  c                    sn   t jdd' t fdd| D } j|_ j||d}t|| W d    d S 1 s0w   Y  d S )Nr'   r(   c                    r(  r   r   r)  r+  r   r   r,    r-  z3test_apply_dictlike_transformer.<locals>.<dictcomp>r   )r6   r8   r   r4  r-   r   r!   r"   )r   r0  r   r%   r$   r   r+  r   test_apply_dictlike_transformer  s   "r;  c                 C   r0   r   r   r   r   r   r   r     r1   r   c                 C   r   r   r  r   r   r   r   r     r   c                 C   s*   t g d}|j| |d}t|| d S r8  r9  )r0  r   r%   r#   r$   r   r   r   test_apply_dictlike_lambda  s   r<  c                 C   s   t dtdittddd}|jdd }t dtjtjgddtjgg dgttdd	dttdddd
}t|| d S )Nr   r   r,   c                 S   s"   t t| d tt| d ddS )Nr3   yr,   )r   r   r   r   r   r   r   r     s   " z0test_apply_retains_column_name.<locals>.<lambda>              ?)r>  r?  r  r=  )r   r/   )	r   r   r   r   r   r6   rE   r!   r   )r   dfr$   r%   r   r   r   test_apply_retains_column_name  s   rA  c                  C   sF   t ddtgg dd} | t}t tttgg dd}t|| d S )Nr   string)rU   rZ   rW   r   )r   floatr   rv   r   rP   r!   r"   r   r   r   r   test_apply_type  s   
rD  c                  C   sV   t g dg dg} | dd }tddgddgd	d
gtjdgd}t|| d S )Nr2   )re   r   r   r   c                 S   r   r   r   r   r   r   r   r     r   z6test_series_apply_unpack_nested_data.<locals>.<lambda>r?  g      @r  g      @r  g      @r   )r   r3   r4   r   )r   r   r   r6   rE   r!   r   )r#   r$   r%   r   r   r   $test_series_apply_unpack_nested_data  s   $rE  )Lnumpyr6   rk   pandasr}   r   r   r   r   r   r   r   pandas._testing_testingr!   pandas.tests.apply.commonr	   fixturer   r&   r?   rB   r   parametrizerL   rT   ra   rf   rn   r   r   r   r   r   r   rE   r   r   r   r   r   r   r   rP   r   r   r  r  r  r  r  DatetimeIndexrepeatr   r;   r  onesr"  r'  r  r  arrayr3  r5  r7   r   r7  r:  r9   r;  from_arraysr   r<  rA  rD  rE  r   r   r   r   <module>   s
   $	


*


 
&
#


	

		
		

		
"

