o
    Ehd                     @   s8	  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 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d Z!dd Z"ejdd
dgd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#d$ Z%ejd%d&d'ej&d"ge'd(ej&ej$gd)d(fd*d&ej&ej$gd)d(ej&d"ge'd(fd*d*ej&ej$gd)d(ej&ej$gd)d(fd'd)ej&ej$gd)d(ej&ej$gd)d(fgd+d, Z(ejdd
dgejd-g d.d/d0 Z)ejd1d
ej$ej gd!fd
ej$d2ej gd"fdej$ej*gd"fdej$d!ej*gd!fgd3d4 Z+ejdd
dgd5d6 Z,ejdd
dgd7d8 Z-ejd9d:d;gd<d= Z.ejd9d:d;gd>d? Z/ejd@d:d dAgd2dBgd2dAgdCfd;d2dBgd dAgd dBgdCfgejdDd"d!gdEdF Z0ejd edGedHfdIgejdJg dKdLdM Z1ejd9dNdOgdPdQ Z2dRdS Z3dTdU Z4dVdW Z5dXdY Z6dZd[ Z7d\d] Z8d^d_ Z9d`da Z:dbdc Z;ddde Z<ejdfdgdhgdidj Z=ejdfdgdhgdkdl Z>dmdn Z?ejdfdgdhgdfe@fdodpZAejd-g dqdrds ZBdtdu ZCejdfg dvdwdx ZDejdfdgdhgdydz ZEejd{d d2gejd|d"d!gd}d~ ZFejd{d d2gdd ZGdd ZHejjIejdd!d"gejdd!d"gejdd"d!gejdd"d!gejddgddggdd ZJdd ZKdd ZLdd ZMdd ZNejdg dedej*edgd"ed2gejOdgddd dfg dePdd2d2ej*ePdd2d2gd"ed2gejOdgddd dfg dePdd2d2ej*ePdd2d2ej*ePdd2d2gd!edAdAgejOddgddd dfg dePdd2d2ej*ePdd2d2ej*ePdd2d2gd!edAd2gejOddgddd dfgdd ZQdd ZRdd ZSdd ZTdd ZUejd{d dgdd ZVdd ZWdd ZXejd-g dejddNdd2d2ddAdBdgifdOdd2dAddAddgifdgdd2d2ddAdBdgifdhdd2dAddAddgifdd2dAddAdAdgddfgdd ZYdd ZZejddej[fdej\fdej]fdej^fdej_fdej`fdgejafdhejbfdNddĄ fdOddĄ fdejcfejddeZeedǡdȍgddʄ Zfejdg d̢d2ej$dAd2ej$dAd2ej$dAg	dg d͢g d΢dgejdg dТdd҄ Zgejdg dԢejdd d2gejdd"d!gejdd"d!gdd؄ Zhddڄ ZidS )    N)ascii_lowercase)iNaT)pandas_dtype)na_value_for_dtype)	DataFrame
MultiIndexSeries	Timestamp
date_rangeisna)get_groupby_method_args)_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                 C   s   t dgd dgd  |d d}tt||}| r&tt|r&|dkr&d}t |gd dgtjddgd	d
d}t|d	|| d}t	|| 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result r5   Dlib/python3.10/site-packages/pandas/tests/groupby/test_reductions.pytest_groupby_bool_aggs   s   "r7   c                  C   sr   t g ddtjdgdtjdggg dd} t ddgd	dggd
dgddgd}d|j_| d }t|| d S )N)r   r   r   r   r   r   r   ABCr&   TFr:   r;   r%   r9   )	r   npnanr'   r$   r.   r   r/   r0   r1   r3   r4   r5   r5   r6   test_any?   s   r@   bool_agg_funcc                 C   sP   t ddggddgd}|dg}t||  }|tdg}t|| d S )NTr   r<   r   )r   r.   r*   Zset_axisr=   arrayr/   r0   )rA   r1   Zgrp_byr4   r3   r5   r5   r6    test_bool_aggs_dup_column_labelsL   s
   rC   dataFTc                 C   sZ   t |dd}t|| |d}t |tdgdd}|g dj| |d}t|| d S )Nbooleandtyper(   r   r'   rG   r   )r   r*   r=   rB   r.   aggr/   assert_series_equal)rA   r)   rD   serZexpected_datar3   r4   r5   r5   r6   test_masked_kleene_logicW   s
   rL   zdtype1,dtype2,exp_col1,exp_col2floatFloat64rF   rE   Int64c                 C   sn   dt jg}ttj|| dtj||dd}|ddgjddd}t||dt dgd}t|| d S )	Nr   rF   )col1col2r   r   Fr(   r'   )	r=   r>   r   r,   rB   r.   rI   r/   r0   )Zdtype1Zdtype2Zexp_col1Zexp_col2rD   r1   r4   r3   r5   r5   r6   test_masked_mixed_typesp   s   
rS   rG   )rO   rN   rE   c                 C   sh   |t jdg|d}d}|s| dkrt j}||gtdgdd}|ddgj| |d}t|| d S )Nr   rF   Tr   rE   rH   r(   )r,   NAr=   rB   r.   rI   r/   assert_equal)rA   rG   r)   frame_or_seriesobjexpected_resr3   r4   r5   r5   r6   test_masked_bool_aggs_skipna   s   rY   zbool_agg_func,data,expected_resr   c                 C   sN   ||t d}|dgt| | }||gtdgdd}t|| d S )NrF   r   boolrH   )objectr.   lenrI   r=   rB   r/   rU   )rA   rD   rX   rV   rW   r4   r3   r5   r5   r6   test_object_type_missing_vals   s   r]   c                 C   sZ   t tjgtd}tjtdd |dgj| dd W d    d S 1 s&w   Y  d S )NrF   z boolean value of NA is ambiguousmatchr   Fr(   )	r   r,   rT   r[   pytestraises	TypeErrorr.   rI   )rA   rK   r5   r5   r6   'test_object_NA_raises_with_skipna_false   s   "rc   c                 C   sj   | t u r	ddginddi}| di |dti}t||j| }| di |dti}t|| d S )Nr&   r   r$   rG   r5   )r   r[   r*   r.   r'   rZ   r/   rU   )rV   rA   kwargsrW   r4   r3   r5   r5   r6   
test_empty   s
   re   howidxminidxmaxc           	      C   s   |t u s|tu r
d S d|v rtjntj}||j}||j}tg d||||gd|d}|d}t	||  }tdddgit
jdd	gd|d
d}t|| d S )Nint)r   r   r   r   r   r    rF   r   r    r   r   r   r$   rG   rR   )ri   rM   r=   Ziinfofinfominmaxr   r.   r*   r,   r-   r/   r0   )	rf   Zany_real_numpy_dtypeinfo	min_value	max_valuer1   gbr4   r3   r5   r5   r6   test_idxmin_idxmax_extremes   s   


rs   c                 C   s  t |j}t |j}ttt jtddddddtt j|t j||t j|t jt jt jg
|dd}|	d}| r<d nt
}d	| d
}tj||d t||| d}	W d    n1 s^w   Y  | rnddddt jg}
nt j}
td|
itjtdddddd}t|	| d S )Nr      r   )ZrepeatsZintprF   rj   r   z!The behavior of DataFrameGroupBy.z with all-NA valuesr^   r(   r      r    rk   rR   )r=   rl   rm   rn   r   r   repeatranger>   r.   FutureWarningr/   assert_produces_warningr*   r,   r-   r0   )r)   rf   Zfloat_numpy_dtyperp   rq   r1   rr   warnmsgr4   valuesr3   r5   r5   r6   "test_idxmin_idxmax_extremes_skipna   sB   
r}   zfunc, valuesr   r   )c_intc_floatc_datenumeric_onlyc                 C   s*  t g dg dg dg dd}t|d |d< |d jd|d< |d |d jd	  |d
< |d jd|d< |d d|d< |d d|d< t|	d| |d}t |tj
ddgddd}|ro|jdgd}n|d |d< |d |d
< |d |d< |d |d< |d |d< t|| d S )Nr9   r9   r:   r:   r   r   r   ru   )gGz@g=
ףp=@gRQ @g?)Z2019Z2018Z2016Z2017)r$   r~   r   r   r   z
US/PacificZ	c_date_tzr   Zc_timedeltaWZc_periodr~   rO   Z	c_Integerr   rN   Z
c_Floatingr$   r   r9   r:   r#   rR   r<   )r   r,   to_datetimedtZtz_localizeilocZ	to_periodastyper*   r.   r-   dropr/   r0   )funcr|   r   r1   r4   r3   r5   r5   r6   $test_idxmin_idxmax_returns_int_types  s.   
r   z2011-01-15 12:50:28.502376z2011-01-20 12:50:28.593448)l    m;-Ll    m;-Lmethod)countrm   rn   firstlastc                 C   s   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d
d}t|| d S )Nr   rj   r   r   r   r   r   r   r    r#   rR   )r   r.   r*   r,   r-   r/   r0   )r   rD   r1   groupedr4   expected_valuer3   r5   r5   r6   2test_groupby_non_arithmetic_agg_int_like_precision0  s   


r   r   r   c              	   C   s   t t| }tg d|d|dtjtjg|d|dtjtjgd| d}|jd|d}t||}||d}g d	g d
g dg dd||f }	|j|	 d}
|rT|
	 }
t
||
 d S )N)r   r   r   r   r   r   r         @r   r    crF   r   )sortr(   )r   r   ru   )r   r   ru   )r   r      )r   r   r   ))r   T)r   F)r   T)r   F)r   r   r   r=   r>   r.   r*   r   	set_index
sort_indexr/   r0   )Zany_real_nullable_dtyper   r)   rf   na_valuer1   rr   r   r4   Zilocsr3   r5   r5   r6   test_first_last_skipnaN  s,   

r   c               	   C   sN  t tjddg dd} g d| d< | d}d}tjt|d |j	d	d
}W d    n1 s4w   Y  | j
d d d	d f j	d	d
}|jd	}t|| |d tddd| d< | d}d}tjt|d. tjt|d |j	d	d
 W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   )
   ru   )r9   r:   r;   Dr<   )
r   r   r   r   r   r   r   r   r   ru   r9   z1DataFrameGroupBy.idxmax with axis=1 is deprecatedr^   r   axisz
2016-01-01r   periodsEz>'>' not supported between instances of 'Timestamp' and 'float')r   r=   randomdefault_rngstandard_normalr.   r/   ry   rx   rh   r   r'   Zget_level_valuesrJ   Z	droplevelr
   r`   ra   rb   )r1   rr   Zwarn_msgresZaltZindexergb2r{   r5   r5   r6   test_idxmin_idxmax_axis1j  s,   

"r   c                  C   s8   t g dg dd} | dd  d dksJ d S )N)r9   r9   r9   r9   r9   )ij  i  io  i`  l    @~ )userconnectionsr   r   r9   l    ,fL )r   r.   mean)r1   r5   r5   r6   test_groupby_mean_no_overflow  s   "r   c                  C   sh   t ttdddgd d} | dd  }ttddgdtjddgdd	d
}t	|| d S )Nr   r9   r:   r   )timecatr   r   ru   r#   r$   r'   )
r   r,   Zto_timedeltarw   r.   r   r   r-   r/   rJ   r1   r4   r3   r5   r5   r6   test_mean_on_timedelta  s    r   c                  C   s.  t jdd} t j| d d d< t| }t jdjddddt}t j|d d d< |	|
 }d}tjt|d |	|t j}W d    n1 sPw   Y  t|| tt jdd	}d}tjt|d |	|t j
}W d    n1 sw   Y  |	|
 }t|| d S )
Nr     r   2   size   zusing DataFrameGroupBy.medianr^   )r   r   )r=   r   r   r   r>   r   integersr   rM   r.   medianr/   ry   rx   rI   Z	nanmedianr0   )arrr1   labelsr4   r{   r2   ZrsZxpr5   r5   r6   test_cython_median  s$   r   c                 C   sp   t tjdddd}tddd}t|d |}|j|| d	 }|j|| d
dd	 }t|| d S )
Nr   r   ,     7   r   observedc                 S   s   |   S )N)r   xr5   r5   r6   <lambda>  s    z(test_median_empty_bins.<locals>.<lambda>)r   r=   r   r   r   rw   r,   Zcutr.   r   rI   r/   r0   )r   r1   ZgrpsZbinsr4   r3   r5   r5   r6   test_median_empty_bins  s   r   c                  C   s   t g dg dddg d} | d }d|v sJ | djdd	}d|v s+J | d }d|v s8J | djdd	}d|v sGJ d S )
N)   r      r   r   ru   Zmama)nniissr   r   Fr   )r   r.   rn   rm   )Zaar4   r5   r5   r6   test_max_min_non_numeric  s   r   c                 C   s   t g dg dg dd}|  | s!|r t|jjdks!J 	 |d}|dg  }tjg d	dd
}t dg di|d}t	
|| |dg  }tjg d	dd
}t dg di|d}t	
|| d S )N)r   r   r   r   r   )r   r   r   r   F)r   r    r   der8   r   r   r9   r;   r   r#   )r    r   r   rR   )r   r   r   )r   Z_consolidate_inplacer\   Z_mgrZblocksr.   rn   r,   r-   r/   r0   rm   )Zusing_array_managerZusing_infer_stringr1   rr   r4   Zeir3   r5   r5   r6   $test_max_min_object_multiple_columns  s$   
r   c                  C   s   t jtg dddjj} ttjdtjgg d| d}|jddd	d
 	 d
 }t jtddgd
dddjj}t
|| |dd
 	 }d|j_t
|| 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.   rm   r/   rJ   r'   r$   )Zdatesr1   r4   r3   r5   r5   r6   test_min_date_with_nans  s    r   c                  C   s   t dtg} tjddgtjd}| |}|jdd}t dditjd}tj||dd |j	dd}t dtitjd}tj||dd |j	dd}t dtj
i}tj||dd d S )Nr   rF   r   	min_countTZcheck_exactr   )r   r   r=   rB   int64r.   rn   r/   rJ   rm   r>   )rK   r!   rr   r4   r3   r5   r5   r6   test_max_inat  s   
r   c                  C   sh   t dtdtd g} | g d}|jdd}t tjtjtd d}|jt|_t	j
||dd d S )Nr   r   )r   r   r   r   r   r   Tr   )r   r   r.   rm   r=   r>   r'   r   ri   r/   rJ   )rK   rr   r4   r3   r5   r5   r6   test_max_inat_not_all_na  s   r   r   rm   rn   c                 C   sl   ddg}t jdddd}t||d}t|dd |  }t jddgdd	}t||dd
}t|| d S )Nr   r   2020Yr   freqrj   r   r    r#   r'   r$   )	r,   period_ranger   r*   r.   r-   r   r/   rJ   r   groupsr   r1   r4   idxr3   r5   r5   r6   $test_groupby_aggregate_period_column  s   r   c                 C   sj   ddg}t jdddd}t||d}t|d|  }t jddgdd}td	|i|d
}t|| d S )Nr   r   r   r   r   rj   r   r#   r    rR   )r,   r   r   r*   r.   r-   r/   r0   r   r5   r5   r6   #test_groupby_aggregate_period_frame,  s   r   c                  C   s   t g dtdtjgd dt} | d }t ddgdd	gtjtjgddt}t	
|| t g dtdtddt} | d }t ddgdd	gd
dgddt}t	
|| d S )Nr   Zabcdru   )r!   rP   rQ   r!   r9   r:   r   r   r   r   )r   listr=   r>   r   r[   r.   rm   r   r/   r0   rw   r   r5   r5   r6   #test_aggregate_numeric_object_dtype:  s0   r   c                 C   sz   t dgddj }tdg|d}|dd| i}tddgitjdgddd	}|d |j	|d< t
|| d S )
Nr    categoryrF   i  r9   r:   r9   r:   r#   rR   )r   r   Z
as_orderedr   r.   rI   r,   r-   r   rG   r/   r0   )r   Zdsr1   r4   r3   r5   r5   r6   %test_aggregate_categorical_lost_indexX  s   r   )rO   ZInt32rN   ZFloat32rE   c                 C   s  | dkrd}n	| dkrd}nd}t ddg||d gd}|d	 | |d	< |d
}| }|jd d d
}t|| | }|jdd  d
}t|| |jdd}t d	t	j
gi|j| d}	t||	 |jdd}
t|
|	 t g d|t	j
|d gd}|d	 | |d	< |d
}| }t|| | }t|| |jdd}t||	 |jdd}t||	 d S )NrO   l   .D3 rE   r   r   r   r   )idtsr   r   r   r   rH   )r   r   r   d   )r   r   r.   rm   r   r   r/   r0   rn   r,   rT   r'   )rG   r   r1   rr   r4   r3   Zres_maxZexpected_maxresult2Z	expected2Zres_max2Zdf2r   Zresult3Zres_max3Zresult4Zres_max4r5   r5   r6   test_groupby_min_max_nullablef  s<   

r   c                  C   s   t jdgd ddgd} t| t tjdtjdd}|jddd	}| }t j	ddg| j
dd
}tdt jdt jgddi|d}t|| | }d|jd< t|| d S )Nr   r   r   )
categoriesrF   r   r9   Fr   rG   r$   r:   ZUInt64rR   	   )r   r   )r,   Categoricalr   rB   r=   Zarangeuint64r.   rm   CategoricalIndexrG   rT   r/   r0   rn   r   )r   r1   rr   r   r   r3   r5   r5   r6   (test_min_max_nullable_uint64_empty_group  s     
r   )r   r   rm   rn   c                 C   s   t tjdgtdddtjdgddgdddd}t|jd	d
d|  }tjddgd	dd}t tjdd gddgdddd gd|d}t|| d S )Nr9   ZABT)r   orderedr   r   g?)rP   rQ   valuerP   Fr   r:   )rD   r$   r   )rQ   r   rR   )	r   r,   r   r   r*   r.   r   r/   r0   )r   r1   r4   r   r3   r5   r5   r6    test_groupby_min_max_categorical  s   r   c                 C   sd   |}t dgddd|djd d }t|d|  }t ddg|tjg |ddd}t|| d S )	Nr   r   rF   r   r    r   r   )r&   rG   r'   )r   r   r*   r.   r,   r-   r/   r0   )r   string_dtype_no_objectrG   r1   r4   r3   r5   r5   r6   test_min_empty_string_dtype  s    r   r   test_seriesc                 C   s  |dkrd S | }|dv ri }n|dv rd|i}n|dv ri }nd|i}|t j}}|dv r8d}|dkr5d	nd
}n<|dv r[|rP|dkrP|jdkrP|jt ju rPd}nd}|dkrXdnd}n|dv rfdtj}}n|dkrnt j}n|dkrtd}tdgt jgd|d}|r|d n|}	t||	}
|	|d }t	||}|dv rd| d| d}t
jt|d ||
i | W d    d S 1 sw   Y  d S ||
i |}t jdgd|d }|s|dkr|s|dkrd nd}t||||d!}n	td|i||d"}t|| d S )#NZcorrwith)r   r   rg   rh   r   r   stdvar)kurtr   )r   nuniquequantilesemr   )r   r   rZ   r   FT)r   r  r   r   ZpyarrowrO   r   r   r   )rg   rh   float64sumr   r   rj   rF   r    r   )	r   r   r   prodr  r  skewr   r   zdtype 'z' does not support operation ''r^   rk   )r'   rG   r$   rH   )r,   rT   Zstorager   r=   r>   r   r   r.   r*   r`   ra   rb   r-   r   r/   rU   )r   Zreduction_funcr   r   rG   rd   Zexpected_dtyper   r1   rW   argsrr   r   r{   r4   r'   r$   r3   r5   r5   r6   test_string_dtype_all_na  sb   





r
  c                 C   st   | }t dgtjgd|d}|d}|j|d}|dkrdntj}t d|itjdgd|d	|d
}t|| d S )Nr   rj   rF   r   r   r   r   r    rk   rH   )r   r,   rT   r.   r  r-   r/   r0   )r   r   rG   r1   rr   r4   r   r3   r5   r5   r6   test_string_dtype_empty_sum!  s   
r  c                  C   sx   t g dg dttjtjdgg dd} | d}|dg  }|d   }t|| |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:00ZOE)zlog080001.logzlog.logZxlsx)z
Unnamed: 0DateZappFiler  r  )r   r   r=   r>   r.   rn   Zto_framer/   r0   r   r   )r1   rr   rr   r5   r5   r6   test_max_nan_bug/  s   
r  r   dropnar   with_nankeysjoejimc                 C   sb  d}d}t ddd}ttjdtt|tjd||tjdd||d}|rh|	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< | }	|j||| d}
|
d j|d}|j||| d}
|
d jtj|d}|s|jdd}|rtj||dd ntj||dd t||	 d S )Nr   r   z
2015-08-23r   r   r   )r  r  julier  r   r   r  r   %   r           r   )r   r   r  T)r   F)Zcheck_names)r
   r   r=   r   r   choicer   r   r   r   rM   loccopyr.   r  applyr   reset_indexr/   rJ   r0   )r   r  r   r  r  nmdaysr1   Zoriginal_dfZgrleftrightr5   r5   r6   test_series_groupby_nuniqueC  s6   r%  c                  C   s  t tdtdtdd} t tdg dg dd}| jdd	d
 }t|| td|_d|j_|jdd}| d }t|| | 	dd idjd	d}t|| t dgd dgd dtdd}d|j_| 	dd id }t|| d S )NZabbaccZabxaccZabbacxr8   abc)r   r   r   )r   r   r   r9   Fr   r<   r   r  r   r   )r:   r;   rR   )
r   r   r.   r  r/   r0   r'   r$   r   replacer?   r5   r5   r6   test_nuniquek  s   
"r(  c                  C   sz   t g dg dg dg dg dgg dd} | dd	gd
  }t| j| jg}tdgd d
|d}t	|| d S )N)r   r   ZAlice)   r   ZBob)i,  r   ZCharlie)ipru   ZDan)r   r   ZEdith)amountr   r$   r<   r   r*  r$   r   r   r   )
r   r.   r  r   Zfrom_arraysr   r*  r   r/   rJ   )rD   r4   r'   r3   r5   r5   r6   test_nunique_with_object  s   r+  c                  C   s8   t dtd} | jdd }t ddd}t|| d S )Nr$   rk   r   levelr   )r   r[   r.   r  r/   rJ   )rD   r4   r3   r5   r5   r6   test_nunique_with_empty_series  s   r.  c                  C   sr   t tdtdtdgg ddd} | tjddd	  }| tjddd	 tj}t	
|| 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   rD   r   h)r   rD   )r   r	   r   r.   r,   ZGrouperr  r  r   r/   rJ   testr4   r3   r5   r5   r6   test_nunique_with_timegrouper  s   	
r4  zkey, data, dropna, expected)r   r   r   z
2019-01-01r   r!   r#   r   i  )r   r   r   yr5  r5  )r   r   r   r   r5  c                 C   s6   t | |d}|dgd j|d}t|| d S )N)r!   rD   r!   rD   r  )r   r.   r  r/   rJ   )r!   rD   r  r3   r1   r4   r5   r5   r6   test_nunique_with_NaT  s   +r6  c                  C   sX   t g dtjdgddd} | g d }t dgtdg| jd	}t	|| d S )
N)r   r   r   r9   Zlevel_0r#   r<   r   r   r   )r'   r&   )
r   r,   r-   r.   r  r=   rB   r&   r/   r0   r2  r5   r5   r6   )test_nunique_preserves_column_level_names  s   r7  c                  C   sL   t tdddgd} | g dd d}tg ddd}t|| d S )	Nz
2008-12-31z
2009-01-02r   r<   )r   r   r   r  )r   r   r   r#   )r   r
   r.   Z	transformr   r/   rJ   r   r5   r5   r6   $test_nunique_transform_with_datetime  s   r8  c                 C   sn   t dgd}|d d }|j|| d}| }| r't g |d d dd}nt dg|dd}t|| d S )Nr   r   r   r   r   rH   )r   r   r.   r  r/   rJ   )r   r   rK   rr   r4   r3   r5   r5   r6   test_empty_categorical  s   r9  c                  C   s   t ddtjdg} | g d}d}tjt|d |tj	}W d    n1 s*w   Y  d}tjt|d |
tj	}W d    n1 sIw   Y  |	 }t|| t|| d S )Nr   r   r   )r   r   r   r   zusing SeriesGroupBy.sumr^   zusing np.sum)r   r=   r>   r.   r/   ry   rx   rI   r+   r  r  rJ   )sr   r{   r4   r   r3   r5   r5   r6   test_intercept_builtin_sum  s   r;  r   c                 C   s   d}d}t j}tj|||||||gdd}tg d|d}|dj| d}| d	krItd
tjg ddditjg dddd}t	|| d S td
tjtj
gd dditjg dddd}t	|| d S )NTFrE   rF   )r   r   r   r   r   r   r   r   r9   r   r   r:   )r   r   r   rO   r   r#   rR   r   )r=   r>   r,   rB   r   r.   r  r-   r/   r0   rT   )r   r    r   ZnaZdfgr1   r4   r3   r5   r5   r6   !test_groupby_sum_mincount_boolean  s"   r<  c                  C   s   t g dg dg dddd} | d}tjg dddd}|d jdd	}ttjgd
 d|dd}t|| |jdd	}t tjgd
 tjgd
 dd|d}t	|| d S )N)r   r   r   r   rO   rF   r   rk   r    r   r   r   )rG   r'   r$   )r    r   )rG   r'   )
r   r.   r,   r-   r  r   rT   r/   rJ   r0   )r1   r   r   r4   r3   r5   r5   r6   0test_groupby_sum_below_mincount_nullable_integer%  s    
$r=  c                  C   s   t g dtdtdtdtjgd} tjdd}| d}| }t d	||gitjd
dgddd}t|| |d	  }t	||d	  |d	 jdd}t
|tjgdd	|jd}t	|| d S )N)r   r   r   r   Z1dZ2dZ3drj   r   )r"  r   r    r   r   r#   rR   r   zm8[ns])rG   r$   r'   )r   r,   Z	TimedeltaNaTr.   r  r-   r/   r0   rJ   r   r'   )r1   Ztd3rr   r   r3   r5   r5   r6   #test_groupby_sum_timedelta_with_nat4  s   
"r?  )Zint8Zint16Zint32r   Zfloat32r  r   zmethod,datar1   rj   ru   r   r   )r1   out_typec           	      C   s   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< |jd
dd |d
}t|||d  }t|| d S )Nr   rj   r   r   ru   r    r	  r@  r1   r   T)Zinplace)r   r    r   r   r.   r*   r/   r0   )	rG   r   rD   r1   r@  r2   Zdf_outZgrpdtr5   r5   r6   %test_groupby_non_arithmetic_agg_typesL  s    "

rB  c                  O   s   ddl m} || ddi|S )Nr   )r  Zddofr   )Zscipy.statsr  )r	  rd   r  r5   r5   r6   	scipy_semt  s   rC  z	op,targopr   r   r   r   r  r  c                 C   
   | j d S )Nr   r   r   r5   r5   r6   r        
 r   c                 C   rD  )NrE  r   r5   r5   r6   r     rF  r  Zscipy)Zmarksc                 C   s   t tjdd}tjdjddddt}t|	||  }| dv r)d nt
}d|  }tj||d |	||}W d    n1 sJw   Y  t|| d S )	Nr   r   r   r   r   )r   r   r   r  zusing DataFrameGroupBy.r^   )r   r=   r   r   r   r   r   rM   r*   r.   rx   r/   ry   rI   r0   )opZtargopr1   r   r4   rz   r{   r3   r5   r5   r6   test_ops_generalz  s   
rI  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                 C   s   |dkrdnd}t j|gd td}tjg dddd	}td
|i|dd}t| ddd}t|| }t	
|| ||}t	
|| ||g}td
|fg|_t	
|| d S )Nr   g      ?g      ?r   rF   r   r   rO   rk   r    rR   rN   )r=   rB   rM   r,   r-   r   r   r.   r*   r/   r0   rI   r   Zfrom_tuplesr&   )r|   rJ  outputr   r   r3   r   r4   r5   r5   r6   ,test_apply_to_nullable_integer_returns_float  s   
rL  rH  )
r  r  rm   rn   r   r   r  r   r   r  r   r)   c           
         s  t dg} dkr|}d}n|j}d}tjt|d |jd |d}W d    n1 s-w   Y  dkr]t|d}|jdd fd	d
}	|rU|	j d}	t	||	 d S t| }|jdd fdd
}	|ry|	j d}	t	||	 d S )Nr   zAThe 'axis' keyword in DataFrame.groupby is deprecated and will bez+DataFrame.groupby with axis=1 is deprecatedr^   )r-  r   r   r  r(   r,  c                    s   t |  dS )N)r   r)   r*   r1  r   rH  r)   r5   r6   r     s    z3test_regression_allowlist_methods.<locals>.<lambda>r   c                    s   t |  dS )Nr   rM  rN  )r   rH  r5   r6   r     s    )
r   Tr/   ry   rx   r.   r*   r  r   r0   )
rH  r   r)   r   Z	raw_frameframer{   r   r4   r3   r5   rO  r6   !test_regression_allowlist_methods  s,   
rR  c                  C   s   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}|dg  }t dgdgddd}t|| d S )Nr   r   )   r   r  r        r   r   +   r   /   r  X   r9   r:   r   )r&   rG   l   N+R@r   rF   )r   r.   r  r  r/   r0   )rD   r1   r4   r3   r5   r5   r6   "test_groupby_prod_with_int64_dtype  s&   rY  )jr+   Zdatetimer   stringr   Znumpyr=   r`   Zpandas._libs.tslibsr   Zpandas.core.dtypes.commonr   Zpandas.core.dtypes.missingr   Zpandasr,   r   r   r   r	   r
   r   Zpandas._testingZ_testingr/   Zpandas.tests.groupbyr   Zpandas.utilr   ZtdZmarkZparametrizer>   r7   r@   rC   rT   rL   rB   rZ   rS   rY   r>  r]   rc   re   rs   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   strr   r   r   r   r   r
  r  r  Zslowr%  r(  r+  r.  r4  r-   r   r6  r7  r8  r9  r;  r<  r=  r?  rB  rC  r   r   r   r   r  r  rm   rn   r   ZparamZ
skip_if_norI  rL  rR  rY  r5   r5   r5   r6   <module>   s    






	

	

( 





/

U
"
)





 