
    h                     X   d Z ddlZddlZddlmZ ddlmZ ddlZ	ddlm
Z
mZmZmZmZmZmZmZ ddlmZ ddlmZ d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d  Z0d! Z1d" Z2ejf                  ji                  d#d$d%d& fd'd%d( fd)d*d+ fd)d,d- fg      d.        Z5ejf                  ji                  d/d$d'g      ejf                  ji                  d0d1d2g      ejf                  ji                  d3d4gd5z  ejl                  d6 eejl                  gd5z  d78      fd4gd5z  d9gd:z  z   d;gd;z  ejl                  gz   d;gd<z  z   d6g d=ejl                  gd>z  z   d?d@gz   d?d@dAejl                  dBdCdDdEdFdGd?d@gg dHejl                  gd>z  z   d?dIgz   d?dId@ejl                  dJdKdLdMdNdAd?dIgdOfg      dP                      Z7ejp                  dQ        Z9ejp                  dR        Z:ejf                  jv                  ejf                  ji                  d#d$d%dS fd'd%dT fd)d*dU fd)d,dV fg      ejf                  ji                  dWdXdYg      ejf                  ji                  dZd[ejx                  j{                  d:      j}                  dd\d5]      j                  e@      id^did[d_i ej                  d[d`iejf                  j                  a      d[dbd_gig      dc                             ZCejf                  jv                  ejf                  ji                  d#d$d%dd fd'd%de fd)d*df fd)d,dg fg      ejf                  ji                  dWdXdYg      ejf                  ji                  dZd[ejx                  j{                  d:      j}                  dd\d5]      j                  e@      id^did[d_id[dbd_gig      ejf                  ji                  dhg di      dj                                    ZDdk ZEejf                  ji                  dld9 eg dmd98      fd9dng eg dmg dmdo      fg      ejf                  ji                  dpg dq      dr               ZFds ZGejf                  ji                  dtd2d1g      ejf                  ji                  dud2d1g      ejf                  ji                  dvg dw      ejf                  ji                  dxdydejl                  ejl                  dzdzdzd{d{d{gfdyd|ejl                  ejl                  dzdzejl                  d{d{ejl                  gfd}ddzdzdzd{d{d{ejl                  ejl                  gfd}d|ejl                  dzdzejl                  d{d{ejl                  ejl                  gfg      d~                             ZHejf                  ji                  ddyd}g      d        ZIejf                  ji                  dd ej                  dejf                  j                  d      a      g      ejf                  ji                  dd|dg      ejf                  ji                  dg d      ejf                  ji                  ddd|g      d                             ZJejf                  ji                  ddydddejl                  dddgfd}ddddddejl                  gfg      d        ZKejf                  ji                  dej                  ej                  g      d        ZNd ZOejf                  ji                  dePeQej                  ej                  ddg      d        ZRejf                  ji                  dddgd:z  dgd>z  z   dgz   fddgd:z  dgd>z  z   dgz   fg      d        ZSd ZTejf                  ji                  dg d      d        ZUejf                  ji                  dg d      ejf                  ji                  ddd[ edg      fg      d               ZVd ZWd ZXd ZYd ZZd Z[d Z\d Z]d Z^ejf                  ji                  ddgddgg      d        Z_d Z`d Zad Zbd Zcejf                  ji                  dej                  g dfd dejl                  d;d:ejl                  gfg      ejf                  ji                  ddgddgg      ejf                  ji                  dd2d1g      d                      Zeejf                  ji                  ddddgg      d        Zfejf                  ji                  dddg      ejf                  ji                  dd2d1g      d               Zgy)z test with the .transform     N)lib)ensure_platform_int)Categorical	DataFrameIndex
MultiIndexSeries	Timestampconcat
date_range)get_groupby_method_argsc                 Z    t        j                  | |z
        dk  j                         sJ y )Ng-q=)npabsallabs     RD:\jyotish\venv\Lib\site-packages\pandas/tests/groupby/transform/test_transform.pyassert_fp_equalr      s%    FF1q5ME!&&(((    c            	      H   t        t        j                  d      dz  t        j                  d            } t        j                  d      }t        j                  j	                  d      j                  |       | j                  |      } | j                  d       }|j                  d       }|d   dk(  sJ t        t        j                  d	d
      j                  dd      ddgg d      }g d}|j                         j                  |      j                  d       j                  |      j                         }|j                  |      j                  d       j                  |      j                         }t        j                  ||       d }t        t        j                  j	                  d      j                  d      g dg d      }	g d}|	j                  |      j                  |      j                  |      j                         }|	j                  |d      j!                  |      j                  |      j                         }t        j                  ||       t        t        j                  j	                  d      j                  d      t#        t%        d      t&              t)        ddd            }|j                  t+        j,                  d !            }
|
j                  d"        t        t/        d#d$      t/        d#      d%      }d&}t        j0                  t2        |'      5  |j                  d      j                  t4              }d d d        t        dt/        d#      i      }t        j                  ||       y # 1 sw Y   6xY w)(N	      index   c                     | dz  S )Nr    xs    r   <lambda>z test_transform.<locals>.<lambda>#   s    Q!Vr   c                 (    | | j                         z  S N)sumr    s    r   r"   z test_transform.<locals>.<lambda>%   s    a!%%'kr            int64dtyper   r   )r   r      columnsr   r   r   r,   c                 (    | | j                         z
  S r$   meanr    s    r   r"   z test_transform.<locals>.<lambda>2   s    Q\r   c                 (    | | j                         z
  S r$   r1   r    s    r   r"   z test_transform.<locals>.<lambda>6   s    QVVXr   c                 ,    | | j                  d      z
  S Nr   axisr1   )arrs    r   demeanztest_transform.<locals>.demean9   s    SXX1X%%%r   )   r:   r   r   cde)JoeSteveWesJimTravis)onetworD   rE   rD   F
group_keys)2      ABCDz
2000-01-01rH   BperiodsfreqME)rN   c                     | dz
  S Nr,   r   r    s    r   r"   z test_transform.<locals>.<lambda>M   s    !a%r   r:   
   r   zusing DataFrameGroupBy.maxmatch)r	   r   arangerandomdefault_rngshufflereindexgroupby	transformr   reshape
sort_indexr2   tmassert_frame_equalstandard_normalapplyr   listobjectr   pdGrouperrangeassert_produces_warningFutureWarningmax)datar   groupedtransformeddfkeyexpectedresultr9   peoplegmsgs               r   test_transformrt      s   "))A,!#299Q<8DIIaLEII!$$U+<<Dll+,G##$9:Kq>R
 

		!7#++Aq1C:Y
B C
		)	*		  ZZ_&&'=>FFsKPPRF&(+& 
		a 008)6F
 .C^^C **62::3?DDFF~~ce~4::6BJJ3OTTVH&(+ 

		a 009d6l&1r<
B
 	

2::4()AKK  
q"E!H5	6B
&C		#	#M	=C**3/ 
>#uQx)H&(+ 
>	=s   >%NN!c                     t        t        j                  d      dz  t        j                  j	                  d      j                  d      d      } | j                  d      d   }t        j                  |j                         j                  t        |j                         j                              }t        || j                  d      }d}t        j                  t         |	      5  |j#                  t        j                        }d d d        t        j$                  |       |j#                  d
      }t        j$                  ||       y # 1 sw Y   GxY w)Ni r   r   )idvalrv   rw   r   nameusing SeriesGroupBy.meanrS   r2   )r   r   rU   rV   rW   r`   rZ   repeatr2   valuesr   countr	   r   r^   rg   rh   r[   assert_series_equal)rm   grpr|   ro   rs   rp   s         r   test_transform_fastr   X   s    	))F#a'99((+;;FC	

B **T
5
!CYYsxxz((*=ciik>P>P*QRFfBHH59H
$C		#	#M	=rww' 
>68,]]6"F68, 
>	=s   ) EEc                     t        g dg dt        dd      g ddg d      } | j                  d	      j                  d
      }t	        t        d      t        d      t        d      t        d      gd      }t        g d|g ddg d      }t        j                  ||       | j                  d	      ddg   j                  d
      }|ddg   }t        j                  ||       y )N)r   r,   r,   r   )皙? @g@      @2014-1-12014-1-4r,   r   r   rI   )groupingfr=   i)r   r   r   r=   r.   r   first2014-1-2M8[ns]r*   )r   r   r   r   )r,   r   r   rI   )r   r=   r   )r   r   r=   r   r   )r   r   rZ   r[   r   r
   r^   r_   rm   rp   datesro   s       r   test_transform_fast2r   n   s    	$%J
3		
 ,
B ZZ
#--g6Fj!j!j!j!		
 E "\BH &(+ ZZ
#S#J/99'BFc
#H&(+r   c                      t        g dg dgg d      } | j                  d      j                  d      }| j                  dd      }t	        j
                  ||       y )	Nr,   r   r   )rI   r:   r(   )rr   r   r   r   rr   r   r,   r6   )r   rZ   r[   dropr^   r_   rm   rp   ro   s      r   test_transform_fast3r      sM    	Iy)?	CBZZ_&&w/Fwwsw#H&(+r   c                    |j                  d       }d}t        j                  t        |      5  |j	                  t
        j                        }d d d        t        j                  j                  |j                         |D ]8  \  }}t        |j                  |j                        |j                                : | j                  d       }d}t        j                  t        |      5  |j	                  t
        j                        }d d d        t        j                  |j                  | j                         |D ]K  \  }}|j                  d      }|j                  |j                        }| D ]  }	t        ||	   ||	           M d}t        j                  t        |      5  | j                  ddd	d	d
d	      }d d d        d}t        j                  t        |      5  |j	                  t
        j                        }d d d        t        j                  |j                  | j                         t        j                  |j                  | j                         |D ]a  \  }}|j                  d	      }|j                  |j                        }|j                  D ]   }
t        |j                  |
      ||
          " c y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   $xY w# 1 sw Y   xY w)Nc                     | j                   S r$   monthr    s    r   r"   z*test_transform_broadcast.<locals>.<lambda>       177r   rz   rS   c                     | j                   S r$   r   r    s    r   r"   z*test_transform_broadcast.<locals>.<lambda>       r   using DataFrameGroupBy.meanr   r6   +DataFrame.groupby with axis=1 is deprecatedr,   ArK   CDr   )rZ   r^   rg   rh   r[   r   r2   assert_index_equalr   r   rY   r.   xs)tsframetsrk   rs   rp   _gpaggedrescolidxs              r   test_transform_broadcastr      s2   jj*+G
$C		#	#M	=""277+ 
> &,,12rxx0"'')<  oo/0G
'C		#	#M	=""277+ 
>&,,62QnnRXX&CCHeCj1   8C		#	#M	=//"B/K 
>
'C		#	#M	=""277+ 
>&,,6&..'//:2
nnRZZn088CCFF3Ks4  7 
>	= 
>	= 
>	= 
>	=s/    K. K-K(+ K5KK%(K25K>c                    t        ddgddgddgddd	g
      }t        ||      }d}t        j                  t        |      5  |j                  g dd      }d d d        |dk(  rt        nd }d}t        j                  ||      5   j                  |g| }d d d        d}t        j                  ||      5   |j                  j                  g d      j                  |g| j                  }d d d        |dv rd   j                  d      |d<   t        j                         y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   SxY w)Nr,   r   r   rI   r:   r(   r   r   r<   r!   yr   r   rS   r/   r6   fillna%DataFrameGroupBy.fillna is deprecated)diffshiftr   r)   )
r   r   r^   rg   rh   rZ   r[   Tastypeassert_equal)	requesttransformation_funcrm   argsrs   gbwarnrp   ro   s	            r   test_transform_axis_1r      s1    
!Qq!fAq6:3*	MB"#6;D
7C		#	#M	=ZZ	Z* 
>/8;=D
1C		#	#D	419D9 
5
1C		#	#D	44244<<	*445HP4PRR 
5 // ,,W5 OOFH% 
>	= 
5	4 
5	4s$   D/D;<9E/D8;EEc                    |dv r1t         j                  j                  d      }| j                  |       t	        ddgddgdd	gd
ddg      }d}t        j                  t        |      5  |j                  g dd      }d d d        j                  |      }|j                  j                  g d      j                  |      j                  }t        j                  ||       y # 1 sw Y   gxY w)N)corrwithngroupnthz&transform incorrectly fails - GH#45986reasonr,   r   r   rI   r:   r(   r   r!   r   r   r   rS   r/   r6   )pytestmarkxfailapplymarkerr   r^   rg   rh   rZ   r[   r   r   )r   reduction_funcmarkerrm   rs   r   rp   ro   s           r   test_transform_axis_1_reducerr      s      
 ""*R"SF#	!Qq!fAq6:3*	MB
7C		#	#M	=ZZ	Z* 
> \\.)Ftt||I&00@BBHOOFH% 
>	=s   ,C((C1c           
         | j                   dd }t        |j                        }t        |j                        }t	        t
        j                  j                  d      j                  ||f      |j                  |j                  d      }|}|j                  d d      }||j                  d	      z
  }|j                  d
       }t        j                  ||       |j                  }d}	t        j                  t         |	      5  |j                  d dd      }d d d        ||j                  d	      z
  }|j                  d       }t        j                  ||       |j                   ddgt#        t%        dt        |                  z      }|j                  d d      }||j                  d	      z
  }|j                  d       }t        j                  ||       |j                  }d}	t        j                  t         |	      5  |j                  d dd      }d d d        ||j                  d	      z
  }|j                  d       }t        j                  ||       y # 1 sw Y   JxY w# 1 sw Y   SxY w)Nr   r:   r   float64)r   r.   r+   c                 "    | j                         S r$   weekdayr    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>   
    199;r   FrF   r2   c                 ,    | | j                  d      z
  S r5   r1   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>       q166q6>'9r   r   rS   c                 "    | j                         S r$   r   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>  
    qyy{r   r,   )r7   rG   c                 R    | j                   | j                  d      z
  j                   S rQ   r   r2   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>      affQi':':r   c                 "    | j                         S r$   r   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>	  r   r   c                 ,    | | j                  d      z
  S r5   r1   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>  r   r   c                 "    | j                         S r$   r   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>  r   r   c                 R    | j                   | j                  d      z
  j                   S rQ   r   r    s    r   r"   z(test_transform_axis_ts.<locals>.<lambda>  r   r   )iloclenr   r.   r   r   rV   rW   r`   rZ   r[   ra   r^   r_   r   rg   rh   rb   rf   )
r   baserr<   tsor   rk   rp   ro   rs   s
             r   test_transform_axis_tsr      s    <<!DDJJADLLA

		a 00!Q8jj	C 
Bjj.5jAG'##F++F}}9:H&(+	B
7C		#	#M	=**2u*M 
>'##F++F}}:;H&(+ 
1a&4aT 344	5Bjj.5jAG'##F++F}}9:H&(+	B
7C		#	#M	=**2u*M 
>'##F++F}}:;H&(+' 
>	= 
>	=s   I$	I1$I.1I:c                      t        ddgddgg      } | j                  d      j                  d      }t        dgdgg      }t        j                  ||       y )Nr,   r   r   r2   g      ?r   rZ   r[   r^   r_   r   s      r   test_transform_dtyper     sU     
QFQF#	$BZZ]$$V,F3%#(H&(+r   c                     t        t        d      t        j                  d      d      } | j	                  d      d   j                  d       }t        t        j                  ddd	      dd
      }t        j                  ||       y )N20130101r:   r   rK   r   rK   c                 &    | j                  d      S )NF)	ascending)rankr    s    r   r"   z$test_transform_bug.<locals>.<lambda>$  s    affuf6Mr   r   )stepr   ry   r+   )	r   r
   r   rU   rZ   r[   r	   r^   r~   r   s      r   test_transform_bugr      si     
:.RYYq\B	CBZZ_S!++,MNFbii12.S	JH68,r   c                  n   t        ddgd      } t        ddgddgd      }|j                  d	      j                  j	                  d
       }t        j                  ||        t        ddgddgd      }|j                  d	      j                  j	                  d       }t        j                  ||        y )NTr   ry   r   g@r,   r   r   rK   c                      yNTr   r    s    r   r"   z3test_transform_numeric_to_boolean.<locals>.<lambda>/      4r   c                      yr   r   r    s    r   r"   z3test_transform_numeric_to_boolean.<locals>.<lambda>3  r   r   )r	   r   rZ   r   r[   r^   r~   )ro   rm   rp   s      r   !test_transform_numeric_to_booleanr   )  s     tTl-H	#s1a&1	2BZZ_((8F68,	!Qq!f-	.BZZ_((8F68,r   c                     t        t        d      t        j                  d      d      } t	        t        d      t        d      z
  t        d      d      }| d   d   | j                  d      d   j                  fd      z
  }t        j                  ||       | j                  d      d   j                  d       }t        j                  ||       y )	Nr   r:   r   r   rx   r   c                 L    | j                         | j                         z
  z   S r$   ri   min)r!   	base_times    r   r"   z6test_transform_datetime_to_timedelta.<locals>.<lambda>B  s    15571BY1Nr   c                 D    | j                         | j                         z
  S r$   r   r    s    r   r"   z6test_transform_datetime_to_timedelta.<locals>.<lambda>H  s    aeeg6Gr   )
r   r
   r   rU   r	   rf   rZ   r[   r^   r~   )rm   ro   rp   r   s      @r   $test_transform_datetime_to_timedeltar   7  s     
:.RYYq\B	CB*	* 55U1XCH
 3
I


3&&'NO
	  68, ZZ_S!++,GHF68,r   c                     t        dt        ddd      d      } | j                  d      j                  j	                  d       }t        d	d
gd      }t        j                  ||       t        dt        ddd      d      } | j                  d      j                  j	                  d       }t        ddgt        j                  d      }t        j                  ||       y )Nr,   z
2015-01-01r   r   rL   r   r   c                 x    | j                   j                  | j                   j                  j                         z
  S r$   )dt	dayofweekr2   r    s    r   r"   z4test_transform_datetime_to_numeric.<locals>.<lambda>Q  s"    !$$..144>>#6#6#88r               ?r   r   c                 x    | j                   j                  | j                   j                  j                         z
  S r$   )r   r  r   r    s    r   r"   z4test_transform_datetime_to_numeric.<locals>.<lambda>Z  s"    !$$..144>>#5#5#77r   r   )r+   ry   )
r   r   rZ   r   r[   r	   r^   r~   r   int32r   s      r   "test_transform_datetime_to_numericr  L  s     
L!#!NO	PBZZ_((8F tSk,H68, 
L!#!NO	PBZZ_((7F q!fBHH37H68,r   c                  H   g d} t        t        d      D cg c]  }d| 	 c}t        j                  g dg d      t	        j
                  | D cg c]  }d| 	 c}      dt	        j                  dd	      
      }|j                  d      d   j                  d       }t        j                  |j                  d      sJ |ddg   j                  d      j                  d       }t        j                  |j                  j                  d      sJ y c c}w c c}w )N)z13:43:27z14:26:19z14:29:01z18:39:34z18:40:18z18:44:30z18:46:00z18:52:15z18:59:59z19:17:48z19:21:38   zB-r;   )r   r,   r   r,   r   r,   r,   r,   rI   r,   r,   z2014-10-08 )r   ID3DATETIMEr   r   r   r	  r
  c                 "    | j                         S r$   r   r    s    r   r"   z(test_transform_casting.<locals>.<lambda>{  s
    qvvxr   mc                 "    | j                         S r$   r  r    s    r   r"   z(test_transform_casting.<locals>.<lambda>~  s
    r   )r   rf   r   takerd   to_datetime
RangeIndexrZ   r[   r   is_np_dtyper+   r
  )timesr   timerm   rp   s        r   test_transform_castingr  a  s   E 
$)"I.IqBqc(I.77)+L 'O+dV(<'OP	
 mmBU+	
B ZZz*445GHF??6<<---
#$,,U3==>PQF??6??00#666 / (Ps   DDc                     | j                  d d g      }|j                  d        d}t        j                  t        |      5  |j                  t
        j                         d d d        y # 1 sw Y   y xY w)Nc                     | j                   S r$   )yearr    s    r   r"   z)test_transform_multiple.<locals>.<lambda>  s    AFFr   c                     | j                   S r$   r   r    s    r   r"   z)test_transform_multiple.<locals>.<lambda>  s    aggr   c                     | dz  S Nr   r   r    s    r   r"   z)test_transform_multiple.<locals>.<lambda>  s    Ar   rz   rS   )rZ   r[   r^   rg   rh   r   r2   )r   rk   rs   s      r   test_transform_multipler    sX    jj*,=>?Go&
$C		#	#M	="''" 
>	=	=s    A..A7c                    | d d d   j                  | j                        }|j                  d       }d}t        j                  t
        |      5  |j                  d      }d d d        d}d }t        j                  t
        |      5  |j                  d	       j                  |      }d d d        t        j                         y # 1 sw Y   jxY w# 1 sw Y   ,xY w)
Nr:   c                     | j                   S r$   r   r    s    r   r"   z)test_dispatch_transform.<locals>.<lambda>  r   r   r   rS   padmethodz)Series.fillna with 'method' is deprecatedc                 &    | j                  d      S )Nr  r   r   r    s    r   r"   z)test_dispatch_transform.<locals>.<lambda>  s    qxxux-r   c                     | j                   S r$   r   r    s    r   r"   z)test_dispatch_transform.<locals>.<lambda>  r   r   )	rY   r   rZ   r^   rg   rh   r   r[   r_   )r   rm   rk   rs   filledfillitro   s          r   test_dispatch_transformr'    s    	1		gmm	,Bjj*+G
1C		#	#M	=u- 
>
5C-F		#	#M	=::/0::6B 
>&(+ 
>	= 
>	=s   C"CCC"c                  0   t        g dg ddd      } d}t        j                  t        |      5  t	        j
                  t        d      5  | j                  dg      j                  d       d d d        d d d        t        j                  t        |      5  t	        j
                  t        d      5  | j                  dg      j                          d d d        d d d        y # 1 sw Y   zxY w# 1 sw Y   ~xY w# 1 sw Y   *xY w# 1 sw Y   y xY w)	N)rR   rR      r)     r*  )d      i,  i  i  iX  )pricecolorcostr   rS   z'Must specify a fill 'value' or 'method'r-  r   )
r   r^   rg   rh   r   raises
ValueErrorrZ   r[   r   )rm   rs   s     r   test_transform_fillna_nullr2    s    	--2	

B 2C		#	#M	=]]:-VWJJy!++H5 X 
> 
	#	#M	=]]:-VWJJy!((* X 
>	= XW 
>	= XW 
>	=sG   C4"C(/C4D6!D D(C1	-C44C= D		DDc           
          t        g dddt        j                  ddt        j                  dgdt        dd      	      } d
k(  rd }d }n& dk(  rd }d }n dk(  rd }dfd}n
 fd} fd} dk(  rd}d}t        }t        }n dk(  rd}d}d }t        }ndx}}d x}}t        j                  ||      5   ||j                  d            }d d d        |dg   j                  dd |dg   j                  dd  |dg   j                  d d g}	t        j                  ||      5  t        |	D 
cg c]
  }
 ||
       c}
      j                         }d d d        j                  |j                        } dv rt        j                  |       y t        j                  |       y # 1 sw Y   xY wc c}
w # 1 sw Y   gxY w) N)foor4  r4  r4  barr5  bazr,   r   r   rI   r   z
2020-01-01z
2020-01-07r   cumcountc                 $    | j                  d      S )Nr7  r[   r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AKK
3r   c                 R    t        t        t        |             | j                        S r$   )r	   rf   r   r   r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    F5Q=!'':r   r   c                 (    | j                  dd      S )Nr   r   valuer9  r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AKKK:r   c                 &    | j                  d      S )Nr   r<  r#  r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AHH1H-r   r   c                 $    | j                  d      S )Nr   r9  r    s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AKK1r   r   c                 <    dz  t        | j                        S )Nr,   r   )r	   r   )r!   counters    r   mock_opz3test_transform_transformation_func.<locals>.mock_op  s    qLG'11r   c                 &    | j                        S r$   r9  r!   r   s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    AKK(;<r   c                 &     t        |              S r$   )getattrrD  s    r   r"   z4test_transform_transformation_func.<locals>.<lambda>  s    ;GA':;=r   
pct_changezCThe default fill_method='pad' in DataFrame.pct_change is deprecatedLThe default fill_method='ffill' in DataFrameGroupBy.pct_change is deprecated r   rS   r   rK   r(   r7  r   )r   r   nanr   rh   r^   rg   rZ   r   r   r]   set_axisr   r~   r_   )r   rm   test_oprB  rs   groupby_msgr   groupby_warnrp   groupsrr   ro   rA  s   `           @r   "test_transform_transformation_funcrQ    s   	BQ1bffa0	
 |4
B j(3:		(:-		(1	2 ==l*S 	 $		(=$k""|		#	#L	DC) 
E
 #innQq!2se9>>!"#5r3%y~~bq7IJF		#	#D	4v6v!71:v67BBD 
5   *H44
vx0
fh/ 
E	D 7 
5	4s*   ;F-*
F>4F9
F>-F69F>>Gc                     d }| j                  d      ddg   j                  |      }| ddg   }|j                  | d         j                  |      }t        j                  ||       y )Nc                 "    | j                         S r$   r1   r    s    r   r"   z/test_transform_select_columns.<locals>.<lambda>  s
    !&&(r   r   r   r   )rZ   r[   r^   r_   )rm   r   rp   	selectionro   s        r   test_transform_select_columnsrU    sd    AZZ_c3Z(2215FC:I  C)33A6H&(+r   c                 t   g d| _         | j                  d      }|d   }d}|rd}t        j                  t        |      5  |j                  d        d d d        t        j                  t        |      5  | j                  d      j                  d        d d d        y # 1 sw Y   OxY w# 1 sw Y   y xY w)	N)r   rK   rK   r   r   rK   Could not convert1Cannot perform reduction 'mean' with string dtyperS   c                 ,    t        j                  |       S r$   r   r2   r    s    r   r"   z0test_transform_nuisance_raises.<locals>.<lambda>  s    
r   c                 ,    t        j                  |       S r$   rZ  r    s    r   r"   z0test_transform_nuisance_raises.<locals>.<lambda>  s    BGGAJr   )r.   rZ   r   r0  	TypeErrorr[   )rm   using_infer_stringrk   gbcrs   s        r   test_transform_nuisance_raisesr_    s     &BJ jjoG
#,C
CA	y	,*+ 
- 
y	,


3!!"67 
-	, 
-	, 
-	,s   B"7"B."B+.B7c                 v   | j                  d      j                  dd      }d}t        j                  t        |      5  | j                  d      ddg   j                  t
        j                        }d d d        t        j                  |       | j                  d      d   j                  d      }d	}t        j                  t        |      5  | j                  d      d   j                  t
        j                        }d d d        t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ,xY w)
Nr   r2   T)numeric_onlyr   rS   r   r   rz   )	rZ   r[   r^   rg   rh   r   r2   r_   r~   )rm   rp   rs   ro   s       r   test_transform_function_aliasesrb    s    ZZ_&&vD&AF
'C		#	#M	=::c?C:.88A 
>&(+ZZ_S!++F3F
$C		#	#M	=::c?3'11"'': 
>68, 
>	= 
>	=s    4D#2D/#D,/D8c                  D   t        t        j                  dddgt        dd      d      } | j	                  d      d   j                  d      }t        j                  t        d	      t        d	      t        d      g}t        |dd
      }t        j                  ||       y )Nr,   r   r   r   )r   r=   r   r=   r   r   r   r   )r   r   rK  r   rZ   r[   rd   NaTr
   r	   r^   r~   r   s       r   test_series_fast_transform_datere    s    	ffaA&Z
J-OP
B ZZ
#C(227;F
***	E e#X6H68,r   c                  2   t        g ddddt        j                  gd      } t        dgdz        }d }d	}t	        j
                  t        |
      5  | j                  d      j                  t              d   | j                  d      d   j                  t              | j                  d      j                  |      d   | j                  d      d   j                  |      g}d d d        D ]  }t	        j                  ||d        y # 1 sw Y   )xY w)Nr,   r,   r   r   r,   r   r   )col1col2      @rI   c                 ,    t        j                  |       S r$   )r   nansumr    s    r   nsumz#test_transform_length.<locals>.nsum+  s    yy|r   zusing DataFrameGroupBy.sumrS   rh  ri  F)check_names)r   r   rK  r	   r^   rg   rh   rZ   r[   r%   r~   )rm   ro   rm  rs   resultsrp   s         r   test_transform_lengthrp  &  s    	L1aBFF2CD	EBseai H 'C		#	#M	=JJv((-f5JJvv&005JJv((.v6JJvv&006	
 
> 
vxUC  
>	=s   BDDc                  <   t        g dg dd      } | j                  d      }d}t        j                  t        |      5  |j                  t        j                        }d d d        |j                  d       }t        j                  |       y # 1 sw Y   2xY w)N)r   r   r   r   )r   r,   r   rI   r   r   r   rS   c                 0    t        j                  | d      S r5   rZ  r    s    r   r"   z)test_transform_coercion.<locals>.<lambda>E  s    27711#5r   )	r   rZ   r^   rg   rh   r[   r   r2   r_   )rm   rr   rs   ro   rp   s        r   test_transform_coercionrs  :  sw     
-LA	BB


3A
'C		#	#M	=;;rww' 
> [[56F&(+	 
>	=s    BBc                    t        g dt        dd      t        g dd      dd      }t        j                  d	      5  |j	                  d
      ddg   j                  d       }d d d        t        t        j                  t        g dd      d      }t        j                  |       t        g ddg ddd      }d}| rd}t        j                  d	      5  t        j                  t        |      5  |j	                  d
      j                  d        d d d        |j	                  d
      ddg   j                  d       }d d d        t        t        j                  g dd      }t        j                  ||       t        g d      }t        g dd|dd      }t        j                  d	      5  t        j                  t        |      5  |j	                  d
      j                  d        d d d        |j	                  d
      ddg   j                  d       }d d d        |j                  dd }||j                         z
  |j                         z  }|j                  dd }||j                         z
  |j                         z  }t        t        j                  t        ||g      d      }t        j                  ||       |j	                  d
      ddg   j                  d       }t        dg dd      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   OxY w# 1 sw Y   .xY w)N)r,   r,   r,   r   r   r   r,   r   r*   r,   r   r   r,   r   r   r4  r   ignore)r   r   rK   r   c                 J    | | j                         z
  | j                         z  S r$   r2   stdr    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>W      q1668|quuw.r   )r   r   r,   r   r   r,   )rK   r   rW  rX  rS   c                 J    | | j                         z
  | j                         z  S r$   rx  r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>l      QVVX0Hr   c                 J    | | j                         z
  | j                         z  S r$   rx  r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>n  rz  r   )                    ?r~  r  r  )r   r   rI   rR   r:   r   c                 J    | | j                         z
  | j                         z  S r$   rx  r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>x  r|  r   c                 J    | | j                         z
  | j                         z  S r$   rx  r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>z  rz  r   r   r   r(   c                     | dz  dz  S r  r   r    s    r   r"   z1test_groupby_transform_with_int.<locals>.<lambda>  s    QUQYr   r  )       @rj        @      $@      @r~  )r   r	   r   errstaterZ   r[   rK  r^   r_   r   r0  r\  r   r2   ry  r   )r]  rm   rp   ro   rs   ss1s2s           r   test_groupby_transform_with_intr  I  s    
#+*)<		

B 
	"C#s,66.
 
# ff6"6iHIH &(+ 
##		

B CA		"]]9C0JJsO%%&HI 1C#s,66.
 
# rvv,LMNH&(+ 	#$A	+!!%H	IB		"]]9C0JJsO%%&HI 1C#s,66.
 
# 
!B
rwwy.BFFH	$B	
!B
rwwy.BFFH	$BrvvFB8,<=>H&(+ ZZ_c3Z(223FGFs)IJKH&(+e 
#	", 10 
#	" 10 
#	"sT   'L L:;"L-.L:<M"M:.M L*-L7	2L::MM	MMc                     t        t        d      ddddt        j                  dddddg
d      } d}t	        j
                  t        |	      5  | j                  | j                        d
   j                  t              }d d d        t        ddddt        j                  dddddg
d
      }t	        j                  |       y # 1 sw Y   ExY w)NrR   r,   r   r   rI   r:   r   zusing SeriesGroupBy.maxrS   r   r  r  rj        @      "@r   )r   rf   r   rK  r^   rg   rh   rZ   r   r[   ri   r	   r~   )rm   rs   rp   ro   s       r   %test_groupby_transform_with_nan_groupr    s    	r!Q1bffaAq!)LM	NB
#C		#	#M	=BDD!#&005 
>sCc2663S#sKRUVH68, 
>	=s   2CCc                  h   t        j                  g dg dg      } t        g dt        j                  g dd      t        j
                  dd      d| 	      }d
 }|j                  d      }d}t        j                  t        |      5  |j                  |      }d d d        d   j                  t        j                  k(  sJ t        j                  dd       5  |D ]0  \  }} ||      }t        j                  ||j                   |          2 	 d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   r   r,   r,   r,   ru  )r  r  r  r  r  r  r   r   r  g      @)r=   r<   vr   c                 "    | d   dz  | d<   | d d S )Nr=   r   rr   r,   r   )groups    r   r   z$test_transform_mixed_type.<locals>.f  s    3Z!^c
Rayr   r<   7DataFrameGroupBy.apply operated on the grouping columnsrS   r=   zmode.chained_assignment)r   from_arraysr   r   tilerU   rZ   r^   rg   rh   ra   r+   r   rd   option_contextr_   loc)	r   rm   r   rk   rs   rp   rn   r  r   s	            r   test_transform_mixed_typer    s   ""$68J#KLE	/!,3$	

 
B jjoG
CC		#	#M	=q! 
> #;

*** 
		4d	;!JCE(C!!#vzz#7 " 
<	; 
>	= 
<	;s   
D6D(D%(D1zop, args, targopcumprodr   c                 "    | j                         S r$   r  r    s    r   r"   r"     
    !))+r   cumsumc                 "    | j                         S r$   r  r    s    r   r"   r"     
    r   r   )r   c                 $    | j                  d      S Nr   r   r    s    r   r"   r"         1772;r   )r,   c                 "    | j                         S r$   r  r    s    r   r"   r"     
    !'')r   c           
      v   t        t        j                  j                  d      j	                  d            }|j                         }t        j                  |j                  dd t        j                  j                  d      j                  ddd      j                  t              }||fD ]  }|j                  |      j                  |      }t        j                  | |j                  |      j                  | g|        t        j                  | t        |j                  |      |       |         y )Nr   i  rR   r   rH   size)r	   r   rV   rW   r`   copyrK  r   integersr   floatrZ   r[   r^   r~   rF  )opr   targopr  	s_missinglabelsrj   ro   s           r   test_cython_transform_seriesr    s     	ryy$$Q'77=>AI66INN1RYY""1%..q"4.@GGNF I<<'11&9
x)Gf)=)G)G)RT)RS
x)Jf1Er)JD)QR r   r  skipnaFTz
input, expr   rR   )rn   r=  r=  r   r   r   r      )rj  r        ;@r&   rj  r  r  g     @T@g     `n@g     Ȇ@g     @g     @g    8@)rj  r  r  r  g      (@g      .@g      2@g      5@g      8@))r  F)r  T)r  F)r  Tc                     t        |      }|j                  d      d   j                  | |      }t        |t              r|| |f   }n|}t        |d      }t        j                  ||       y )Nrn   r=  )r  r   )r   rZ   r[   
isinstancedictr	   r^   r~   )r  r  inputexprm   rp   ro   s          r   test_groupby_cum_skipnar    sk    \ 
5	BZZw'11"V1DF#tF|$hW-H8V,r   c                     t        t        j                  j                  d      j	                  d            } | j                         }t        j                  |j                  dd t        d      dz  }|d d  }t        j                  |d<   t        | |g ddz  t        dd      t        j                  d	d
d      ||t        |      d      }|S )Nr   rR   r&   abcder:   )r,   r,   r,   r,   r   z1990-1-1rM   r,   r  )rN   rM   )r  float_missingintdatetime	timedeltastringstring_missingcat)r	   r   rV   rW   r`   r  rK  r   rb   r   r   rd   timedelta_ranger   )floatingfloating_missingstringsstrings_missingrm   s        r   framer    s    bii++A.>>rBCH}}!#!A7maGajOOA	-"Q&":r:++ACD-w'		

B Ir   c                 b    t        j                  t        d      t        d      g      | _        | S )Nr:   r   )r   from_productrf   r   )r  s    r   frame_mir    s&    ))58U1X*>?EKLr   c                 "    | j                         S r$   r  r    s    r   r"   r"   $  r  r   c                 "    | j                         S r$   r  r    s    r   r"   r"   %  r  r   c                 $    | j                  d      S r  r  r    s    r   r"   r"   &  r  r   c                 "    | j                         S r$   r  r    s    r   r"   r"   '  r  r   df_fixr  r  	gb_targetbyrH   r  levelr  r  )marksr  c                    | j                  |      } |j                  dddi|}|dk7  r?d|vr;|dg   j                  |      }|ddg   j                  |      }	t        |	|gd      }
nf|dk7  s%t	        |j                  d	      t        t        f      sd }nt        }d
}t        j                  ||      5  |j                  |      }
d d d        
j                  d      }
|dk(  rtd}t        j                  t        |      5  |
d   j                  t        j                  d      |
d<   |
d   j                  t        j                  d      |
d<   d d d         ||
j                     j                   |g| j                  d      }t        j"                  ||
        t%        ||
j                     |      | j                  d      }t        j"                  ||
       y # 1 sw Y   xY w# 1 sw Y   xY w)NrG   Fr   r  r  r  r,   r6   r  r  rS   .The 'downcast' keyword in fillna is deprecatedr  downcastr  r   )getfixturevaluerZ   ra   r   r  getstrrb   rh   r^   rg   r]   r   r   rK  r.   r[   r_   rF  )r   r  r   r  r  r  rm   r   r   r   ro   r   rs   depr_msgrp   s                  r   test_cython_transform_framer     s   , 
	 	 	(B		2u	2		2B	W}i/ wKf%)*0081a&q)=
9==+>d LD DG''C8xx'H 9 """*H	W}C''XF)12B)C)J)J *K *H%& "*(!3!:!:266E!:!RHX	 G ,R  !++B66AAqAIF&(+.WR(()2.5@@a@HF&(+ 98 GFs   6G$AG1$G.1G:c                 "    | j                         S r$   r  r    s    r   r"   r"   [  r  r   c                 "    | j                         S r$   r  r    s    r   r"   r"   \  r  r   c                 $    | j                  d      S r  r  r    s    r   r"   r"   ]  r  r   c                 "    | j                         S r$   r  r    s    r   r"   r"   ^  r  r   column)r  r  r  r  r  r  r  c                 <   | j                  |      } |j                  dddi|}|}	|	dvr|dk7  r|	dk(  r|dk(  sdj                  g d      }
t        j                  t
        |
	      5  ||	   j                  |       d d d        t        j                  t
        |
	      5   t        ||	   |              d d d        y ||	   j                  |      }|	|_	        |	d
v rGd}t        j                  t        |	      5  |j                  t        j                  d      }d d d         ||	   j                  |g| }t        j                   ||        t        ||	   |      | }t        j                   ||       y # 1 sw Y   xY w# 1 sw Y   y xY w# 1 sw Y   vxY w)NrG   F)r  r  r  r   r  r  |)zdoes not support .* operationsz$.* is not supported for object dtypez!is not implemented for this dtypez!.* is not supported for str dtypez+dtype 'str' does not support operation '.*'rS   )r  r  r  r  r   )r  rZ   joinr   r0  r\  r[   rF  ra   ry   r^   rg   rh   r   r   rK  r~   )r   r  r   r  r  r  r  rm   r   r<   rs   ro   r  r   res2s                  r   "test_cython_transform_frame_columnr  W  sr   J 
	 	 	(B		2u	2		2BA	22'Mk!bHnhh
 ]]9C0qEOOB 1]]9C0GBqE2  10 a5;;v&,,GH++MJ#??266E?B K beoob(4(
x-!wr!ub!4(
x. 1000 KJs$   )E:!F;"F:FFFc                     t        j                  g d      } t        t        j                  j                  d      j                  ddd      | g d      }d}t        j                  t        |	      5  |j                  dd
      }d d d        d}t        j                  t        |	      5  j                  d        d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)N))synr   )r4  r   )nonr   )r  r   )r4  r   )r  r   )r  r   )r4  r   )r  r   )r  G)r4  r  )r  r  r   r,   rR   )rI   r'   )r   r   r  r   r-   r   rS   )r7   r  z5transform must return a scalar value for each group.*c                 H    | j                  | j                  d      d      S )Nr,   r6   r   )divr%   )zs    r   r"   z6test_transform_with_non_scalar_group.<locals>.<lambda>  s    quuQUUU]u;r   )r   from_tuplesr   r   rV   rW   r  r^   rg   rh   rZ   r   r0  r1  r[   )colsrm   rs   r   s       r   $test_transform_with_non_scalar_groupr    s    !!	
D  

		a ))!R9"
B 8C		#	#M	=ZZQaZ( 
>
AC	z	-
;< 
.	- 
>	= 
.	-s   3C,CCCzcols,expected)r,   r,   r,   r<   )r   r<   agg_func)r}   r   r  c                 >   t        t        dd      t        d      t        dd      d      }|j                  d      |    j	                  |      }|dk(  r|j                  d	      }n |d
k(  r| ddgk(  r|d   j                  d       }t        j                  ||       y )N
2018-01-01r   r  r&   rR   r   r   r   r  r  r   r<   )	r   r   rf   rZ   r[   r   renamer^   r   )r  ro   r  rm   rp   s        r   test_transform_numeric_retr    s     
q1auQPR|T
B ZZ_T",,X6F6??7+	V	c
 2C=''-OOFH%r   c                  |   ddgdt        d      gddgdt        d      gg} t        | ddg      }|j                  d      j                  d	      }t        dg d
i      }t	        j
                  ||       |j                  d      d   j                  d	      }t        g d
d      }t	        j                  ||       y )Nr   r  rK  r   r  rn   r|   r   ffill)r  r  r  r  r   )r  r   rZ   r[   r^   r_   r	   r~   )rj   rm   rp   ro   s       r   test_transform_ffillr    s    #JeEl+c3Z#uU|9LMD	4%!2	3BZZ((1F($89:H&(+ZZx(227;F*:H68,r   mix_groupings	as_seriesz	val1,val2))r4  r5  )r,   r   )r  r  zfill_method,limit,exp_valsr  val1val2r,   bfillc                    t         j                  t         j                  |t         j                  t         j                  |t         j                  t         j                  g}t        |      }t        |      D ]  \  }	}
|
dk(  r|||	<   |
dk(  s|||	<    | r$ddgt	        |      z  }d } ||      } ||      }n)dgt	        |      z  dgt	        |      z  z   }|dz  }|dz  }t        ||d      }|rI t        |j                  d      d	   |      |
      }t        |d	      }t        j                  ||       y  t        |j                  d      |      |
      }t        d	|i      }t        j                  ||       y )Nr  r  r   r   c                 >    g }| D ]  }|j                  ||g        |S r$   )extend)list_objtempr!   s      r   
interweavez+test_group_fill_methods.<locals>.interweave
  s(    DQF#  Kr   r   )rn   rw   rn   rw   limitr   )r   rK  rb   	enumerater   r   rF  rZ   r	   r^   r~   r_   )r  r   r  r  fill_methodr  exp_valsvals	_exp_valsr   exp_valkeysr	  rm   rp   r  s                   r   test_group_fill_methodsr    s`   . FFBFFD"&&"&&$GDXI#I.wf#Ie#Ie	 / SzCI%	 y)	$us4y C53t9#44M	ax	4-	.B?E*51;?eLYU+
vs+8E*K8uE	*+
fc*r   r  c                    dgdz  }t         j                  gdz  dgdz  z   }| dk(  r|d d d   }t        ||d      }|j                  dd	      } t	        |j                  d      |              }t        j                  ||       y )
Nr   r)  rR   r,   r  r   r!   r   r!   r6   )r   rK  r   r   rF  rZ   r^   r_   )r  r!   r   rm   ro   rp   s         r   test_pad_stable_sortingr  #  s     
bA	2b AgddG	#	$Bwwsw#H2WRZZ_k24F&(+r   rN   r   z7GH#23918 before method uses freq in vectorized approachr   rM   r   )r  r  Nr  c           
         dt         j                  t         j                  t         j                  ddddt         j                  dg
}ddg}t        j                  |t        |            }t	        ||dz  d      }|}	|" t        |j                  d	      |      |
      }	|	j                  |j                        }
|
d   j                  |
d   j                  |      z  dz
  }|j                  d	      }| t        u r|d   }n|j                  d      }dt        |      j                   d}t        j                  t         |      5  |j#                  ||||      }d d d        t        j$                  |       y # 1 sw Y    xY w)Nr   r,   r   rI   rR   r   r   )rn   r  rn   r
  r  zDThe 'fill_method' keyword being not None and the 'limit' keyword in z.pct_change are deprecatedrS   )rM   r  r  rN   )r   rK  r{   r   r   rF  rZ   rn   objr   r	   to_frametype__name__r^   rg   rh   rG  r   )frame_or_seriesrN   rM   r  r  r  r  key_vrm   df_gr   ro   r   rs   rp   s                  r   test_pct_changer  4  s[   " rvvrvvrvvq!QBFFA>D:DIIdCI&E	5$(3	4BD6wrzz%(+6UC
,,rvv
C6{V!2!27!;;a?H	E	B& Z$$V, 	O8
7	9  
	#	#M	=E  
 
> OOFH%	 
>	=s   E::Fzfunc, expected_statusshrtlngntrlc                    t        j                  g d      }g d}dt        j                  dt        j                  ddt        j                  g}t	        |||d      }|j                  ddg      } t        |j                  d      d	   |              }t        j                  t        t        ||g       ddg
      }t        ||d	      }t        j                  ||       y )N)r  r  r  r  
2018-01-02r  r$  )MSFTr%  r%  AAPLr&  TSLAr'  r   r!  r"  )datesymbolstatusr(  r)  r*  )tuplesnamesrx   )rd   r  r   rK  r   	set_indexrF  rZ   r   r  rb   zipr	   r^   r~   )	funcexpected_statusr(  r)  r*  rm   rp   r   ro   s	            r   &test_ffill_bfill_non_unique_multilevelr1  c  s     >>	

D FFbffeRVVVVRVVDF	DFfE	FB	vx(	)B:WRZZ)(3T:<F""C$()&(1CE oUBH68,r   r/  c                 b   t        ddgt        j                  dgddggddg      }t        dt        j                  dgd      }d}t	        j
                  t        |      5  |j                  d      d   j                  |       }d d d        t	        j                  |       y # 1 sw Y    xY w)	Nr4  Trn   rw   r   r   zusing SeriesGroupBy.[any|all]rS   )
r   r   rK  r	   r^   rg   rh   rZ   r[   r~   )r/  rm   r  rs   r   s        r   test_any_all_np_funcr3    s     

6
B $%E
2C
)C		#	#M	=jj&006 
>3$ 
>	=s   "$B%%B.c                  L   d } t        t        d      g dd      }t        dg di      }|j                  d      j                  |       }t	        j
                  ||       |j                  d      j                  j                  |       }t	        j                  ||d          y )Nc                     | | j                         z
  }t        | t              r|S |j                  |j                  D ci c]  }|| d
 c}      }|S c c}w )N	_demeanedr   )r2   r  r	   r  r.   )r!   rp   r<   s      r   demean_renamez4test_groupby_transform_rename.<locals>.demean_rename  sY    QVVXa MFNN'SNqaS	?(:N'ST (Ts   Aababa)r,   r,   r,   r   r   )r  r=  r=  )UUUUUUտr  r9  r  gUUUUUU?r  )r   rb   rZ   r[   r^   r_   r=  r~   )r7  rm   ro   rp   result_singles        r   test_groupby_transform_renamer;    s     
T']_E	FB'#KLMHZZ **=9F&(+JJw'--77FM=(7*;<r   r   lastc                    t        j                  dd      j                  d      }t        |gdgd      }t	        | t
              st        nd }d}t        j                  ||      5  |j                  d	      j                  j                  |       |d
<   d d d        t        |d|ggg d      }t        j                  ||       y # 1 sw Y   3xY w)NnowT)utczAsia/Singaporer,   )end_timerv   zusing SeriesGroupBy.[min|max]rS   rv   max_end_time)r@  rv   rA  r   )rd   r  
tz_convertr   r  r  rh   r^   rg   rZ   r@  r[   r_   )r/  r   rp   r   rs   ro   s         r   &test_groupby_transform_timezone_columnrC    s     
4	(	3	34D	EBRD45F *4 5=4D
)C		#	#D	4!'!5!>!>!H!H!N~ 
52q"+0RSH&(+ 
5	4s   (.CCzfunc, valuesidxmin1/1/2011z1/3/2011z	1/10/2011idxmaxz1/2/2011z1/9/2011c                 v   t        ddd      }t        dt        j                  d      i|      }|j	                         j
                  |d<   |j                  |d         d   j                  |       }t        t        j                  |      j                  d	      |d
      }t        j                  ||       y )NrE  rR   r   rL   r-  r  r   week_idns)rj   r   ry   )r   r   r   rU   isocalendarweekrZ   r[   r	   rd   r  as_unitr^   r~   )r/  r|   r   stocksrp   ro   s         r   %test_groupby_transform_with_datetimesrN    s     z2C8E41?F))+00F9^^F9-.w7AA$GF^^F#++D1WH 68,r   c                  D   t        dgdgd      } | d   j                  d       }t        dgd      }t        j                  ||       | j                  d      d   j                  d	       }t        j                  ||       | j                  d      d   j                  d
       }t        dgd      }t        j                  ||       | d   j                  t              | d<   | j                  d      d   j                  d       }t        j                  ||       y )Nr,   g?)r   rw   rw   c                 &    | j                  d       S )Nc                     d|  S N+r   r   s    r   r"   z@test_groupby_transform_dtype.<locals>.<lambda>.<locals>.<lambda>  s
    Qqc7r   mapr    s    r   r"   z.test_groupby_transform_dtype.<locals>.<lambda>  s    1551B+Cr   z+1.35r   r   c                 &    | j                  d       S )Nc                     d|  S rR  r   rT  s    r   r"   z@test_groupby_transform_dtype.<locals>.<lambda>.<locals>.<lambda>  
    !A3r   rU  r    s    r   r"   z.test_groupby_transform_dtype.<locals>.<lambda>      >O8Pr   c                 &    | j                  d       S )Nc                     d|  dS )Nz+()r   rT  s    r   r"   z@test_groupby_transform_dtype.<locals>.<lambda>.<locals>.<lambda>  s    "QCq	r   rU  r    s    r   r"   z.test_groupby_transform_dtype.<locals>.<lambda>  s    >Q8Rr   z+(1.35)c                 &    | j                  d       S )Nc                     d|  S rR  r   rT  s    r   r"   z@test_groupby_transform_dtype.<locals>.<lambda>.<locals>.<lambda>  rY  r   rU  r    s    r   r"   z.test_groupby_transform_dtype.<locals>.<lambda>  rZ  r   )r   r[   r	   r^   r~   rZ   r   rc   )rm   rp   	expected1	expected2s       r   test_groupby_transform_dtyperb    s    	!dV,	-BY  !CDFyu-I69-ZZ_U#--.PQF69-ZZ_U#--.RSF	{/I69-5	  (BuIZZ_U#--.PQF69-r   )r  r  cummincummaxc                    dg}t        d      }dg}t        t        ||      |d      } t        |j                  j                  |j                  d      |              }|j                  }t        j                  ||       y )Nr,   r   r  Fobserved)	rf   r   r   rF  r   rZ   r!   r^   r~   )r/  x_valsx_catsr   rm   rp   ro   s          r    test_transform_absent_categoriesrj    sp     SF1XF	
A	VV41=	>B>WRTT\\"$$\7>@FttH68,r   )r  r  r   zkey, val)r  r   c           	          t        t        j                  gg      } t         |j                  di ||i|              }|}t        j                  ||       y )Nr   )r   r   rK  rF  rZ   r^   r_   )r/  rn   rw   rm   rp   ro   s         r   test_ffill_not_in_axisrl    sN     
RVVH:	B4WZRZZ-3*-t46FH&(+r   c                     t        dg di      } | j                  g d      }t        j                  t        d      5  |j                  d       d d d        t        |d      sJ t        j                  t        d      5  |j                  d       d d d        | d   j                  g d      }t        j                  t        d      5  |j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   y xY w)Nr   )r   r,   r,   r   )r   r   r   r<   znot a valid function namerS   some_arbitrary_name	aggregate)r   rZ   r   r0  r1  r[   hasattr)rm   rr   s     r   "test_transform_invalid_name_raisesrq    s    	C&	'B


'(A	z)D	E	)* 
F 1k"""	z)D	E	K  
F 	3,-A	z)D	E	)* 
F	E 
F	E
 
F	E
 
F	Es#   C'C3C?'C03C<?Dc                 d   |}t        g dt        d      dg d      }|t        u r|d   }|j                  t	        j
                  ddgd	            }|d
k(  rt        |t              rt        ||      rJ y t        ||      } |j                  |g| }t        j                  |j                  |j                         |dvr9|j                  dk(  r*t        j                  |j                  |j                         t        t!        t        |      j"                  dd df               dk(  sJ y )Nr  r(   r   )r   rK   r   r   EFr   r   r   r,   r   r   )r   r  r   r   )r   rf   r	   rZ   r   r{   r  rp  r   r[   r^   r   r   ndimr.   r   setr   )r   r   r  r/  r  rr   r   rp   s           r   test_transform_agg_by_namerx    s
   D
 uQx0,C & #hBIIq!fa()Azjf51d###">37DQ[[%%F &,,		2%%#((a-
fnnckk: s9V$))"#r'234999r   c                     t        t        d      t        d      gddgd      } | j                  dg      d   j                  d       }t	        t        dd	      t        dd	      gd
      }t        j                  ||       y )Nz2010-07-15 03:14:45z2010-11-19 18:47:06z	Etc/GMT+4z
US/Eastern)r  timezonerz  r  c                 L    | j                   j                  | j                        S r$   )r   tz_localizery   r    s    r   r"   z7test_transform_lambda_with_datetimetz.<locals>.<lambda>7  s    !$$""166*r   )tzr   )r   r
   rZ   r[   r	   r^   r~   r   s      r   %test_transform_lambda_with_datetimetzr~  +  s    	 /0/0 %l3	

B ZZ%f-77*F +<+=	
 H 68,r   c                     t        g dg dd      } | j                  d      }d }|j                  }|j                  j	                  ||j
                        }|j                  |      \  }}t        |      \  }}t        j                  t        d      5   ||       d d d        |j                  |      }	t        g d	d
g      }
t        j                  |	|
       y # 1 sw Y   AxY w)Nrg  )r,   r   r,   r   r   r   c                 @    | j                   dk(  rt        d      | dz  S )Nr   Don't cross the streams)rv  NotImplementedError)r   s    r   r/  z,test_transform_fastpath_raises.<locals>.funcJ  s$     88q=%&?@@Qwr   r6   r  rS   )r   r   rI   rK   r   )r   rZ   _obj_with_exclusions_grouperget_iteratorr7   _define_pathsnextr   r0  r  r[   r^   r_   )rm   r   r/  r  gen	fast_path	slow_pathr   r  rp   ro   s              r   test_transform_fastpath_raisesr  C  s     
M:	;B	CB 
!
!C
++
"
"3RWW
"
5C++D1IyCyHAu	*2K	L% 
M \\$F6H&(+ 
M	Ls   	C  C)c            	      z   t        g dg dt        d      t        d      t        d      d      } | j                  ddg      } | j                         } | j	                  d      j                  d       }t        g d	g d	g d	d
t        j                  g dddg            }t        j                  ||       y )N)r4  r5  r4  r5  r4  fluxr4  r  )rD   rD   rE   threerE   sixfiver  r  )r   rK   r   r   rs  r   rK   )r  c                      | j                   d   S r  )r   r    s    r   r"   z0test_transform_lambda_indexing.<locals>.<lambda>n  s    qvvbzr   )r   r   r&   r&   rI   rI   rI   rI   )r   r   rs  ))r5  rD   )r5  r  )r  r  )r  r  )r4  r  )r4  rD   r4  rE   r  )r,  r   )
r   rf   r-  r]   rZ   r[   r   r  r^   r_   r   s      r   test_transform_lambda_indexingr  a  s    	KNqqq	

B 
sCj	!B	BZZcZ",,-ABF)))	

 $$	 *
H( &(+r   c                    t        t        g dg d      g dg dd      }t        g dg dg dd      }|j                  ddg|       j                  d	      }|j                  ddg      j                  d	      }t	        j
                  ||       t        d
g di      }t	        j
                  ||       |j                  ddg|       d
   j                  d	      }|j                  ddg      d
   j                  d	      }t	        j                  ||       t        g dd
      }t	        j                  ||       y )N)r   r   r   r   )
categoriesr   )r   rK   r   r   r   rf  r%   rK   )rI   r   rI   r   )r   r   rZ   r[   r^   r_   r~   r	   )rg  df_with_categoricaldf_without_categoricalrp   ro   expected_explicits         r   (test_categorical_and_not_categorical_keyr    s4   
 $_I 	
 'IOD
 !((#sh(GQQRWXF%--sCj9CCEJH&(+!3	"23&"34 !((#sh(GLVVF &--sCj9#>HHOH68,ys36#45r   c                      t        g dg dd      } | j                  d      j                  d      }t        dg di      }t        j                  ||       y )N)r,   r,   r   r   r   r   r   rK   )r  r  r  r   r   s      r   test_string_rank_groupingr    sH    	3	4BZZ_&&v.F#/0H&(+r   c                  8   t        g dt        d      d      } | j                  t        j                  ddgd            }|j                         }t        g d      }t        j                  ||       |j                  d      }t        j                  ||       y )	Nr  r(   r   r   r,   r   )r   r,   r   r   r,   r   r7  )
r   rf   rZ   r   r{   r7  r	   r^   r~   r[   )rm   r   rp   ro   s       r   test_transform_cumcountr    sw    	+%(;	<B
**RYY1vq)
*C\\^F()H68,]]:&F68,r   r  A1A2c                    d}t         j                  j                  d      j                  ddg|      }t         j                  j                  d      j                  ddg|      }t	        |      dk(  r|n||z  }t         j                  j                  d      j                  dd|      j                  t              }t         j                  ||<   t         j                  j                  d      j                  dd|      j                  t              }t         j                  ||<   t         j                  j                  d      j                  dd|j                        }	t        |||	d	      }
|	}|r8|j                         r(|j                  t              }t         j                  ||<   t        |d
g      }|
j                  |||       }|d
g   j                  d       }t        j                  ||       y )NrH   r   FTr,   r   r:   r  )r  r  rK   rK   r   )dropnasortc                     | S r$   r   r    s    r   r"   z-test_null_group_lambda_self.<locals>.<lambda>  s    1r   )r   rV   rW   choicer   r  r   r  rK  shaper   anyrZ   r[   r^   r_   )r  r  r  r  nulls1nulls2nulls_groupera1a2r|   rm   expected_valuesro   r   rp   s                  r   test_null_group_lambda_selfr    s    DYY""1%,,eT]DAFYY""1%,,eT]DAF!$i1nF&6/M			q	!	*	*1ad	*	;	B	B5	IBBvJ			q	!	*	*1ad	*	;	B	B5	IBBvJYY""1%..q!"((.CF	"BV4	5BO-##%)007)+&3%8H	Dd	3BY  -F&(+r   c                    |dk(  r1d}| j                  t        j                  j                  |             g d}t	        ddt
        j                  t
        j                  gg dd|      }|j                  d	|
      }t        ||      }|dk(  rt	        dg di|      }n|dk(  rt	        dg di|      }n|dk(  rt	        dg di|      }n|dk(  rt        g d|      }n|dk(  rt	        dg di|      }ns|j                  d	d
      }	g }
|	D ]?  \  }} t        |d   |             }|
j                  t        ||j                               A t        |
      j                  d      }|rq|dv rt        nt         }|j#                  |      }|j$                  dk(  r"t
        j                  |j&                  ddgdf<   nt
        j                  |j&                  ddg<    |j(                  |g| }t+        j,                  ||       y )Nr   zincorrectly raisesr   r   r,   r,   r   r   r   r   r   r   r  r   rK   rg  r<  r   r   r   r   r   r  r   r   r   r   )r  r  r  r  Fr  r   r   r   r   )r   r   r   r   r   r   rK  rZ   r   r	   rF  appendr   r   r  rc   r  r   rv  r   r[   r^   r   )r   r  r   rs   r   rm   r   r   ro   expected_gbbufferr   r  r   r+   rp   s                   r   test_null_group_str_reducerr    s   #"FKK--S-9:E	!Q/lC5	QB	C	'B">26D  c<0>	6	!c<0>	5	 c<0>	6	!,e4	:	%c#78FjjUj3%JC5'%*n57CMM&EKK89 & &>**3/(N:??5)==A')vvHMM1a&!)$$&FFHMM1a&!R\\.040FOOFH%r   c           	      n   t        ddt        j                  gg ddg d      }t        ||      }|j	                  d|      }g }t        |      D ]  \  }\  }}	|dk(  r,t        d	t        t        |	            i|	j                        }
n?|d
k(  r't        t        |	      |gz  |	j                  d	g      }
n t        |	d	g   |      | }
|j                  |
        |r<|dv rt        nd }|j                  t        t        j                  ggdg|d	g             t        |      }|dv r|d	   j                  d       }|dk(  r|s	t        }d}n|dk(  r	t        }d}nd }d}t        j                   ||      5   |j"                  |g| }d d d        t        j$                  |       y # 1 sw Y    xY w)Nr,   r,   r   r   r   r   r   r   r  r7  rK   r   )r   r.   r  r   )r   r+   r.   rJ  rG  rH  r   r   rI  rS   )r   r   rK  r   rZ   r  rf   r   r   rF  r  rc   r   r  rh   r^   rg   r[   r   )r   r  r   rm   r   r   r  kr   r  r   r+   ro   r   rs   rp   s                   r   test_null_group_str_transformerr    s   	!Qi8		JB"#6;D	C	'BF$R=<C*,S%E
"34EKKHC H,CJ!,EKK#OC<'%,(;<dCCc ) -?Ti"&&
1#USERSf~H44C=''-l*6 	 
	(5		#	#D	419D9 
5 OOFH% 
5	4s   8F++F4c                 z   g d}t        g d|      }|j                  ddt        j                  t        j                  g|      }|dk(  rt	        ||      rJ y t        ||      }|dk(  rt        g d|      }n|d	k(  rt        g d
|      }n|dk(  rt        g d|      }n|dk(  rt        g d|      }n|dk(  rt        g d|      }n|j                  ddt        j                  t        j                  gd      }g }	|D ]<  \  }
} t        ||             }|	j                  t        ||j                               > t        |	      }|r@|dv rt        nt        }|j                  |      }t        j                  |j                  ddg<    |j                  |g| }t        j                   ||       y )Nr   r  r   r,   r  r   r   rg  r<  r  r   r  r  Fr  r   r   )r	   rZ   r   rK  rp  r   rF  r  r   r   rc   r  r   r   r[   r^   r~   )r   r  r   r   serr   r   ro   r  r  r   r  r   r+   rp   s                  r   "test_null_group_str_reducer_seriesr  -  s   E
U
+C	aBFFBFF+F	;B#2~...">37D  ,e4	6	!,e4	5	 ,e4	6	!,e4	:	%,e4kk1a"8kG%JC0'%02CMM&EKK89 & &>(N:??5) "q!fR\\.040F68,r   c                    t        g dg d      }t        ||      }|j                  ddt        j                  g|       }g }t        |      D ]t  \  }\  }}|dk(  r*t        t        t        |            |j                        }	n,|dk(  rt        ||j                        }	n t        ||      | }	|j                  |	       v | r9|dv rt        nd }
|j                  t        t        j                  gd	g|

             t        |      }|dk(  rt        nd }d}t        j                  ||      5   |j                   |g| }d d d        t        j"                  |       y # 1 sw Y    xY w)Nr  r   r   r,   r  r7  r   r  r   )r   r+   r   z"SeriesGroupBy.fillna is deprecatedrS   )r	   r   rZ   r   rK  r  rf   r   r   rF  r  rc   r   rh   r^   rg   r[   r   )r  r   r  r   r   r  r  r   r  r   r+   ro   r   rs   rp   s                  r   &test_null_group_str_transformer_seriesr  V  s;   
)
,C"#6<D	aBFF^F	3BF$R=<C*,s5z*%++>C H,%++.C5'%!45t<Cc ) -?TfbffXaS>?f~H/8;=D
.C		#	#D	419D9 
5 OOFH% 
5	4s   2E%%E.zfunc, expected_valuesr:   rI   r   r   r,   c                 $    | j                  d      S rQ   )headr    s    r   r"   r"   w  s    166!9r   r  r  r  keys_in_indexc                 @   t        g dg dd      }d|v r|d   |d<   |r|j                  |d      }|j                  |      }|t        u r|d   }|j	                  |       }t        d|i|j
                  	      }|t        u r|d   }t        j                  ||       y )
N)r,   r,   r   r   r   r  )r  r   r  r  T)r  r   r   )r   r-  rZ   r	   r[   r   r^   r   )	r/  r  r  r  r  rm   r   rp   ro   s	            r   test_transform_alignsr  s  s     
/@	ABt|d84\\$t\,	D	B& W\\$F#/rxx@H& C=OOFH%r   r   rK   c                    | dk(  r|j                  d      }t        ||      }|j                  | d      }|j                  | d      }|dk(  rt        nd }d}t	        j
                  ||	      5   |j                  |g| }d d d        t	        j
                  ||	      5   |j                  |g| }	d d d        t	        j                  	       y # 1 sw Y   SxY w# 1 sw Y   ,xY w)
Nr   rK   r   T)as_indexFr   r   rS   )r   r   rZ   rh   r^   rg   r[   r   )
r  rm   groupby_funcr   gb_as_index_truegb_as_index_falser   rs   rp   ro   s
             r   test_as_index_no_changer    s     s{WWSW!"<4Dzz$z6

4%
8(H4=$D
1C		#	#D	4+!++L@4@ 
5		#	#D	4.$..|CdC 
5OOFH%	 
5	4	4	4s   0C#C"C"C+howra  c                    t        g dddt        j                  dgt        d      d      }|j	                  d      }d|  d	}t        j                  t        |
      5  |j                  | d||      }d d d        |rd nt        }d|  d}t        j                  ||
      5  |j                  | ||      }d d d        t        j                         y # 1 sw Y   dxY w# 1 sw Y   ,xY w)N)r,   r,   r,   r   rj  r  r  abcdr   r   z#'axis' keyword in DataFrameGroupBy.z is deprecatedrS   r   z!The behavior of DataFrameGroupBy.z  with .* any-NA and skipna=False)r  ra  )
r   r   rK  rb   rZ   r^   rg   rh   r[   r_   )	r  r  ra  rm   r   rs   rp   r   ro   s	            r   !test_idxmin_idxmax_transform_argsr    s     
S#rvvs,C$v,W	XB	CB/uN
CC		#	#M	=c1fl; 
>4}D-cU2R
SC		#	#D	4<<F<N 
5&(+ 
>	= 
5	4s   C#C#C #C,)h__doc__numpyr   r   pandas._libsr   pandas.core.dtypes.commonr   pandasrd   r   r   r   r   r	   r
   r   r   pandas._testing_testingr^   pandas.tests.groupbyr   r   rt   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r'  r2  rQ  rU  r_  rb  re  rp  rs  r  r  r  r   parametrizer  rK  r  fixturer  r  slowrV   rW   r  r   r  paramr   r  r  r  r  r  r  r  r  r1  r  r   r3  r;  r   ri   rC  rN  rb  rj  rl  rq  rx  r~  r  r  r  r  r  r  r  r  r  r  sort_valuesr  r  r  r   r   r   <module>r     s
        9 	 	 	  8)9,x-,,D,"5J&0&(+,\,---*-*7B#,+";0|,8(-- D(,>,B-8: 	B-.	2+,	%./	$+,	SS  	845E4=1 bff	-vrvvhm'/RS EBJ#*aS1Wx5G1#PQ'5QR$4x!|$CsCj$PFF$ $3bffX\#AS#J#NFF##"	
	'*V-W* 2 6Z-  .  
 	B-.	2+,	%./	$+,	 GZ#89	ryy$$Q'00BR0@GGNO	!	xd,-V[[5F5FG	x !	,	 : *,D 	B-.	2+,	%./	$+,	 GZ#89	ryy$$Q'00BR0@GGNO	!	x 
x !
 #/
 : D#/L=@ 	fYS)*#JII67	
	 %>?& @	&	- 4-8tUm4&JK  VVRVVVVVVVVL	

 
!bffbffffbffffbffUVVVVVVRVVRVVL	

 
!bffffbffffbffbffUV"'+# L 5 9('+T '(:;, <,  
++##P $ 	
 QG,(@A4),& - B -&@ 	665"&&&&&IJ	65%HI--8 "&&"&&!12% 3%=* #sBFFBFFGV!LM	, N	, 	J<!#zlQ&66+FG	J<!#zlQ&66+FG-- .( !JK	- L	- !<=lT61#;4G%HI, J >,+$:>-0,<",J6B,
- 4&4,!78, 9,4(&V(&V&-R&: 			_-	sBFFAq"&&9: 4&4,!784-8& 9 9&& #Sz!23& 4&" 8 45$7, 8 6,r   