
    bMh                     T   d dl Z d dlZd dlmZ d dlZd dlZd dlm	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 d dlmZ d dlmZ ej                            dd	d
g          ej                            dg dg dg dg dg dg dg dg dg dg dg dg dej        ej        ej        gg          d                         Zd Z ej                            dd	d
g          d             Z!ej                            dd	d
g          ej                            dg dg dej"        ej"        ej"        gdej"        dgdej"        dgdej"        dgg          d                         Z#ej                            d d!d" ej$        dge%#           ej$        ej"        gd$#          fd%d! ej$        ej"        gd$#           ej$        dge%#          fd%d% ej$        ej"        gd$#           ej$        ej"        gd$#          fd"d$ ej$        ej"        gd$#           ej$        ej"        gd$#          fg          d&             Z&ej                            dd	d
g          ej                            d'g d(          d)                         Z'ej                            d*d	ej"        ej        gdfd	ej"        d+ej        gdfd
ej"        ej(        gdfd
ej"        dej(        gdfg          d,             Z)ej                            dd	d
g          d-             Z*ej                            dd	d
g          d.             Z+ej                            d/d0d1g          d2             Z,ej                            d/d0d1g          d3             Z-ej                            d4d0d d5gd+d6gd+d5gd7fd1d+d6gd d5gd d6gd7fg          ej                            d8ddg          d9                         Z.ej                            d ed:           ed;          fd<g          ej                            d=g d>          d?                         Z/ej                            d/d@dAg          dB             Z0dC Z1dD Z2dE Z3dF Z4dG Z5dH Z6dI Z7dJ Z8dK Z9dL Z:ej                            dMdNdOg          dP             Z;ej                            dMdNdOg          dQ             Z<dR Z=ej                            dMdNdOg          dMe>fdS            Z?ej                            d'g dT          dU             Z@dV ZAej                            dMg dW          dX             ZBej                            dMdNdOg          dY             ZCdZ ZDej        jE        ej                            d[ddg          ej                            d\ddg          ej                            d]ddg          ej                            d^ddg          ej                            d_d`gd`dagg          db                                                                         ZFdc ZGdd ZHde ZIdf ZJej                            dgg dh edi          ej(         edi          gd ed+g ejK        djgdkl          dm          fg dh ejL        dnd+d+          ej(         ejL        dnd+d+          gd ed+g ejK        djgdkl          dm          fg do ejL        dnd+d+          ej(         ejL        dnd+d+          ej(         ejL        dnd+d+          gd ed5d5g ejK        djdpgdkl          dm          fg dq ejL        dnd+d+          ej(         ejL        dnd+d+          ej(         ejL        dnd+d+          gd ed5d+g ejK        djdpgdkl          dm          fg          dr             ZMds ZNdt ZOdu ZPdv ZQej                            dwd dxg          dy             ZRdz ZSd{ ZTej                            d'g d|          ej                            d}d@d~d+d+dd5d6dgifdAd~d+d5dd5ddgifdNd~d+d+dd5d6dgifdOd~d+d5dd5ddgifdd+d5dd5d5dgddfg          d                         ZUd ZVej                            ddejW        fdejX        fdejY        fdejZ        fdej[        fdej\        fdNej]        fdOej^        fd@d fdAd fdej_        f ej`        deV eja        d                    g          d             Zbej                            dg dd+ej"        d5d+ej"        d5d+ej"        d5g	dg dg ddg          ej                            dg d          d                         Zcej                            dg d          ej                            dd d+g          ej                            dddg          ej                            d[ddg          d                                                 Zdd ZedS )    N)ascii_lowercase)iNaT)pandas_dtype)na_value_for_dtype)	DataFrame
MultiIndexSeries	Timestamp
date_rangeisna)_test_decoratorsagg_funcanyallvals)foobarbaz)r    r   )r   r   r            )r   r   r   r   r   r   )      ?       @      @)r           r   )r   r   r   )TTT)TFF)FFFc                    t          dgdz  dgdz  z   |dz  d          } t          t          |          |          }| r$t          t	          |                    r|dk    rd}t          |gdz  dgt          j        ddgd	
                    } t          |                    d	          |          |           }t          j	        ||           d S )Nar   br   )keyvalr   Fr#   r"   namecolumnsindexskipna)
r   getattrbuiltinsr   r   pdIndexgroupbytmassert_frame_equal)r*   r   r   dfexpexpectedresults          d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/groupby/test_reductions.pytest_groupby_bool_aggsr7      s    ( 
C519uqy0BB	C	CB &'(H
%
%d
+
+C  #d4jj// h%&7&7		E7"(C:E*J*J*J  H 2WRZZ&&11@@@F&(+++++    c                  2   t          g ddt          j        dgdt          j        dggg d          } t          ddgd	dggd
dgddg          }d|j        _        |                     d                                          }t          j        ||           d S )N)r   r   r   r   r   r   r   ABCr'   TFr<   r=   r&   r;   )	r   npnanr(   r%   r/   r   r0   r1   r2   r4   r5   s      r6   test_anyrB   >   s    		BFE*Q,>?
 
 
B 
t}%Sz!Q  H HNZZ__  ""F&(+++++r8   bool_agg_funcc                    t          ddggddg          }|                    dg          } t          ||                       }|                    t	          j        dg                    }t          j        ||           d S )NTr    r>   r   )r   r/   r+   set_axisr?   arrayr0   r1   )rC   r2   grp_byr5   r4   s        r6    test_bool_aggs_dup_column_labelsrH   K   s|     
T4L>C:	6	6	6BZZ__F+WV]++--F{{28QC==))H&(+++++r8   dataFTc                 (   t          |d          } t          ||           |          }t          |t          j        dg          d          }|                    g d                              | |          }t          j        ||           d S )Nbooleandtyper)   r   r(   rM   r   )r	   r+   r?   rF   r/   aggr0   assert_series_equal)rC   r*   rI   serexpected_datar4   r5   s          r6   test_masked_kleene_logicrS   V   s     Y
'
'
'C 0GC//v>>>Mm28QC==	JJJH[[##''f'EEF68,,,,,r8   zdtype1,dtype2,exp_col1,exp_col2floatFloat64rL   rK   Int64c                 f   dt           j        g}t          t          j        ||           t          j        ||          d          }|                    ddg                              dd          }t          ||dt          j        dg                    }t          j        ||           d S )	Nr   rL   )col1col2r   r   Fr)   r(   )	r?   r@   r   r-   rF   r/   rO   r0   r1   )dtype1dtype2exp_col1exp_col2rI   r2   r5   r4   s           r6   test_masked_mixed_typesr_   o   s    > =D	$f---rxF7S7S7STT
 
B ZZA##E%#88F(H==RXqc]]SSSH&(+++++r8   rM   )rV   rU   rK   c                 *    |t           j        dg|          }d}|s| dk    rt           j        } ||gt          j        dg          d          }|                    ddg                              | |          }t          j        ||           d S )Nr   rL   Tr   rK   rN   r)   )r-   NAr?   rF   r/   rO   r0   assert_equal)rC   rM   r*   frame_or_seriesobjexpected_resr4   r5   s           r6   test_masked_bool_aggs_skipnarf      s     /25!*E
2
2
2CL mu,,u~RXqc]])TTTH[[!Q  $$]6$BBFOFH%%%%%r8   zbool_agg_func,data,expected_resr   c                 
    ||t                     }|                    dgt          |          z                                |           } ||gt	          j        dg          d          }t          j        ||           d S )NrL   r   boolrN   )objectr/   lenrO   r?   rF   r0   rb   )rC   rI   re   rc   rd   r5   r4   s          r6   test_object_type_missing_valsrk      s}     /$f
-
-
-C[[!s4yy))--m<<F~RXqc]]&QQQHOFH%%%%%r8   c                    t          t          j        gt                    }t	          j        t          d          5  |                    dg                              | d           d d d            d S # 1 swxY w Y   d S )NrL   z boolean value of NA is ambiguousmatchr   Fr)   )	r	   r-   ra   ri   pytestraises	TypeErrorr/   rO   )rC   rQ   s     r6   'test_object_NA_raises_with_skipna_falserr      s     "%
'
'
'C	y(J	K	K	K : :QC]5999: : : : : : : : : : : : : : : : : :s   ,A66A:=A:c                     | t           u rddginddi} | di |dt          i} t          |                    |j                  |                      } | di |dt
          i}t          j        ||           d S )Nr'   r    r%   rM    )r   ri   r+   r/   r(   rh   r0   rb   )rc   rC   kwargsrd   r5   r4   s         r6   
test_emptyrv      s     $3i#?#?i#fc]F
/
1
1F
1
1&
1
1
1C;WS[[++];;==F4444t444HOFH%%%%%r8   howidxminidxmaxc                    |t           u s	|t          u rd S d|v rt          j        nt          j        } ||          j        } ||          j        }t          g d||||gd|          }|                    d          } t          ||                       }t          dddgit          j        dd	gd|
                    }t          j        ||           d S )Nint)r   r   r   r   r    r!   rL   r    r!   r   r   r   r%   rM   rZ   )r{   rT   r?   iinfofinfominmaxr   r/   r+   r-   r.   r0   r1   )	rw   any_real_numpy_dtypeinfo	min_value	max_valuer2   gbr5   r4   s	            r6   test_idxmin_idxmax_extremesr      s    s""&:e&C&C 444288"(D)**.I)**.I	ll)Y	9!MNN"
 
 
B 
CBWRF	q!fRXq!f3>RSSS  H &(+++++r8   c                 L   t          j        |          j        }t          j        |          j        }t	          t          t          j        t          dd          d          d          t          t           j        |t           j        ||t           j        |t           j        t           j        t           j        g
|          d          }|	                    d          }| rd nt          }d	| d
}t          j        ||          5   t          ||          |           }	d d d            n# 1 swxY w Y   | rddddt           j        g}
nt           j        }
t	          d|
it          j        t          dd          dd                    }t          j        |	|           d S )Nr      r   )repeatsintprL   r|   r    z!The behavior of DataFrameGroupBy.z with all-NA valuesrm   r)   r      r!   r}   rZ   )r?   r   r   r   r   r	   repeatranger@   r/   FutureWarningr0   assert_produces_warningr+   r-   r.   r1   )r*   rw   float_numpy_dtyper   r   r2   r   warnmsgr5   valuesr4   s               r6   "test_idxmin_idxmax_extremes_skipnar      s    *++/I*++/I		%1++q999HHHFFFFFF (  	
 	

 
B( 
CB,44}D
Fc
F
F
FC		#D	4	4	4 1 1!S!!0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Q1bf%	fRXeAqkk6JJJ  H &(+++++s   D..D25D2zfunc, valuesr   r   )c_intc_floatc_datenumeric_onlyc                 .   t          g dg dg dg dd          }t          j        |d                   |d<   |d         j                            d          |d<   |d         |d         j        d	         z
  |d
<   |d         j                            d          |d<   |d                             d          |d<   |d                             d          |d<    t          |	                    d          |           |          }t          |t          j
        ddgd                    }|r|                    dg          }n!|d         |d<   |d         |d
<   |d         |d<   |d         |d<   |d         |d<   t          j        ||           d S )Nr;   r;   r<   r<   r   r   r   r   )gGz@g=
ףp=@gRQ @g?)2019201820162017)r%   r   r   r   r   z
US/Pacific	c_date_tzr   c_timedeltaWc_periodr   rV   	c_Integerr   rU   
c_Floatingr%   r   r;   r<   r$   rZ   r>   )r   r-   to_datetimedttz_localizeiloc	to_periodastyper+   r/   r.   dropr0   r1   )funcr   r   r2   r5   r4   s         r6   $test_idxmin_idxmax_returns_int_typesr     s    
(((!\\///666		
 	

 
B >"X,//BxLlo11,??B{O8r(|'8';;B}\_..s33BzNk((11B{O)}++I66B|.WRZZ''..LIIIFrxc
'H'H'HIIIH 2==(=44 ( 2"*8"4'1$W-H[%i0H\&(+++++r8   z2011-01-15 12:50:28.502376z2011-01-20 12:50:28.593448)l    m;-Ll    m;-Lmethod)countr   r   firstlastc                    t          ddg|d          }|                    d          } t          ||                       }| dk    rd}n<| dk    r	|d         }n-| dk    r	|d         }n t          |d	         |                       }t          d	|git          j        dgd
                    }t          j        ||           d S )Nr   r|   r    r   r   r   r   r   r!   r$   rZ   )r   r/   r+   r-   r.   r0   r1   )r   rI   r2   groupedr5   expected_valuer4   s          r6   2test_groupby_non_arithmetic_agg_int_like_precisionr   /  s     
!Qd++	,	,BjjooG%WWf%%''F	7		a	6		a1C&1133#/0!38O8O8OPPPH&(+++++r8   r   r   c           
         t          t          |                     }t          g d|d|dt          j        t          j        g|d|dt          j        t          j        gd|           }|                    d|          }t          ||          } ||          }g d	g d
g dg dd||f         }	|j        |	                             d          }
|r|
	                                }
t          j        ||
           d S )N)r   r   r   r   r   r   r         @r    r!   crL   r    )sortr)   )r   r   r   )r   r   r   )r   r      )r   r   r   ))r   T)r   F)r   T)r   F)r   r   r   r?   r@   r/   r+   r   	set_index
sort_indexr0   r1   )any_real_nullable_dtyper   r*   rw   na_valuer2   r   r   r5   ilocsr4   s              r6   test_first_last_skipnar   M  s+    ",/F"G"GHHH	###C3?C3?	
 	

 &
 
 
B 
Cd	#	#BRFV6"""F ##))!		"	 
 
6kE wu~'',,H )&&((&(+++++r8   c                     t          t          j                            d                              d          g d          } g d| d<   |                     d          }d}t          j        t          |          5  |	                    d	
          }d d d            n# 1 swxY w Y   | j
        d d d	d f         	                    d	
          }|j                            d	          }t          j        ||         |                    d                     t          dd          | d<   |                     d          }d}t!          j        t$          |          5  t          j        t          |          5  |	                    d	
           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   )
   r   )r;   r<   r=   Dr>   )
r   r   r   r   r   r   r   r   r   r   r;   z1DataFrameGroupBy.idxmax with axis=1 is deprecatedrm   r   axisz
2016-01-01r   periodsEz>'>' not supported between instances of 'Timestamp' and 'float')r   r?   randomdefault_rngstandard_normalr/   r0   r   r   ry   r   r(   get_level_valuesrP   	droplevelr   ro   rp   rq   )r2   r   warn_msgresaltindexergb2r   s           r6   test_idxmin_idxmax_axis1r   i  sg   	
	a  0099CWCWCW
 
 
B -,,BsG	CBBH		#M	B	B	B    iiQi                              '!!!QRR%.

Q

'
'Ci((++G3w<s););<<<r222BsG
**S//C
JC	y	,	,	,  'XFFF 	 	JJAJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sH   =B  B$'B$ F7<FF7F#	#F7&F#	'F77F;>F;c                      t          g dg dd          } |                     d          d                                         d         dk    sJ d S )N)r;   r;   r;   r;   r;   )ij  i  io  i`  l    @~ )userconnectionsr   r   r;   l    ,fL )r   r/   mean)r2   s    r6   test_groupby_mean_no_overflowr     si    	---III	
 	

 
B ::fm,1133C8<OOOOOOOr8   c                  n   t          t          j        t          d                    ddgdz  d          } |                     d          d                                         }t          t          j        ddg          dt          j        ddgd	          
          }t          j	        ||           d S )Nr   r;   r<   r   )timecatr   r   r   r$   r%   r(   )
r   r-   to_timedeltar   r/   r   r	   r.   r0   rP   r2   r5   r4   s      r6   test_mean_on_timedeltar     s    	BOE"II66SzA~NN	O	OBZZv&++--F
AfBHc3Ze4T4T4T  H 68,,,,,r8   c                  t   t           j                            d                              d          } t           j        | d d d<   t          |           }t           j                            d                              ddd                              t                    }t           j        |d d d<   |	                    |          
                                }d}t          j        t          |          5  |	                    |                              t           j                  }d d d            n# 1 swxY w Y   t          j        ||           t          t           j                            d                              d	                    }d}t          j        t          |          5  |	                    |                              t           j
                  }d d d            n# 1 swxY w Y   |	                    |          
                                }t          j        ||           d S )
Nr     r   2   size   zusing DataFrameGroupBy.medianrm   )r   r   )r?   r   r   r   r@   r   integersr   rT   r/   medianr0   r   r   rO   	nanmedianr1   )arrr2   labelsr5   r   r3   rsxps           r6   test_cython_medianr     s=   
)


"
"
2
24
8
8CvC!H	3BY""1%%..q"4.@@GGNNF6F44R4LZZ&&((F
)C		#M	=	=	= 3 3jj  $$R\223 3 3 3 3 3 3 3 3 3 3 3 3 3 3&#&&&	29((++;;IFF	G	GB
)C		#M	=	=	= / /ZZ##BI../ / / / / / / / / / / / / / /	F			"	"	$	$B"b!!!!!s$   73D66D:=D:23G11G58G5c                    t          t          j                            d                              ddd                    }t          ddd          }t          j        |d         |          }|                    ||           	                                }|                    ||           
                    d           }t          j        ||           d S )	Nr   r   ,     7   r   observedc                 *    |                                  S )N)r   xs    r6   <lambda>z(test_median_empty_bins.<locals>.<lambda>  s     r8   )r   r?   r   r   r   r   r-   cutr/   r   rO   r0   r1   )r   r2   grpsbinsr5   r4   s         r6   test_median_empty_binsr     s    	29((++44QC@@	A	ABB??D6"Q%DZZxZ007799Fzz$z22667K7KLLH&(+++++r8   c                     t          g dg dddgz  d          } |                     d                                          }d|v sJ |                     d                              d	          }d|v sJ |                     d                                          }d|v sJ |                     d                              d	          }d|v sJ d S )
N)   r     r  r   r   mama)nniissr  r  Fr   )r   r/   r   r   )aar5   s     r6   test_max_min_non_numericr    s    	***,,,a6(lSS	T	TBZZ!!##F6>>>>ZZ!!u!55F6>>>>ZZ!!##F6>>>>ZZ!!u!55F6>>>>>>r8   c                 H   t          g dg dg dd          }|                                 | s#|rt          |j        j                  dk    snnJ |                    d          }|dg                                         }t          j        g d	d
          }t          dg di|          }t          j
        ||           |dg                                         }t          j        g d	d
          }t          dg di|          }t          j
        ||           d S )N)r   r   r   r   r   )r   r   r   r   F)r    r!   r   der:   r   r   r;   r=   r   r$   )r!   r
  r  rZ   )r    r   r  )r   _consolidate_inplacerj   _mgrblocksr/   r   r-   r.   r0   r1   r   )using_array_managerusing_infer_stringr2   r   r5   eir4   s          r6   $test_max_min_object_multiple_columnsr    sB   
 
 ,,,***	
 	

 
B  E+=Ds27>""a''''''	CBY]]__F	)))#	&	&	&B#/r:::H&(+++Y]]__F	)))#	&	&	&B#/r:::H&(+++++r8   c                  N   t          j        t          g d          d          j        j        } t          t          j        dt          j        gg d| d          }|                    dd	          d
         	                                d
         }t          j        t          ddgd
          d          j        j        }t          j        ||           |                    d          d
         	                                }d|j        _        t          j        ||           d S )N)
2019-05-09r  r  z%Y-%m-%d)format1)r   r   r   r   r!   Fas_indexr   r  r$   )r-   r   r	   r   dater   r?   r@   r/   r   r0   rP   r(   r%   )datesr2   r5   r4   s       r6   test_min_date_with_nansr    s   N999:::   
 
"&#rv.YYYUKK	L	LBZZeZ,,S15577<F~l+#666z    68,,,ZZ__S!%%''FHN68,,,,,r8   c                  b   t          dt          g          } t          j        ddgt          j                  }|                     |          }|                    d          }t          ddit          j                  }t          j        ||d           |	                    d          }t          dt          it          j                  }t          j        ||d           |	                    d          }t          dt          j
        i          }t          j        ||d           d S )Nr   rL   r   	min_countTcheck_exactr   )r	   r   r?   rF   int64r/   r   r0   rP   r   r@   )rQ   r"   r   r5   r4   s        r6   test_max_inatr"    s
   
!T

C
(Aq6
*
*
*C	S		BVVaV  Fq!fBH---H68>>>>VVaV  Fq$irx000H68>>>> VVaV  Fq"&k""H68>>>>>>r8   c                  t   t          dt          dt          dz   g          } |                     g d          }|                    d          }t          t          j        t          j        t          dz   d          }|j                            t                    |_        t          j
        ||d           d S )Nr   r   )r   r   r   r   r  r   Tr  )r	   r   r/   r   r?   r@   r(   r   r{   r0   rP   )rQ   r   r5   r4   s       r6   test_max_inat_not_all_nar$    s     !T1dQh'
(
(C	\\\	"	"BVVaV  F "&RVq99::H^**3//HN68>>>>>>r8   r   r   r   c                 @   ddg}t          j        ddd          }t          ||d          } t          |                    d          d         |                       }t          j        ddgd	          }t          ||d
          }t          j        ||           d S )Nr   r   2020Yr   freqr|   r    r!   r$   r(   r%   )	r-   period_ranger   r+   r/   r.   r	   r0   rP   r   groupsr   r2   r5   idxr4   s          r6   $test_groupby_aggregate_period_columnr/    s     VFofac:::G	g..	/	/B0WRZZ__S)40022F
(Aq6
$
$
$CgSs333H68,,,,,r8   c                 6   ddg}t          j        ddd          }t          ||d          } t          |                    d          |                       }t          j        ddgd          }t          d	|i|
          }t          j        ||           d S )Nr   r   r&  r'  r(  r|   r    r$   r!   rZ   )r-   r+  r   r+   r/   r.   r0   r1   r,  s          r6   #test_groupby_aggregate_period_framer1  +  s     VFofac:::G	g..	/	/B+WRZZ__d++--F
(Aq6
$
$
$C#ws333H&(+++++r8   c                  L   t          g dt          d          t          j        gdz  d                              t
                    } |                     d                                          }t          ddgdd	gt          j        t          j        gd                              d                              t
                    }t          j
        ||           t          g dt          d          t          d          d                              t
                    } |                     d                                          }t          ddgdd	gd
dgd                              d                              t
                    }t          j
        ||           d S )Nr   abcdr   )r"   rX   rY   r"   r;   r<   r    r   r   r   )r   listr?   r@   r   ri   r/   r   r   r0   r1   r   r   s      r6   #test_aggregate_numeric_object_dtyper5  9  sv    
$$$d6llRVHqLQQ
 
fVnn  ZZ""$$F#Jc
RVRV<LMM	
 	
 
5			  &(+++ 
$$$d6llE!HHMM
 
fVnn  ZZ""$$F3*sCj1a&IIJJ	5			 
 &(+++++r8   c                    t          dgd          j                                        }t          dg|d          }|                    d                              d| i          }t          ddgit          j        dgd          	          }|d                             |j	                  |d<   t          j        ||           d S )
Nr!   categoryrL   i  r;   r<   r;   r<   r$   rZ   )r	   r   
as_orderedr   r/   rO   r-   r.   r   rM   r0   r1   )r   dsr2   r5   r4   s        r6   %test_aggregate_categorical_lost_indexr;  W  s     
Z	(	(	(	,	7	7	9	9B	$b))	*	*BZZ__  #t--F#uRXtf3-G-G-GHHHH SM((22HSM&(+++++r8   )rV   Int32rU   Float32rK   c                    | dk    rd}n| dk    rd}nd}t          ddg||dz   gd          }|d	                             |           |d	<   |                    d
          }|                                }|j        d d                             d
          }t          j        ||           |                                }|j        dd                              d
          }t          j        ||           |                    d          }t          d	t          j
        gi|j        |           }	t          j        ||	           |                    d          }
t          j        |
|	           t          g d|t          j
        |dz   gd          }|d	                             |           |d	<   |                    d
          }|                                }t          j        ||           |                                }t          j        ||           |                    d          }t          j        ||	           |                    d          }t          j        ||	           d S )NrV   l   .D3 rK   r   r   r   r   )idtsr@  r?  r   r  rN   )r   r   r   d   )r   r   r/   r   r   r   r0   r1   r   r-   ra   r(   )rM   r@  r2   r   r5   r4   res_maxexpected_maxresult2	expected2res_max2df2r   result3res_max3result4res_max4s                    r6   test_groupby_min_max_nullablerL  e  s@    	)			1a&R!V55	6	6B$xu%%BtH	D		BVVXXFwrr{$$T**H&(+++ffhhG7122;((..L'<000ffqf!!G4"%/uMMMI'9---vvv""H(I... 999RQ,?@@
A
ACD	  ''CI
++d

CggiiG'8,,,wwyyH(L111ggg$$G'9---www%%H(I.....r8   c            	      J   t          j        dgdz  ddg          } t          | t          j        t	          j        dt          j                            d          }|                    dd	          }|                                }t          j	        ddg| j
        d
          }t          dt          j        dt           j        gd          i|          }t          j        ||           |                                }d|j        d<   t          j        ||           d S )Nr   r   r   )
categoriesrL   r8  r;   Fr   rM   r%   r<   UInt64rZ   	   )r   r   )r-   Categoricalr   rF   r?   arangeuint64r/   r   CategoricalIndexrM   ra   r0   r1   r   r   )r   r2   r   r   r.  r4   s         r6   (test_min_max_nullable_uint64_empty_grouprV    s    
.!rq!f
5
5
5C	28BIb	,J,J,J#K#KLL	M	MB	C%	(	(B
&&((C

q!fCIC
@
@
@C#rxBE
(CCCDCPPPH#x(((
&&((CHM$#x(((((r8   )r   r   r   r   c                    t          t          j        dgt          d          d          t          j        dgddgd          dd          } t	          |                    d	d
          |                       }t          j        ddgd	d          }t          t          j        dd gddgd          dd gd|          }t          j        ||           d S )Nr;   ABT)rN  orderedr   r   g?)rX   rY   valuerX   Fr   r<   )rI   r%   rY  )rY   rZ  rZ   )	r   r-   rR  r4  r+   r/   rU  r0   r1   )r   r2   r5   r.  r4   s        r6    test_groupby_min_max_categoricalr[    s     
NC5T$ZZNNNNA3Aq64HHH	
 	

 
B ?WRZZZ77>>@@F

C:FD
I
I
ICNAt9!QNNN4[	
 	
   H &(+++++r8   c           	      "   |}t          dgddd|          j        d d         } t          |                    d          |                       }t          ddg|t	          j        g |d                    }t          j        ||           d S )	Nr    r   rL   r   r!   r   rO  )r'   rM   r(   )r   r   r+   r/   r-   r.   r0   r1   )r   string_dtype_no_objectrM   r2   r5   r4   s         r6   test_min_empty_string_dtyper^    s     #E	#Ss335	A	A	A	Frr	JB+WRZZ__d++--Fc
%rx%c/R/R/R  H &(+++++r8   c            	         t          g dg dt          t          j        t          j        dg          g dd          } |                     d          }|dg                                         }|d                                                                         }t          j        ||           |d         	                                
                                rJ d S )N)z-04-23z-05-06z-05-07)z2013-04-23 00:00:00z2013-05-06 00:00:00z2013-05-07 00:00:00OE)zlog080001.logzlog.logxlsx)z
Unnamed: 0DateappFilerb  rd  )r   r	   r?   r@   r/   r   to_framer0   r1   r   r   )r2   r   rr  s       r6   test_max_nan_bugrg    s    	888  
 26264011888		
 		

 
B 
F		B
F8A
6
!!##A!Qy~~##%%%%%%%r8   r   dropnar  with_nankeysjoejimc           	      >   d}d}t          dd          }t          t          j                            d                              t          t                    |          t          j                            d                              ||          t          j                            d                              d||          d          }|rg|	                    dt          i          }d |j        d	d d
df<   d |j        dd ddf<   d |j        dd ddf<   d |j        dd ddf<   d |j        dd ddf<   |                                }	|                    |||           }
|
d                             |          }|                    |||           }
|
d                             t           j        |          }|s|                    d          }|rt%          j        ||d           nt%          j        ||d           t%          j        ||	           d S )NrA  r   z
2015-08-23r   r   r   )rl  rk  juliern  r   r   rl  r   %   rk           rQ  )r  r   rh  T)r   F)check_names)r   r   r?   r   r   choicer4  r   r   r   rT   loccopyr/   nuniqueapplyr	   reset_indexr0   rP   r1   )r   rh  r  ri  rj  nmdaysr2   original_dfgrleftrights                r6   test_series_groupby_nuniquer    s    	A
AlB///D	9((++2243H3H!LL9((++224;;Y**1--66q!Q??	
 	

 
B  &YY'((#qu"ue|#qu"ue|!%qu"ug~!%qu"ug~!%qu"ug~''))K	D8$	7	7Bg;f--D	D8$	7	7BwKfnV<<E -!!t!,, >
tU>>>>>
dEu===="k*****r8   c                     t          t          d          t          d          t          d          d          } t          t          d          g dg dd          }|                     dd	
                                          }t	          j        ||           t          d          |_        d|j        _        |                    d          }|                     d                                          }t	          j        ||           | 	                    dd i                              d                              d	          }t	          j        ||           t          dgdz  dgdz  dt          d                    }d|j        _        | 	                    dd i                              d                                          }t	          j        ||           d S )Nabbaccabxaccabbacxr:   abc)r   r   r   )r   r   r   r;   Fr  r>   r   rs  r   r   )r<   r=   rZ   )
r   r4  r/   rx  r0   r1   r(   r%   r   replacerA   s      r6   test_nuniquer    s   	hd8nn4>>RR	S	SBtE{{KKLLHZZeZ,,4466F&(+++ %[[HNHN}}S}))HZZ__$$&&F&(+++ ZZd$$,,S11999GGF&(+++ sQwaS1W55T%[[IIIHHNZZd$$,,S1199;;F&(+++++r8   c                  >   t          g dg dg dg dg dgg d          } |                     dd	g          d
                                         }t          j        | j        | j        g          }t          dgdz  d
|          }t          j	        ||           d S )N)rA  r   Alice)   r   Bob)i,  r   Charlie)ipr   Dan)r   r   Edith)amountr?  r%   r>   r?  r  r%   r   r   r   )
r   r/   rx  r   from_arraysr?  r  r	   r0   rP   )rI   r5   r(   r4   s       r6   test_nunique_with_objectr    s    OO	
 )((	 	 	D \\4*++F3;;==F"DGT[#9::EqcAgF%888H68,,,,,r8   c                      t          dt                    } |                     d                                          }t          dd          }t	          j        ||           d S )Nr%   r}   r   levelr!  )r	   ri   r/   rx  r0   rP   )rI   r5   r4   s      r6   test_nunique_with_empty_seriesr  1  s^    vV,,,D\\\""**,,F6111H68,,,,,r8   c                     t          t          d          t          d          t          d          gg dd                              d          } |                     t	          j        d                    d	                                         }|                     t	          j        d                    d	                             t          j                  }t          j
        ||           d S )
Nz2016-06-28 09:35:35z2016-06-28 16:09:30z2016-06-28 16:46:28)r  23)r   rI   r   h)r)  rI   )r   r
   r   r/   r-   Grouperrx  ry  r	   r0   rP   testr5   r4   s      r6   test_nunique_with_timegrouperr  9  s     /00/00/00
 $OO	
 	
	 	 i 	 \\"*#...//7??AAF||BJC00011&9??OOH68,,,,,r8   zkey, data, dropna, expected)r   r   r   z
2019-01-01r   r"   r$   r*  i  )r   r   r   yr  r  )r   r   r   r   r  c                     t          | |d          }|                    dg          d                             |          }t          j        ||           d S )N)r"   rI   r"   rI   rs  )r   r/   rx  r0   rP   )r"   rI   rh  r4   r2   r5   s         r6   test_nunique_with_NaTr  J  s\    V 
3--	.	.BZZ  (000??F68,,,,,r8   c                  (   t          g dt          j        dgd                    } |                     g d                                          }t          dgt          j        dg          | j        	          }t          j	        ||           d S )
N)r   r   r   r;   level_0r$   r>   r   r   r   )r(   r'   )
r   r-   r.   r/   rx  r?   rF   r'   r0   r1   r  s      r6   )test_nunique_preserves_column_level_namesr  z  s    YYY#Y(G(G(GHHHD\\)))$$,,..F!BHaSMM4<HHHH&(+++++r8   c                      t          t          dd          dg          } |                     g d          d                             d          }t	          g dd          }t          j        ||           d S )	Nz
2008-12-31z
2009-01-02r  r>   )r   r   r   rx  )r   r   r   r$   )r   r   r/   	transformr	   r0   rP   r   s      r6   $test_nunique_transform_with_datetimer    sw    	:lL99F8	L	L	LBZZ			""6*44Y??Fiiif---H68,,,,,r8   c                 @   t          dg                              d          }|d d         }|                    ||           }|                                }| rt          g |d d         d          }nt          dg|d          }t	          j        ||           d S )Nr   r7  r   r   r!  rN   )r	   r   r/   rx  r0   rP   )r   r   rQ   r   r5   r4   s         r6   test_empty_categoricalr    s    
!++

Z
(
(C
bqb'C	S8	,	,BZZ\\F 9"CG7;;;1#S88868,,,,,r8   c                  :   t          ddt          j        dg          } |                     g d          }d}t	          j        t          |          5  |                    t          j	                  }d d d            n# 1 swxY w Y   d}t	          j        t          |          5  |
                    t          j	                  }d d d            n# 1 swxY w Y   |	                                }t	          j        ||           t	          j        ||           d S )Nr   r   r   )r   r   r   r   zusing SeriesGroupBy.sumrm   zusing np.sum)r	   r?   r@   r/   r0   r   r   rO   r,   sumry  rP   )sr   r   r5   rD  r4   s         r6   test_intercept_builtin_sumr    sr   S"&#&''Aii%%G
#C		#M	=	=	= + +X\**+ + + + + + + + + + + + + + + C		#M	=	=	= . .----. . . . . . . . . . . . . . . {{}}H68,,,7H-----s$    A>>BB& CCCr  r   c           	      R   d}d}t           j        }t          j        |||||||gd          }t	          g d|d          }|                    d                              |           }| d	k    rVt	          d
t          j        g dd          it          j        g dd                    }t          j	        ||           d S t	          d
t          j        t          j
        gdz  d          it          j        g dd                    }t          j	        ||           d S )NTFrK   rL   )r   r   r   r   r   r   r   r8  r;   r  r   r<   )r   r   r   rV   r   r$   rZ   r   )r?   r@   r-   rF   r   r/   r  r.   r0   r1   ra   )r  r!   r    nadfgr2   r5   r4   s           r6   !test_groupby_sum_mincount_booleanr    s?   AA	B
(Aq"b!Q*)
<
<
<C	...S99	:	:BZZ__  9 55FA~~"(999G4445(9993///
 
 
 	fh/////"(BE7Q;g6667(9993///
 
 
 	fh/////r8   c                     t          g dg dg ddd          } |                     d          }t          j        g ddd          }|d                             d	          }t          t          j        gd
z  d|d          }t          j        ||           |                    d	          }t          t          j        gd
z  t          j        gd
z  dd|          }t          j	        ||           d S )N)r   r   r   r   rV   rL   r    r}   r!   r   r  r   )rM   r(   r%   )r!   r   )rM   r(   )
r   r/   r-   r.   r  r	   ra   r0   rP   r1   )r2   r   r.  r5   r4   s        r6   0test_groupby_sum_below_mincount_nullable_integerr    s    	CC7	S	S	SBjjooG
(9993g
6
6
6CS\**Frugk#FFFH68,,,[[1[%%Fw{"%1==WTWXXXH&(+++++r8   c                     t          g dt          j        d          t          j        d          t          j        d          t          j        gd          } t          j        d          }|                     d          }|                                }t          d	||git          j        d
dgd                    }t          j        ||           |d	                                         }t          j	        ||d	                    |d	                             d          }t          |t          j        gdd	|j                  }t          j	        ||           d S )N)r   r   r   r   1d2d3dr|   r   )r}  r    r!   r   r   r$   rZ   r  zm8[ns])rM   r%   r(   )r   r-   	TimedeltaNaTr/   r  r.   r0   r1   rP   r	   r(   )r2   td3r   r   r4   s        r6   #test_groupby_sum_timedelta_with_natr    s5   	,t$$bl4&8&8",t:L:LbfU	
 	

 
B ,A


C	CB
&&((C#Sz*"(Aq62L2L2LMMMH#x(((
S'++--C3...
S'+++
"
"CsBFm8#X^TTTH3)))))r8   )int8int16int32r!  float32float64rT  zmethod,datar2   r|   r   r   r!  )r2   out_typec                    t          ddddddddddddg          }|j                            |           |d<   d|vrg |d<   d|v r	|d         }n| }|d	         }t          |          }|j                            |          |d<   |                    d
d           |                    d
          } t          ||          |d          }t          j        ||           d S )Nr   r|   r   r   r   r!   argsr  r2   r    T)inplace)r   r!   r   r   r/   r+   r0   r1   )	rM   r   rI   r2   r  r3   df_outgrpdts	            r6   %test_groupby_non_arithmetic_agg_typesr    s    
q		++11-=-=QQ?O?OP
 
B dkk%  BsGTVT
#
t*Cs^^F(//(++F3K
S$'''::c??DftF|,A!V$$$$$r8   c                  "    ddl m}  || ddi|S )Nr   )semddofr   )scipy.statsr  )r  ru   r  s      r6   	scipy_semr    s.    3'1''''r8   z	op,targopr   r   stdvarr  prodc                     | j         d         S )Nr   r   r   s    r6   r   r     s    AF1I r8   c                     | j         d         S )Nr  r   s    r6   r   r      s    16": r8   r  scipy)marksc                 n   t          t          j                            d                              d                    }t          j                            d                              ddd                              t                    } t          |	                    |          |                       }| dv rd nt          }d|  }t          j        ||          5  |	                    |                              |          }d d d            n# 1 swxY w Y   t          j        ||           d S )	Nr   r   r   r   r   )r   r   r   r  zusing DataFrameGroupBy.rm   )r   r?   r   r   r   r   r   rT   r+   r/   r   r0   r   rO   r1   )optargopr2   r   r5   r   r   r4   s           r6   test_ops_generalr    sN   $ 
29((++;;DAA	B	BBY""1%%..q"4.@@GGNNF,WRZZ'',,..F:::44D
(B
(
(C		#D	4	4	4 2 2::f%%))&112 2 2 2 2 2 2 2 2 2 2 2 2 2 2&(+++++s    )DDDr   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   function)r   r   r  c                 Z   |dk    rdnd}t          j        |gdz  t                    }t          j        g ddd	          }t          d
|i|                              d          }t          | d                              d          } t          ||                      }t          j
        ||           |                    |          }t          j
        ||           |                    |g          }t          j        d
|fg          |_        t          j
        ||           d S )Nr  g      ?g      ?r   rL   r   r    rV   r}   r!   rZ   rU   )r?   rF   rT   r-   r.   r   r   r/   r+   r0   r1   rO   r   from_tuplesr'   )r   r  outputr   r.  r4   r-  r5   s           r6   ,test_apply_to_nullable_integer_returns_floatr  1  s#    %%SS3F
(F8a<u
-
-
-C
(9993g
6
6
6C#s3///66yAAHvW---55c::F&WVX&&((F&(+++ZZ!!F&(+++ZZ
##F!-X.?@@H&(+++++r8   r  )
r  r  r   r   r   r   skewr  r  r  r   r*   c                     t          dg          }dk    r|}d}n	|j        }d}t          j        t          |          5  |                    d|          }d d d            n# 1 swxY w Y    dk    rw t          |                     }|                    d                               fd	          }	|r|	                    
          }	t          j	        ||	           d S  t          |                       }|                    d                               fd          }	|r|	                    
          }	t          j	        ||	           d S )Nr   zAThe 'axis' keyword in DataFrame.groupby is deprecated and will bez+DataFrame.groupby with axis=1 is deprecatedrm   )r  r   r   r  r)   r  c                 :     t          |                     S )N)r   r*   r+   )r  r   r  r*   s    r6   r   z3test_regression_allowlist_methods.<locals>.<lambda>u  s    ngann$v>>> r8   r   c                 8     t          |                     S )Nr   r  )r  r   r  s    r6   r   z3test_regression_allowlist_methods.<locals>.<lambda>|  s    .'!R..d:S:S:S r8   )
r   Tr0   r   r   r/   r+   ry  r   r1   )
r  r   r*   r   	raw_frameframer   r   r5   r4   s
   ```       r6   !test_regression_allowlist_methodsr  P  s   , 1#IqyyQ;		#M	=	=	= ? ?--ad->>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
V||%"%%V444==q=))//>>>>>>
 
  	6***55H
fh/////%"%%''==q=))//0S0S0S0S0STT 	6***55H
fh/////s   A((A,/A,c                  P   ddgddgddgddgddgddgddgdd	gdd
gddgddgddgddgddgg} t          | ddgd          }|                    dg                                                                          }t          dgdgdd          }t	          j        ||           d S )Nr   r  )   r   ro  rp        r   r   +   r   /   rq  X   r;   r<   r!  )r'   rM   l   N+R@r8  rL   )r   r/   r  rz  r0   r1   )rI   r2   r5   r4   s       r6   "test_groupby_prod_with_int64_dtyper    s     
B	
B	
B	
B	
A	
B	
B	
A	
A	
B	
A	
B	
B	
BD  
4#s7	;	;	;BZZ##%%1133Fs*<)=>>gNNNH&(+++++r8   )fr,   datetimer   stringr   numpyr?   ro   pandas._libs.tslibsr   pandas.core.dtypes.commonr   pandas.core.dtypes.missingr   pandasr-   r   r   r	   r
   r   r   pandas._testing_testingr0   pandas.utilr   tdmarkparametrizer@   r7   rB   rH   ra   rS   rF   rh   r_   rf   r  rk   rr   rv   r   r   r   r   r   r   r   r   r   r   r  r  r  r"  r$  r/  r1  r5  strr;  rL  rV  r[  r^  rg  slowr  r  r  r  r  r.   r  r  r  r  r  r  r  r  r  r  r  r   r   r  r  r  r  r   r   r   param
skip_if_nor  r  r  r  rt   r8   r6   <module>r     s        " " " " " "      $ $ $ $ $ $ 2 2 2 2 2 2 9 9 9 9 9 9                          . . . . . . eU^44
							  $, ,%  54&,"
, 
, 
, 5%.99, , :9, 5%.99
	ru	u	rud	rue
 

- 
-
 
 :9
- % BHdV4(((BHbeWI...		
 BHbeWI...BHdV4(((		
 BHbeWI...BHbeWI...		
 BHbeWI...BHbeWI...		
' :	, 	,; :	, 5%.99"A"A"ABB	& 	& CB :9	& %	'	26"D)	&	rv&.	 & & & 5%.99: : :9: 5%.99& & :9& 8 455, , 65,( 8 455%, %, 65%,P 	aVA1a&IIJ	aVA1a&IIJ  $77, , 87 ,@ 
 I233I233	
 	/	 	 #K#K#KLL, , ML	 	,& & 122, , 32,6  4P P P- - -" " ",, , ,  ", , ,>- - -$? ? ?(? ? ? %00
- 
- 10
- %00
, 
, 10
,, , ,< %00
, 
, 
, 
, 10
, "U"U"UVV,/ ,/ WV,/^) ) )" !@!@!@AA, , BA,, %00, , 10,& & &( %//E4=11dE]33dE]335'E5>!:;;+ + <; 43 43 21 0/ +D, , ,2- - -&- - -- - -" ! OOY|$$bfii.E.EFFA3hbhu5999GGG		
 OORWT1a  "&'"'$1*=*=>FA3hbhu5999GGG		
 &%%a##a##a## FAq63*5!A!A!AOOO	
 &%%a##a##a## FAq63*5!A!A!AOOO	
3%( (R- -S( (R-, , ,- - -
- 
- 
-. . ." q"g..0 0 /.0,, , ,* * *0 PPP  	4**!!,<,<=>?	$qq))+;+;<=>	aa((*:*:;<=	aa((*:*:;<=	**!!,<,<=7SST	 	% %	 	 %6( ( ( 		29							%%&	%%&	"'UI]R]7-C-CDDD "	, 	,# "	,  -,,RUAq"%Arua8	
 	
 !  '9'9'9::	 	 %>%>%>??, , @?	 	,(     !Q((D%=11$//0 0 0/ 21 )( $0@, , , , ,r8   