o
    ҷh                     @   sR  d dl mZm Z  d dlmZ 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 d dlmZ d dlmZ dd Zdd	 Zd
d Zdd Zejjde	g dg ddg dfe	g dg ddd dgfe	ddgidgfe	g deddddgfe	g dg ddg dfe	edg dg dd g d!fe	g dg d"gg d!d#ddgfgg d$d%d&d' Zd(d) Zd*d+ Zejd,d-d. d/d. d0d. d1d. gd2d3 Zd4d5 Zd6d7 Z d8d9 Z!d:d; Z"d<d= Z#d>d? Z$d@dA Z%dBdC Z&dDdE Z'dFdG Z(dHdI Z)ejdJdKdLgdMdN Z*dOdP Z+dQdR Z,dSdT Z-dUdV Z.dWdX Z/ejdYdKdLgdZd[ Z0d\d] Z1d^d_ Z2d`da Z3dbdc Z4ddde Z5dfdg Z6dhdi Z7djdk Z8dldm Z9dndo Z:dpdq Z;drds Z<ejdte = e =  e = > gdudv Z?dwdx Z@ejdydLdKgdzd{ ZAd|d} ZBejd~eCedeDd dejEddddeFg dgdd ZGejddd. d dgddggfdd. d dhddhgfdd. ddgfdd. d dddddgfdd. d d iddigd diddiggfgdd ZHdd ZIejddd. dd. gdd ZJdd ZKejddd. dd. gejdJdKdLgdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQejddKdLgdd ZRejddLe	g dg dge
g deSdd#gdKeddgejFddgddgddggdd ZTdd ZUdd ZVdd ZWdd ZXejddKdLgdd ZYddÄ ZZejdg dg dŢgddǄ Z[ejdg dg dɢgg dg dʢgg dˢg d̢ggdd΄ Z\ejddKgi fg ddKifgdd҄ Z]ejdddgddք Z^ejdddd. fddd. fdddgdd߄ Z_ejddej`ddgej`dddgd ddej`ggdd Zadd ZbdS )    )datedatetime)StringION)	DataFrameIndex
MultiIndexSeriesbdate_range)get_groupby_method_argsc                     s|   t dttdd dgd } g   fdd}| d| t dgd dgd dtdd	dd
}t	 d | d S )N   
   r   )indexcolumnsc                    s     |  d S N)appendgroupgroups R/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_apply.pystore      zFtest_apply_func_that_appends_group_to_list_without_copy.<locals>.storer   )r   r   d   r   )
r   listrangereset_indexgroupbyapplypd
RangeIndextmassert_frame_equal)dfr   expected_valuer   r   r   7test_apply_func_that_appends_group_to_list_without_copy   s     r&   c                  C   s   d} t jt| d g dddggd}|d}||jj }||jjdd }t	
|| t jt| d g dd	}tg d
tdd}tg d|d}|jddddd }t	|| d S )Na+  2011.05.16,00:00,1.40893
2011.05.16,01:00,1.40760
2011.05.16,02:00,1.40750
2011.05.16,03:00,1.40649
2011.05.17,02:00,1.40893
2011.05.17,03:00,1.40760
2011.05.17,04:00,1.40750
2011.05.17,05:00,1.40649
2011.05.18,02:00,1.40893
2011.05.18,03:00,1.40760
2011.05.18,04:00,1.40750
2011.05.18,05:00,1.40649)r   timevaluer   r'   )headernamesparse_dates	date_timec                 S      |   S r   idxmaxxr   r   r   <lambda>@       z#test_apply_issues.<locals>.<lambda>)r)   r*   )z
2011.05.16z
2011.05.17z
2011.05.18dtypename)z00:0002:00r7   r   F
group_keysc                 S   s   | d | d    S )Nr'   r(   r.   r0   r   r   r   r2   K       )r    read_csvr   	set_indexr   r   r   r/   r   r"   r#   r   objectr   assert_series_equal)sr$   expectedresultexp_idxr   r   r   test_apply_issues'   s(   

rC   c                     s   t g dg ddddgd tj jdd   jdd  gddd	gd
} d}tjt|d  jdd  jD dd}W d    n1 sFw   Y  |	 fdd}t
||  d S )NarE   brF   rE         ?       @      @      @g      @keydatarM   rN   r   r   float64r=   axiskeys+DataFrame.groupby with axis=1 is deprecatedmatchc                 S      g | ]}t |qS r   str.0r1   r   r   r   
<listcomp>[   r:   z&test_apply_trivial.<locals>.<listcomp>rR   c                    s    j dd  S Nr   ilocr0   r$   r   r   r2   \       z$test_apply_trivial.<locals>.<lambda>)r   r    concatr`   r"   assert_produces_warningFutureWarningr   dtypesr   r#   r@   msggbrA   r   ra   r   test_apply_trivialP   s   ,rj   c                     s   t g dg ddddgd tj  gddd	gd
} d}tjt|d  jdd  jD ddd}W d    n1 s=w   Y  | fdd}t	||  d S )NrD   rG   rL   rM   rN   rO   r   rP   r=   rQ   rT   rU   c                 S   rW   r   rX   rZ   r   r   r   r\   j   r:   z+test_apply_trivial_fail.<locals>.<listcomp>T)rR   r9   c                    s    S r   r   r0   ra   r   r   r2   k       z)test_apply_trivial_fail.<locals>.<lambda>)
r   r    rc   r"   rd   re   r   rf   r   r#   rg   r   ra   r   test_apply_trivial_faila   s   rl   zdf, group_names)r   r   r         )rE   rE   rE   rF   crE   rF   r   rm   rn   r   r   r   r   )r   r   r   r   r   rE   )r   r   r   rm   rm   r   r   rm      rm   r   rm   rn   r   rm   rn   )            rs   	   )rE   two
aaabbbcccc)
rn   ru   rn   rw   rv   rm   r   ry   rv   ru   )
ru   r   rm   rm   rm   rx   rs   rw   rm   rs   )rE   BCrE   rF   ro   )rm   rm   rn   rO   )GH2936zGH7739 & GH10519GH10519GH2656GH12155GH20084GH21417)idsc                    s   g   fdd} fdd} fdd} fdd} fd	d
}|||||fD ]} d d = | j ddd|  |ks>J q'd S )Nc                    s     | j |  S r   )r   r6   copyr   r*   r   r   f_copy   s   z/test_group_apply_once_per_group.<locals>.f_copyc                    s     | j | S r   r   r6   r   r   r   r   f_nocopy      z1test_group_apply_once_per_group.<locals>.f_nocopyc                    s     | j dS Nr   r   r   r   r   r   f_scalar   r   z1test_group_apply_once_per_group.<locals>.f_scalarc                    s     | j d S r   r   r   r   r   r   f_none   s   z/test_group_apply_once_per_group.<locals>.f_nonec                    s     | j tdgdgdS )Nr   rp   )r   r6   r   r   r   r   r   f_constant_df   s   z6test_group_apply_once_per_group.<locals>.f_constant_dfrE   Fr8   )r   r   )r$   group_namesr   r   r   r   r   funcr   r   r   test_group_apply_once_per_groupp   s   '
r   c                 C   sZ   d}t g dg ddg dd}|jdddd	d
  |  jd}||ks+J d S )Nrm   )r   r   r   r   r   r   r   r   )02468101214)group_by_columntest_columnr   r   Fr8   c                 S   s   t dS )Nfunction_called)printra   r   r   r   r2      r3   z2test_group_apply_once_per_group2.<locals>.<lambda>r   )r   r   r   
readouterroutcount)capsysr@   r$   rA   r   r   r    test_group_apply_once_per_group2   s   r   c                  C   s^   t g dtdd} dd }dd }| jdd	d
|}| jdd	d
|}t|| d S )N)r   r   r   rn   )ArF   c                 S      | S r   r   r   r   r   r   slow      z,test_apply_fast_slow_identical.<locals>.slowc                 S   r-   r   r   r   r   r   r   fast   s   z,test_apply_fast_slow_identical.<locals>.fastr   Fr8   )r   r   r   r   r"   r#   )r$   r   r   fast_dfslow_dfr   r   r   test_apply_fast_slow_identical   s   r   r   c                 C   r   r   r   r0   r   r   r   r2      rk   r2   c                 C   s   | d d  S r   r   r0   r   r   r   r2          c                 C      | j ddS )NFdeepr   r0   r   r   r   r2      r   c                 C   r   )NTr   r   r0   r   r   r   r2      r   c                 C   s@   t g dg dg dd}|jddd| }t|| d S )Nr   rm   rm   rm   r   rm   rn   ru   )rv   rw   rx   rs   )grE   rF   r   Fr8   r   r   r   r"   r#   )r   r$   rA   r   r   r   5test_groupby_apply_identity_maybecopy_index_identical   s   r   c                  C   s   t tjddg dd} | jdd ddj}| j}t|| t d	g d
i} | j	d | d< | 
d  j}| j
ddd j}t|| d S )Nrm   rw   onerz   rz   threer   rz   foo1foo2c                 S   r   r   r   r0   r   r   r   r2     rk   z-test_apply_with_mixed_dtype.<locals>.<lambda>r   r]   c1)r   rm   rw   rw   rs   rI   c2Fas_index)r   nprandomdefault_rngstandard_normalr   rf   r"   r>   r   r   meanr   r   )r$   rA   r@   result1result2r   r   r   test_apply_with_mixed_dtype   s   r   c                  C   s6  t g dg dtdd} | jddd}| jddd}|d	j}|d	j}tg d
}t|| t|| |dd j}|dd j}t	
g d}g d}	t	j
|	dd gd}
t||
 t|| ttd}t dd	gd	dgddgddgd	dgg|d} | jdddddd j}t|| d S )N)rF   rF   rE   ro   rE   rF   )r   rm   r   r   rn   r   rw   )item_iduser_idr'   r   Tr   Frm   )r   r   rm   ru   c                 S   
   |  dS Nrm   headr0   r   r   r   r2         
 z-test_groupby_as_index_apply.<locals>.<lambda>c                 S   r   r   r   r0   r   r   r   r2   !  r   ))r   r   )r   rm   r   r   rm   ru   )r   r   r   rm   )rm   r   )rn   ru   r   abcder   rn   ru   rv   r   r   )r   r9   c                 S   r   r   r   r0   r   r   r   r2   .  rk   )r   r   r   r   r   r   r"   assert_index_equalr   r   from_tuplesr   )r$   g_asg_not_asres_as
res_not_asexpres_as_applyres_not_as_applyexp_not_as_applytpexp_as_applyindresr   r   r   test_groupby_as_index_apply  s0   *r   c                 C   sx   |  ddg}dd }dd }dd }||}|jjd	ks J ||}|jjd	ks-J ||}|jjd
ks:J d S )Nr   r|   c                 S   s   |   }d|j_|S Nstat)describer   r6   r   rA   r   r   r   desc5  s   z.test_apply_concat_preserve_names.<locals>.descc                 S   s$   |   }d|j_|d t|  }|S r   )r   r   r6   lenr   r   r   r   desc2:  s   z/test_apply_concat_preserve_names.<locals>.desc2c                 S   s0   |   }dt| d|j_|d t|  }|S )Nstat_d)r   r   r   r6   r   r   r   r   desc3A  s   z/test_apply_concat_preserve_names.<locals>.desc3)r   r|   r   )r   r|   N)r   r   r   r*   )three_groupgroupedr   r   r   rA   r   result3r   r   r    test_apply_concat_preserve_names2  s   



r   c                  C   sz   dd } t ddd}ttjdd|d}|jdd	 d
d}|| }t|t	s,J t
|dr3J t|j|j d S )Nc                 S   sN   t jdd t | }W d    n1 sw   Y  t| | |   |dS )Nignore)invalid)r(   demeanedlogged)r   errstatelogr   r   )piecer   r   r   r   fV  s   z%test_apply_series_to_frame.<locals>.fz1/1/2000r   )periodsrm   r   c                 S      | j S r   monthr0   r   r   r   r2   `      z,test_apply_series_to_frame.<locals>.<lambda>Fr8   r6   )r	   r   r   r   r   r   r   r   
isinstancer   hasattrr"   r   r   )r   drtsr   rA   r   r   r   test_apply_series_to_frameU  s   
r  c                 C   s4   |  ddgd t}|jjd d dksJ d S )Nr   r|   r}   rm   r   r|   )r   r   r   r   r*   r$   rA   r   r   r    test_apply_series_yield_constanth  s   r  c                 C   sl   |  ddgt}t|tsJ |jd u sJ |  ddgddg t}t|ts-J |jd u s4J d S )Nr   r|   r}   D)r   r   r   r   r   r6   r  r   r   r   test_apply_frame_yield_constantm  s   r  c                 C   sH   |  ddg}|t}| d }t|j|j t|j|j d S )Nr   r|   r}   )	r   r   r   r   r"   r   r   assert_numpy_array_equalvaluesr$   r   rA   r@   r   r   r   test_apply_frame_to_seriesx  s
   
r  c                 C   s^   | j ddgdd}|t}| jdtjidjdd}t	|j
|j
 t|j|j d S )Nr   r|   Fr   r}   rO   r  )r   r   r   r   renamer   nandropr"   r   r   r  r	  r
  r   r   r   )test_apply_frame_not_as_index_column_name  s
   
r  c                     s   dd }  fdd}t tjddddtjddddtjddd	  d
| } d
d |}tj	||dd |j
dksLJ d S )Nc                 S   s    |  dd   jd d S )Nr|   r}   rm   )r   sumsort_valuesr`   r   r   r   r   trans  s    z-test_apply_frame_concat_series.<locals>.transc                    s,   |   | jd }|  jd d S )Nr|   rm   )r   reindexr   r  r  r`   )r   r   ra   r   r   trans2  s   z.test_apply_frame_concat_series.<locals>.trans2rm   r   rv     r   r|   r}   r   r}   F)check_names)r   r   r   r   integersr   r   r   r"   r>   r6   )r  r  rA   r   r   ra   r   test_apply_frame_concat_series  s   r  c                 C   s>   | j dd dd}|dd }|dd }t|| d S )Nc                 S   r   r   r   r0   r   r   r   r2     r   z&test_apply_transform.<locals>.<lambda>Fr8   c                 S      | d S r   r   r0   r   r   r   r2     r3   c                 S   r  r   r   r0   r   r   r   r2     r3   )r   r   	transformr"   r>   )r  r   rA   r@   r   r   r   test_apply_transform  s   r  c                 C   sP   |  dd dd g}dd }||}|D ]\}}t|j| || qd S )Nc                 S   r   r   yearr0   r   r   r   r2     r   z,test_apply_multikey_corner.<locals>.<lambda>c                 S   r   r   r   r0   r   r   r   r2     r   c                 S   s   |  ddd  S )Nr   r  r   r   r   r   r     s   z%test_apply_multikey_corner.<locals>.f)r   r   r"   r#   loc)tsframer   r   rA   rM   r   r   r   r   test_apply_multikey_corner  s   
r#  r9   TFc                 C   sn   t g dtdd}|jd| ddd }|g d}| r/tjg d	|jgdd gd
|_t	|| d S )N)	r   r   r   rm   rm   rm   rn   rn   rn   ry   )rM   r(   rM   r8   c                 S   s   | j d d S r   r_   r0   r   r   r   r2     rb   z'test_apply_chunk_view.<locals>.<lambda>)r   r   rn   ru   rw   rx   )r   r   rm   rm   rn   rn   r   )
r   r   r   r   taker   from_arraysr   r"   r#   )r9   r$   rA   r@   r   r   r   test_apply_chunk_view  s   r&  c                  C   s@   t g dg dtdddd} | ddg}|dd	  d S )
N)
r   r   r   r   r   r   rm   rm   rm   rm   )
r   r   r   r   r   r   r   r   r   r   ry   )r6   name2r(   r6   r(  c                 S      | j dddS )Nr(   Tinplacer   r0   r   r   r   r2     rb   z4test_apply_no_name_column_conflict.<locals>.<lambda>)r   r   r   r   )r$   r   r   r   r   "test_apply_no_name_column_conflict  s   
	r,  c                  C   sp   t g dtg ddtddd} dd }| jd	d
d|}|  }tg dd|d< t|| d S )NrH   rH   rH   rI   rI   rI   r~   rm   rH         @r   ro   vc                 S   ,   | d }||   | |    | d< | S Nr0  v2minmaxr   r0  r   r   r   r         z#test_apply_typecast_fail.<locals>.fr   Fr8           g      ?r   r3  )	r   r   tilearanger   r   r   r"   r#   )r$   r   rA   r@   r   r   r   test_apply_typecast_fail  s   
r=  c                  C   s   t g dg dg} tg dtg ddtddd| d	}d
d }|jddd|}| }tg dd|d< t	
|| d S )N)r   r   r   r   r   r   rt   r-  r~   rm   rH   r.  r/  r   c                 S   r1  r2  r4  r7  r   r   r   r     r8  z%test_apply_multiindex_fail.<locals>.fr   Fr8   r9  r3  )r   r%  r   r   r;  r<  r   r   r   r"   r#   )r   r$   r   rA   r@   r   r   r   test_apply_multiindex_fail  s   
	r>  c                 C   s4   | j dd dddd }| d }t|| d S )Nc                 S   r   r   r  r0   r   r   r   r2     r   z#test_apply_corner.<locals>.<lambda>Fr8   c                 S   r  r   r   r0   r   r   r   r2     r3   rm   )r   r   r"   r#   )r"  rA   r@   r   r   r   test_apply_corner  s   r?  c                  C   s\   t g dg dg dd} dd }dd }| d	|}| d	|}t|| d S )
N)r   r      i,  )rE   rF   ro   ro   r   )id_fieldcategoryr(   c                 S   s$   | j d dkr|  S | | jdk S Nr   r   ro   )shaper   rB  r0   r   r   r   filt1  s   z&test_apply_without_copy.<locals>.filt1c                 S   s    | j d dkr	| S | | jdk S rC  )rD  rB  r0   r   r   r   filt2  s   z&test_apply_without_copy.<locals>.filt2rA  r   )rN   rE  rF  r@   rA   r   r   r   test_apply_without_copy  s   rG  test_seriesc                 C   s   t ddgddgddggddgg dd}| r9|dd }|jdd	d
dd }| }| }t|| d S |jdd	ddd }|d}|d}t|| d S )Nr1   poXY)r   rm   rm   r   r   r   F)levelr9   c                 S   r   r   r   r0   r   r   r   r2   (  rk   z<test_apply_with_duplicated_non_sorted_axis.<locals>.<lambda>r8   c                 S   r   r   r   r0   r   r   r   r2   /  rk   )	r   r<   r   r   
sort_indexr"   r>   r  r#   )rH  r$   serrA   r@   r   r   r   *test_apply_with_duplicated_non_sorted_axis   s    

rQ  c                  C   sf   g d} g d}t ddgd | d|d}t| |dd	}d
d }|jdddj|}t|| d S )Nr   r   r   rm   rm   Group1Group2rm   r   r(   r   r(   r   r6   c                 S   s"   |  t| j | j d S r^   )r  r   r<  r   r5  r6  r0   r   r   r   reindex_helperA  s   "z1test_apply_reindex_values.<locals>.reindex_helperr   Fr8   )r   r   r   r(   r   r"   r>   )r	  indicesr$   r@   rW  rA   r   r   r   test_apply_reindex_values7  s   rY  c                  C   sv   d} t jdjdd| d}t|t jd| g d| d  d}|jd	d
d}dd }||}d|v s9J d S )Nr  rm   r   r   )size)foobarbazquxru   )rM   value1value2rM   Fr8   c                 S   s   | d d | d< | S )Nr_  rm   value3r   r   r   r   r   r   X  s   z"test_apply_corner_cases.<locals>.fra  )r   r   r   r  r   r   r   r   )Nlabelsr$   r   r   rA   r   r   r   test_apply_corner_casesI  s   
re  c                  C   s:  t ddgdgd ddgd} | dgdd	 }t| j| _| dgd
d	 }t|d |d  t g dg dtdgd d} dd }| d|d }| j	}| j
|_t|| dd }t g dg dg dg dd}| }t|j|_|d|j}|d|j}t|| d S )Nr   rm   z
2017-03-02r[  inf)NumberDateStrrg  c                 S   
   | j d S r   r_   r0   r   r   r   r2   j  r   z;test_apply_numeric_coercion_when_datetime.<locals>.<lambda>c                 S   rj  r   r_   r0   r   r   r   r2   l  r   ri  )r         )r[  3r   z12:31:22rn   )r   r|   Tc                 S   s   | j d dg S )Nr   r|   r_   rb  r   r   r   get_Bt  s   z8test_apply_numeric_coercion_when_datetime.<locals>.get_Br   r|   c                 S   s   t g dtd}dt| jv rt| | jdk jjd |d< dt| jv rCt| | jdk jjd |d< t| | jdk jjd |d< |S )	N)p1p2useTime)r   r5   step1r   rp  step2rq  rr  )r   r=   r   StaterY   Machiner	  oTime)toolr   r   r   r   predictions}  s   z>test_apply_numeric_coercion_when_datetime.<locals>.predictions)r|   r|   r   r   )rs  rt  rs  rt  ) z2016-09-19 05:24:33rz  z2016-09-19 23:59:04)2336L36Rr}  )Keyru  rw  rv  r~  )r   r   r   r    to_datetimerh  r"   r>   	Timestampr|   r   r   r   rw  rp  )r$   r@   rA   ro  ry  df1df2r   r   r   )test_apply_numeric_coercion_when_datetime`  s8   	r  c                  C   s   t g dtdgd d} | j| j | d< | ddd }t g dtd	d
gd tdgd dd}t	|| d S )Nr  z2017-02-01 00:00:00rn   )clientidr   time_delta_zeror  c                 S   s   t | j | j dS )N)clientid_ager   )r   r  r5  r   )ddfr   r   r   r2     s    z?test_apply_aggregating_timedelta_and_datetime.<locals>.<lambda>r   r  )r  r  r   )
r   r   
datetime64r   r   r   timedelta64r<   r"   r#   r$   rA   r@   r   r   r   -test_apply_aggregating_timedelta_and_datetime  s$   
r  c                  C   s~   ddgddgddgddgddgg} t | d	d
gtddd}|d	 }t g dg dd}|jd	dd t|| d S )Nr   r   r|   rk  rl  r}   (   2   NameValuez
2020-09-01z
2020-09-05rM  r  )r   r  Z   )r  r  Tr*  )r   r    
date_ranger   r  r<   r"   r#   )rN   r$   rA   r@   r   r   r    test_apply_groupby_datetimeindex  s   "r  c                  C   s   t ddd tdD d} dd }dd	 }| jd
gd|}t ddidgd}d
|j_| jd
gd|}t tdddddddgd}d
|j_t	
|| t	
|| d S )Nr   c                 S   s   g | ]}t  qS r   )r   now)r[   nnr   r   r   r\     r:   z'test_time_field_bug.<locals>.<listcomp>r   rp   c                 S   s   t ddiS )Nro   rm   r   batchr   r   r   func_with_no_date  s   z.test_time_field_bug.<locals>.func_with_no_datec                 S   s   t tdddddS )N  r   rm   rF   ro   )r   r   r  r   r   r   func_with_date     z+test_time_field_bug.<locals>.func_with_daterE   byro   rm   r   r  nsr  )r   r   r   r   r   r6   r    r  as_unitr"   r#   )r$   r  r  dfg_no_conversiondfg_no_conversion_expecteddfg_conversiondfg_conversion_expectedr   r   r   test_time_field_bug  s   r  c                     s`   t g dg dg dg dd} | ddg} | jddgdd	}d
d  | fdd d S )N)rE   rE   rE   rF   rF   rF   rE   rE   rE   rF   rF   rF   )ro   ro   r   r   r   ero   ro   r   r   r   r  )g?rm   rn   ru   rv   rw   rm   ru   rw   rs   r   rm   )gffffff@rs   ry   r         rs   rx   rw   rv   ru   rn   )group1group2weightr(   r  r  T)rN  sortc                 S   s   t | | d}|S )Nrn   )r   arrayrepeat)r(   r  r   r   r   r   noddy  s   z7test_gb_apply_list_of_unequal_len_arrays.<locals>.noddyc                    s    | j | jS r   )r(   r  r0   r  r   r   r2     rb   z:test_gb_apply_list_of_unequal_len_arrays.<locals>.<lambda>)r   r<   r   r   )r$   
df_groupedr   r  r   (test_gb_apply_list_of_unequal_len_arrays  s   
r  c                  C   sD   t g dg dd} dd }| d|}t  }t|| d S )Nrr   )rs   rx   ru   rv   )r   random_varsc                 S   s   d S r   r   r0   r   r   r   	test_func  r   z.test_groupby_apply_all_none.<locals>.test_funcr   r   )test_dfr  rA   r@   r   r   r   test_groupby_apply_all_none  s
   r  c            	      C   s   t g dg dd} t g dg dd}dd }| d|}|d|}tjddgd	d
ggdd gd}tjd
d
gddggdd gd}t ddgd	d
gd|d}t d
d
gddgd|d}t|| t|| d S )N)r   r   r   rm   )r   r   rm   rn   )r   varsr   c                 S   s    | j d dk r	d S | jddg S )Nr   rm   r'  )rD  r`   r0   r   r   r   r  	  s   z0test_groupby_apply_none_first.<locals>.test_funcr   r   r   rm   r   rn   r   )r   r   r   r   r%  r"   r#   )	test_df1test_df2r  r   r   index1index2	expected1	expected2r   r   r   test_groupby_apply_none_first  s   r  c                  C   sl   t ddgddgd} | d}|dd }tdgd	tjddgdggdd gd
dd}t|| d S )Nr   r   filledempty)r(   r   r   c                 S   s   | | j dk d S )Nr   r(   )r(   r   r   r   r   r2         z7test_groupby_apply_return_empty_chunk.<locals>.<lambda>r(   r   r6   r   )	r   r   r   r   r   from_productr  r"   r>   )r$   r   rA   r@   r   r   r   %test_groupby_apply_return_empty_chunk  s   
r  c                  C   sx   t d g dg dd} | jddd}|dd	 }t g d
g dd}t|| |dd	 }t|| d S )Nza a brq   ru   rw   rv   r  r   Fr8   c                 S      | |    S r   r  r0   r   r   r   r2   ,  r   z-test_apply_with_mixed_types.<locals>.<lambda>)gUUUUUU?gUUUUUU?r   )皙?g333333?rH   r|   r}   c                 S   r  r   r  r0   r   r   r   r2   0  r   )r   splitr   r  r"   r#   r   )r$   r   rA   r@   r   r   r   test_apply_with_mixed_types'  s   r  c                  C   sh   t dddgitddgd} | ddd }ttdgtdggtddgddd}t|| d S )NrE   r   rm   r   c                 S   r   r   r   rb  r   r   r   r2   7  r   z*test_func_returns_object.<locals>.<lambda>r6   )r   r   r   r   r   r"   r>   r  r   r   r   test_func_returns_object4  s   (r  group_column_dtlikec                 C   sT   t dg| gd}|ddd }t dgtdgdddd	gd
}t|| d S )Nr[  rp   rE   c                 S   s   t dgdgdS )Nspam*   r   r  r0   r   r   r   r2   H      z+test_apply_datetime_issue.<locals>.<lambda>r  r=   r4   r  rO   r   r   r   r   r"   r#   )r  r$   rA   r@   r   r   r   test_apply_datetime_issue=  s   
r  c               	   C   s   t tdtdtdtdtddddddddddddddd} dd }| d	|d
 }tdgtjdgd	dd
d}t|| d S )Nz2015-02-24 00:00:00)r   r   rm   rn   ru   zsome UA stringzanother UA string17661101)day	userAgentuserIdc                 S   s   t dd |  D S )Nc                 S   s    i | ]\}}||  jd  qS )r   )value_countsr   )r[   ro   r?   r   r   r   
<dictcomp>m  s     zYtest_apply_series_return_dataframe_groups.<locals>.most_common_values.<locals>.<dictcomp>)r   itemsra   r   r   r   most_common_valuesl  r  zEtest_apply_series_return_dataframe_groups.<locals>.most_common_valuesr  r  z
2015-02-24r  rV  )	r   r    r  r   r   r   DatetimeIndexr"   r>   )tdfr  rA   r@   r   r   r   )test_apply_series_return_dataframe_groupsP  s6   r  rB  c                 C   s   ddgd }| r"t j|g dd}t jg dg ddd}g d}ntddgdd	}d
dg}t||d|d}ttd|ttdttdd	ddg}|j
ddddd }t|| |jjddgkslJ d S )Nr   rm   rv   rq   )
categoriesr|   )r  r6   )rk     r   r  rk  r  )r}   r  r   r   )r   r|   r}   r  r   F)observedc                 S   r-   r   r  r0   r   r   r   r2     r3   z-test_apply_multi_level_name.<locals>.<lambda>)r    CategoricalCategoricalIndexr   r   r   r<  r   r   r<   r   r   r"   r#   r   r*   )rB  rF   expected_indexexpected_valuesr@   r$   rA   r   r   r   test_apply_multi_level_namev  s$   

"
r  c               	   C   s   t jtdddddddftdddddd	d
ftdddddddftdddddddfgg dd} | ddd j}tt	dt
t
tjt
gg dd}t|| d S )Ni  r   reddarkr   r  greenstormyrm   9i  bluebrightrn   r   i  calmru   potato)observationcolormood	intensityscorerO   r  c                 S   rj  r   r_   rb  r   r   r   r2     r   z;test_groupby_apply_datetime_result_dtypes.<locals>.<lambda>zdatetime64[ns]r   )r   from_recordsr    r  r   r   rf   r   r   r5   r=   int64r"   r>   )rN   rA   r@   r   r   r   )test_groupby_apply_datetime_result_dtypes  s   	r  r   abcrn   2020r  )r   freq))rE   r   )rE   r   )rF   r   c                 C   sB   t g dg dd| d}|jddddd	 }t|| d S )
N)r   r   rm   )r   r   r   rU  r   r   Fr8   c                 S   r   r   r   r0   r   r   r   r2     rk   z8test_apply_index_has_complex_internals.<locals>.<lambda>r   )r   r$   rA   r   r   r   &test_apply_index_has_complex_internals  s   r  zfunction, expected_valuesc                 C   
   | j  S r   )r   to_listr0   r   r   r   r2     r   c                 C      t | j S r   )setr   r  r0   r   r   r   r2     rb   c                 C   r  r   )tupler   r  r0   r   r   r   r2     rb   )r   r   rm   rn   c                 C   s   t t| j S r   )dict	enumerater   r  r0   r   r   r   r2     r  c                 C   s   dd t | j D S )Nc                 S   s   g | ]\}}||iqS r   r   )r[   nir   r   r   r\         z<lambda>.<locals>.<listcomp>)r  r   r  r0   r   r   r   r2     r  c                 C   sJ   t g ddgd}|d| }t|tddgddd}t|| d S )N)r   r   r|   r|   r   rO   r   r|   r  r   r   r   r   r   r   r"   r>   )functionr  r$   rA   r@   r   r   r   1test_apply_function_returns_non_pandas_non_scalar  s   r	  c                  C   sl   dd } t g ddddtjgd}|d| }td	d
gdgtjggtg dddd}t|| d S )Nc                 S   s   | d j  S )Nr|   )r	  flattenr   r   r   r   fct  r   z4test_apply_function_returns_numpy_array.<locals>.fct)rE   rE   rF   noner   rm   rn   r  r   rH   rI   rJ   )rE   rF   r  r  r   )	r   r   r  r   r   r   r   r"   r>   )r  r$   rA   r@   r   r   r   'test_apply_function_returns_numpy_array  s    r  r  c                 C   r   r   r   grr   r   r   r2     r   c                 C   s   | j d d S r^   r   r  r   r   r   r2     rb   c                 C   sh   t g ddgd}|d| }ttg dtg dtddggtg ddd	d
}t|| d S )N)
r   rm   rm   rm   r   rm   rn   r   rn   r   idrO   )r   ru   rx   ry   )r   rm   rn   rv   rw   rs   rq   r  r   r  )r  r$   rA   r@   r   r   r    test_apply_function_index_return  s    r  c                  C   sT   t g dg dd} | jddddd }t g d	g d
d}t|| d S )Nr   )r   rm   ru   ru   rv   rw   r   r   Fr   c                 S   r-   r   )r   r0   r   r   r   r2     r3   zAtest_apply_function_with_indexing_return_column.<locals>.<lambda>)r   r   rz   )rJ   rK   rK   r   r  r   r   r   /test_apply_function_with_indexing_return_column  s   r  udfc                 C   r-   r   r   r0   r   r   r   r2     r3   c                 C   s   |   dd S )Nc                 S   s   | d S r^   r   )yr   r   r   r2     r3   z<lambda>.<locals>.<lambda>)r   r  r0   r   r   r   r2     r  c                 C   s   t ddgddgd}|jd| d|}|jj|j| d|}| r5|jjdks+J |jjdks3J d S |jjdks=J |jjdksEJ d S )NrE   rF   r   rm   r  r   r8   )r   r   r   r|   r   r   nlevels)r9   r  r$   	df_resultseries_resultr   r   r   test_apply_result_type  s   	r  c                  C   sV   t g dg dd} | jddddd }| jdddd	d }t|| d S )
N)rm   r   rm   rq   r  r   Fr8   c                 S   r   r   r   r0   r   r   r   r2     rk   z4test_result_order_group_keys_false.<locals>.<lambda>c                 S   r-   r   r   r0   r   r   r   r2     r3   r   r  r   r   r   "test_result_order_group_keys_false	  s   r  c                  C   s   dgd dgd  dgd  } t | }t j| dd}tttdd td|d	}tttdd td|d	}|jd
dddd }|jd
dddd }t|| d S )Nz
2001-01-01rm   z
2001-01-02z
2001-01-03UTC)tzrn   rw   )r1   r  tr1   Fr8   c                 S      | ddg   S Nr1   r  r   ra   r   r   r   r2     r  z1test_apply_with_timezones_aware.<locals>.<lambda>c                 S   r  r  r   ra   r   r   r   r2     r  )	r    r  r   r   r   r   r   r"   r#   )datesindex_no_tzindex_tzr  r  r   r   r   r   r   test_apply_with_timezones_aware  s   
  r"  c                 C   s  t g dg dg dd}t ddgddgd	d
gdtddgddd}|jdd}d}tjt|dd |t}W d    n1 sDw   Y  t|| |jdd}t	| |}t
|| | }tjt|dd |t}W d    n1 syw   Y  t|| d S )N)c   r#  r#  X   r$  r$  )r   rm   rn   ru   rv   rw   )r   rk  rl  r  r  <   r~   i  i)     rw      r%  r$  r#  rE   r  r   r  z:The behavior of DataFrame.sum with axis=None is deprecatedF)rV   check_stacklevel)r   r   r   r"   rd   re   r   r  r#   r
   getattr)reduction_funcr$   r@   grprh   rA   args_r   r   r   ;test_apply_is_unchanged_when_other_methods_are_called_first   s.   
r.  c               	   C   s   t g dtdddtdddtdddtdddgg ddtg dd	d
d} | ddg}|dd }| jg d }| }t|g d |_	|j
d	d}t|| |j	jd D ]
}t|tu sgJ q]d S )N)rE   rE   rE   rF   i  r   r   rm   r   r  )r   e   f   g   idxr  r   r   r|   c                 S   r   r^   r   r0   r   r   r   r2   R  r   zRtest_apply_with_date_in_multiindex_does_not_convert_to_timestamp.<locals>.<lambda>)r   rm   rn   )r   r|   r2  rO   )r   r   r   r   r   r`   r   r   
from_framer   r  r"   r#   levelstype)r$   r+  rA   r@   valr   r   r   @test_apply_with_date_in_multiindex_does_not_convert_to_timestamp@  s*   




r7  c                  C   s   t tjdddgtddgddggd} d}tjt|d	 | j	j
d
d
d}W d    n1 s4w   Y  |dd }d}tjt|d	 | j
dd
d}W d    n1 s[w   Y  |dd }t||j	 t||  d S )Nrm   rw   ru   r   r|   r   rO   z5The 'axis' keyword in DataFrame.groupby is deprecatedrU   r   rR   rN  c                 S   s   | j dddS )Nr   r8  	droplevelr0   r   r   r   r2   l  rb   zDtest_apply_by_cols_equals_apply_by_rows_transposed.<locals>.<lambda>rT   c                 S   r)  )Nr   r   r8  r9  r0   r   r   r   r2   q  rb   )r   r   r   r   r   r  r"   rd   re   rn  r   r   r#   )r$   rh   ri   by_rowsgb2by_colsr   r   r   2test_apply_by_cols_equals_apply_by_rows_transposed^  s    r>  dropnac                 C   sl   t g ddtjtjddgdtdd}|jd| dd	d
d }| r'| n|jg d }t	|| d S )Nr   rm   rn   ru   rv   rE   rF   )colr   xxyxzr   r   F)r?  r9   c                 S   r   r   r   r0   r   r   r   r2     rk   z5test_apply_dropna_with_indexed_same.<locals>.<lambda>)r   rn   r   rm   ru   )
r   r   r  r   r   r   r?  r`   r"   r#   )r?  r$   rA   r@   r   r   r   #test_apply_dropna_with_indexed_samew  s   rC  zas_index, expected)r   r   r   )rm   rm   r   )rE   rF   N)r5   r   )rm   rm   rF   r   r   c                 C   sH   t g dg dg dd}|jddg| ddd }t|| d S )	NrR  )r   r   r   r   r~   rE   rF   r   c                 S   s   dS r^   r   r0   r   r   r   r2     rk   z5test_apply_as_index_constant_lambda.<locals>.<lambda>)r   r   r   r"   assert_equal)r   r@   r$   rA   r   r   r   #test_apply_as_index_constant_lambda  s   rE  c                  C   sn   t g dg dg ddtdd} | ddd	 }ttd
dtjg ddd gddd}t|| d S )Nr@  )rw   rx   rs   ry   r   )r   r   r   rm   rm   r  rv   r   r}   c                 S   r  r   )r   rO  r0   r   r   r   r2     r   z(test_sort_index_groups.<locals>.<lambda>r   rw   )r   r   r   r  r   r   r   rV  )	r   r   r   r   r   r   r   r"   r>   r  r   r   r   test_sort_index_groups  s   rF  c                  C   sX   t tjddddtdtdd} | j| j| jjjgdd	d	d
 }t
||  d S )Nz
2010-01-0112Hrv   )r  r   r   )r   valsletFr8   c                 S   s   | j dd  S r   r_   r0   r   r   r   r2     rb   z;test_positional_slice_groups_datetimelike.<locals>.<lambda>)r   r    r  r   r   r   rI  r   dtr   r"   r#   )r@   rA   r   r   r   )test_positional_slice_groups_datetimelike  s   
rK  c                  C   sr   t g dg dg dd} | d}|ddg dd	 }t d
dgddgdtddgddd}t|| d S )N)rE   rE   rF   rq   r  r  r   r|   r}   c                 S   s   |  t |   S r   )astypefloatr6  r5  r0   r   r   r   r2     s    z7test_groupby_apply_shape_cache_safety.<locals>.<lambda>rH   r:  rI   r  rE   rF   r  r   r  )r$   ri   rA   r@   r   r   r   %test_groupby_apply_shape_cache_safety  s   
rN  c                  C   s~   t g dg dg dd} | dddg }|dd	 }tjg d
g dgdd gd}tg d|dd}t|| d S )N)rE   rF   rE   rF   )aaacrP  ad)rO  rO  rO  rP  )rE   b1b2rE   rR  rS  c                 S   s   |    S r   )unstackr  r0   r   r   r   r2     r   z3test_groupby_apply_to_series_name.<locals>.<lambda>)rE   rE   rF   rF   rF   )rO  rP  rP  rQ  rO  )arraysr*   )rn   r   rm   r   r   r   rV  )	r   	from_dictr   r   r   r%  r   r"   r>   )r$   r+  rA   expected_idxr@   r   r   r   !test_groupby_apply_to_series_name  s   rX  c                 C   s^   t g dg dddtjtjgd}|jd| d}|dd	 }|d
d	 }t|| d S )NrR  )r   r   rm   rv   r   rm   )r+  r  zr+  )r?  c                 S   s   |  ddS )Nr   rY  )nlargest)grp_dfr   r   r   r2     r   ztest_apply_na.<locals>.<lambda>c                 S   s   | j ddddS )NrY  F)	ascendingr   )r  r   r0   r   r   r   r2     r:   )r   r   r  r   r   r"   r#   )r?  r$   dfgrprA   r@   r   r   r   test_apply_na  s   r^  c                  C   s   t g dg dtjg ddddddgd	d
 } t ddtjdddgddtjdddggg dtjddgddgdd}t| | d S )NrR  )rz  rz  rz  rz  r   r?   )unitr~   rE   rF   c                 S   rj  Nr'  r_   ra   r   r   r   r2     r   z8test_apply_empty_string_nan_coerce_bug.<locals>.<lambda>r   rz  rm   ru   )r   rz  )rm   rz  r   rM  )	r   r    r  r   r   r   r   r"   r#   )rA   r@   r   r   r   &test_apply_empty_string_nan_coerce_bug  s   

&ra  index_values)rH   rI   rJ   c                 C   sb   t g dg ddt| d}t dg ditg ddd	d}|dd
d }t|| d S )N)rO  a2a3rq   rp   r   b_mean)rI   rJ   rH   )rc  rd  rO  rE   r  c                 S   s   t | d  gdgdS )NrF   re  r   )r   r   ra   r   r   r   r2     r  z0test_apply_index_key_error_bug.<locals>.<lambda>)r   r   r   r   r"   r#   )rb  rA   r@   r   r   r   test_apply_index_key_error_bug   s   
rf  zarg,idx)皙?333333?皙?)rg  ri  rh  )r   ru   rn   )rg  r  ri  c                 C   s8   t d| i|d}|jddddd }t|| d S )NrA  r   Fr8   c                 S   r   r   r   r0   r   r   r   r2   B  rk   z5test_apply_nonmonotonic_float_index.<locals>.<lambda>r   )argr2  r@   rA   r   r   r   #test_apply_nonmonotonic_float_index  s   +rk  zargs, kwargsnumeric_onlyc                 C   s>   |  d}|jdg|R i |}|jdd}t|| d S )Nr   r  T)rl  )r   r   r  r"   r#   )r$   r,  kwargsri   rA   r@   r   r   r   test_apply_str_with_argsF  s   
rn  r6   	some_namec                 C   sL   t ddg| d}|jddgdddd }t ddg| d}t|| d S )	Nr   rm   r  rE   Fr8   c                 S   r   r   r   r0   r   r   r   r2   S  rk   z1test_result_name_when_one_group.<locals>.<lambda>)r   r   r   r"   r>   )r6   rP  rA   r@   r   r   r   test_result_name_when_one_groupO  s   rp  z
method, opr   c                 C   rj  r`  )r	  ri   r   r   r   r2   \  r   c                 C   s   | d j d S )NrF   r   r_   rq  r   r   r   r2   ]  rb   )aggskew)rr  prod)rr  r  c              	   C   s^   t g g d}|jddd}t|d}t|| |}tg ddtg dddd}t|| d S )	Nrp   rE   Tr8   rF   rP   r4   )r6   r5   r   )r   r   r)  r   r   r"   r>   )methodopempty_dfri   r   rA   r@   r   r   r   test_empty_dfY  s   
rx  	group_colr:  c                 C   sh   t | g dd}|djdd }ttjdtjgdtjdgg d	gddgd
d}t	
|| d S )N)rm   rm   rm   rm   )ry  	value_colry  c                 S   s   |   jg ddS )Nrq   r   )r  r  r0   r   r   r   r2   z  r:   z0test_apply_inconsistent_output.<locals>.<lambda>rJ   rz  r:  rq   r   r  )r   r   rz  r   r   r   r  r   r  r"   r>   )ry  r$   rA   r@   r   r   r   test_apply_inconsistent_outputq  s   r{  c                  C   sv   t dddddddddd} | dddg dd	 }ttd
ggd tddgdddd}t|| d S )Nr   rm   rp   r  r   r|   r}   c                 S   s   t dgS r   )r   r  r0   r   r   r   r2     r   z7test_apply_array_output_multi_getitem.<locals>.<lambda>r   r  r  rV  )	r   r   r   r   r   r  r   r"   r>   r  r   r   r   %test_apply_array_output_multi_getitem  s    r|  )cr   r   ior   numpyr   pytestpandasr    r   r   r   r   r	   pandas._testing_testingr"   pandas.tests.groupbyr
   r&   rC   rj   rl   markparametrizer   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r#  r&  r,  r=  r>  r?  rG  rQ  rY  re  r  r  r  r  r  r  r  r  r  r  todayr'   r  r  r  r  r  interval_rangeperiod_ranger   r  r	  r  r  r  r  r  r"  r.  r7  r>  rC  r=   rE  rF  rK  rN  rX  r^  ra  rf  rk  rn  rp  rx  r  r{  r|  r   r   r   r   <module>   sl   )"

,
	%#


5	
&


	

	 




)

	



&
