o
    Û­jôJ  ã                   @   sþ   d dl Z d dlZd dlZd dlmZ d dlZd dlmZm	Z	m
Z
mZmZ d dlmZ d dlmZ G dd„ dƒZej dg d¢¡d	d
„ ƒZej dg d¢¡ej dddejg¡ej ddgddgg¡dd„ ƒƒƒZej d¡ej deeeeg¡dd„ ƒƒZdS )é    N)Úlib)Ú	DataFrameÚIndexÚSeriesÚ	TimestampÚ
date_range)Úget_groupby_method_argsc                   @   s¾   e Zd Zejdd„ ƒZej dddg¡dd„ ƒZej ddd	g¡d
d„ ƒZ	ej dddg¡dd„ ƒZ
ej dddg¡dd„ ƒZej dddg¡dd„ ƒZej dddg¡dd„ ƒZdd„ ZdS )ÚTestNumericOnlyc                 C   s~   t g d¢g d¢g d¢tg d¢dd�tg d¢td�ttdƒƒ d¡g d	¢td
dd�td
ddd�tjdddd�dœ
g d¢d�}|S )N)é   r
   é   )r
   r   é   )g      @g      @ç      @)ÚaÚbÚcÚstr©ÚdtypeÚabcÚcategory)é   é   é	   Ú20130101r   )Úperiodsú
US/Eastern)r   Útzz1 sÚs)r   Úfreq)
ÚgroupÚintÚfloatÚstringÚobjectÚcategory_stringÚcategory_intÚdatetimeÚ
datetimetzÚ	timedelta©Úcolumns)r   r   r#   ÚlistÚastyper   ÚpdÚtimedelta_range)ÚselfÚdf© r1   úc/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_numeric_only.pyr0      s   
öózTestNumericOnly.dfÚmethodÚmeanÚmedianc                 C   sº   t g d¢ƒ}| d¡}tddgddgt d¡t d¡gd	d
gtdƒtdƒgtddd�tddd�gdœt ddgdd�g d¢d�}t||ƒdd�}t | 	|¡|¡ |j
}|  ||||¡ d S )N©r    r!   r%   r   g      @r   g      @r   z1.5sÚ3sg      ø?r   z2013-01-01 12:00:00z2013-01-03 00:00:00r   )r   )r%   r!   r(   r    r&   r'   r
   r   )Úname)Úindexr*   T©Únumeric_only)r   Úgroupbyr   r-   Ú	Timedeltar   ÚgetattrÚtmÚassert_frame_equalÚreindex_liker*   Ú_check)r/   r0   r3   Úexpected_columns_numericÚgbÚexpectedÚresultÚexpected_columnsr1   r1   r2   Útest_averages7   s*   
þ

þ÷ðzTestNumericOnly.test_averagesÚminÚmaxc                 C   ó$   t g d¢ƒ}|}|  ||||¡ d S )N)r    r!   r"   r%   r&   r'   r(   ©r   rB   ©r/   r0   r3   rG   rC   r1   r1   r2   Útest_extrema[   s
   ÿzTestNumericOnly.test_extremaÚfirstÚlastc                 C   rK   )N)	r    r!   r"   r#   r$   r%   r&   r'   r(   rL   rM   r1   r1   r2   Útest_first_lasto   s
   ÿzTestNumericOnly.test_first_lastÚsumÚcumsumc                 C   s@   t g d¢ƒ}t g d¢ƒ}|dkrt g d¢ƒ}|  ||||¡ d S )Nr6   )r    r!   r"   r%   r(   rS   )r    r!   r%   r(   rL   )r/   r0   r3   rC   rG   r1   r1   r2   Útest_sum_cumsum‚   s   ÿzTestNumericOnly.test_sum_cumsumÚprodÚcumprodc                 C   rK   )Nr6   rL   rM   r1   r1   r2   Útest_prod_cumprodŽ   s   z!TestNumericOnly.test_prod_cumprodÚcumminÚcummaxc                 C   rK   )N)r    r!   r%   r&   r'   r(   rL   rM   r1   r1   r2   Útest_cummin_cummax•   s
   ÿz"TestNumericOnly.test_cummin_cummaxc           	      C   sÜ  |  d¡}| d¡rttfnt}|dv rKd dd|› d�t d|› d	�¡d
d|› d�g¡}tj||d�� t	||ƒƒ  W d   ƒ n1 sEw   Y  nJ|dv rˆd dt d|› d	�¡t d|› d�¡d|› d�g¡}tj||d�� t	||ƒƒ  W d   ƒ n1 s‚w   Y  nt	||ƒƒ }t
 |j|¡ |dvrÝd ddd
d|› d�t d|› d	�¡t d|› d�¡d|› d�g¡}tj||d�� t	||ƒdd� W d   ƒ d S 1 sÖw   Y  d S t	||ƒdd�}t
 |j|¡ d S )Nr   Úcum)rI   rJ   rX   rY   rS   rV   ú|zCategorical is not orderedzCannot perform z with non-ordered Categoricalúagg function failed [how->ú,dtype->object]ú*function is not implemented for this dtypez(dtype 'str' does not support operation 'ú'©Úmatch)rR   r4   r5   rU   z-category type does not support sum operationsz,dtype->string]©rO   rP   zcategory type does not supportFr:   )r<   Ú
startswithÚNotImplementedErrorÚ	TypeErrorÚjoinÚreÚescapeÚpytestÚraisesr>   r?   Úassert_index_equalr*   )	r/   r0   r3   rG   rC   rD   Ú	exceptionÚmsgrF   r1   r1   r2   rB   ¡   s\   
ÿ

úÿ
ÿ€
üÿÿ€

ùÿ"ÿzTestNumericOnly._checkN)Ú__name__Ú
__module__Ú__qualname__rj   Úfixturer0   ÚmarkÚparametrizerH   rN   rQ   rT   rW   rZ   rB   r1   r1   r1   r2   r	      s     

#




r	   r;   )TFNc              	   C   s*  |dv r	t  d¡ |dv rd}|  t jj|d�¡ ttj d¡ 	d¡g d¢d	�}d
|d< g d¢}| 
|¡}t||ƒ}t||ƒ}	ddi}
|d urK||
d< d}d}d|› d�}|d ur½||v r½d}|dv rœt jt|d��& tjt|d�� ||	i |
¤Ž W d   ƒ n1 s„w   Y  W d   ƒ n
1 s“w   Y  d S d S t jt|d�� ||	i |
¤Ž W d   ƒ d S 1 s¶w   Y  d S ||vräd}t jt|d�� ||	i |
¤Ž W d   ƒ d S 1 sÝw   Y  d S |d u së|�sL|dv�rLd}|�rt  d¡}t|jjf}nt}t j|dd |¡› d�d��0 tjt|d�� ||	i |
¤Ž W d   ƒ n1 �s,w   Y  W d   ƒ d S W d   ƒ d S 1 �sEw   Y  d S tjt|d�� ||	i |
¤Ž}W d   ƒ n	1 �sfw   Y  |�ru|jdd	�jn|j}t||ƒ|	Ž j}|dk�r�|�s�| t¡}t ||¡ d S )N)ÚidxmaxÚidxminz5idxmax and idx_min tested in test_idxmin_idxmax_axis1)ÚcorrwithÚskewzDGH#47723 groupby.corrwith and skew do not correctly implement axis=1)Úreasonr   )é
   é   )ÚAÚBÚCÚDr)   ÚxÚE)
r
   r   r   r
   r   r   r
   r   r   r{   Úaxisr
   r;   )rV   rS   ÚdiffÚfillnaÚ
pct_changeÚrankÚshift)rV   rS   rƒ   r…   r†   r‡   rY   rX   rv   ru   r„   zDataFrameGroupBy.z with axis=1 is deprecatedú1got an unexpected keyword argument 'numeric_only')rV   rS   ra   z)got an unexpected keyword argument 'axis')r„   r‡   )z"not supported between instances ofz2can't multiply sequence by non-int of type 'float'úunsupported operand typezhas no kernelzBoperation 'sub' not supported for dtype 'str' with dtype 'float64'Úpyarrowú(r\   ú)r‡   )rj   ÚskipÚapplymarkerrs   Úxfailr   ÚnpÚrandomÚdefault_rngÚstandard_normalr<   r>   r   rk   rf   r?   Úassert_produces_warningÚFutureWarningÚimportorskipr   ÚArrowNotImplementedErrorrg   ÚdropÚTr,   r!   Úassert_equal)ÚrequestÚgroupby_funcr;   Úusing_infer_stringrn   r0   ÚgroupsrD   r3   ÚargsÚkwargsÚno_argsÚhas_axisÚwarn_msgÚmsgsÚpaÚerrsrF   Údf_expectedrE   r1   r1   r2   Útest_axis1_numeric_onlyÚ   sr   
ÿ


ÿ€$ÿ"ÿ"ÿ

 ÿÿ$ÿÿ
r¨   zkernel, has_arg))ÚallF)ÚanyF)ÚbfillF)ÚcorrT)rw   T)ÚcovT)rY   T)rX   T)rV   T)rS   T)rƒ   F)ÚffillF)r„   F)rO   T)ru   T)rv   T)rP   T)rJ   T)r4   T)r5   T)rI   T)ÚnthF)ÚnuniqueF)r…   F)rU   T)ÚquantileT)ÚsemT)rx   T)ÚstdT)rR   T)ÚvarTTFÚkeysÚa1Úa2c                 C   sf  t ddgddgddgdtg dœƒ}t| |ƒ}|tju ri nd|i}| |¡}t|| ƒ}|rB|du rB||i |¤Ž}	d|	jvs@J ‚d S | d	v sO| d
v r€|tju r€| dkrUtnd }
d}t	j
|
|d�� ||i |¤Ž}	W d   ƒ n1 srw   Y  d|	jv s~J ‚d S |rØ|dusˆJ ‚|  d¡r�tnt}d dddddt d| › d�¡g¡}| dkrªd}n| dkr±d}n| dkr·d}tj||d�� ||i |¤Ž W d   ƒ d S 1 sÑw   Y  d S |�s|tju�rtjtdd�� ||i |¤Ž W d   ƒ d S 1 sûw   Y  d S | dv �s	J ‚|tju �sJ ‚tjtdd�� ||i |¤Ž W d   ƒ d S 1 �s,w   Y  d S )Nr
   r   é   é   )r¶   r·   Úa3r   r;   Tr   rc   )rª   r©   r«   r®   r„   r¯   r°   r„   ú%DataFrameGroupBy.fillna is deprecatedra   r[   r\   znot allowed for this dtypez+cannot be performed against 'object' dtypeszmust be a string or a.* numberr‰   r_   r]   r^   r±   ú4dtype 'object' does not support operation 'quantile'rv   z8'<' not supported between instances of 'type' and 'type'ru   z8'>' not supported between instances of 'type' and 'type'rˆ   )rƒ   r…   )r   r#   r   r   Ú
no_defaultr<   r>   r*   r•   r?   r”   rd   re   rf   rg   rh   ri   rj   rk   )ÚkernelÚhas_argr;   rµ   r0   rŸ   r    rD   r3   rF   Úwarnrn   rm   r1   r1   r2   Útest_numeric_only3  sb   $*



ÿùÿ"ÿÿ"ý$ÿrÁ   z4ignore:Downcasting object dtype arrays:FutureWarningr   c              	   C   s  g d¢}t g d¢| d�}| |¡}|dkrt||ƒrJ ‚d S t||ƒ}t g d¢ƒ}| |¡}t||ƒ}	t||ƒ}
d}d}||v rŠ| tu rŠ|dkrKd}nd	}|d
krStnd }d}tj||d��# t	j
t|d�� ||
Ž  W d   ƒ n1 suw   Y  W d   ƒ n1 s„w   Y  nS| tu rÝ|d
kr”tnd }d}tj||d�� ||
Ž }W d   ƒ n1 s®w   Y  tj||d�� |	|
Ž }W d   ƒ n1 sÉw   Y  ||v r×| t¡}t ||¡ d}||v�rd}t	j
t|d�� ||
ddiŽ W d   ƒ d S 1 �sw   Y  d S | tu �r6d g d¢¡}t	j
t|d�� ||
ddiŽ W d   ƒ d S 1 �s/w   Y  d S | tk�rp|dk�rpd}tjt|d�� ||
ddiŽ}||
ddiŽ}W d   ƒ n	1 �scw   Y  t ||¡ d S ||
ddiŽ}||
ddiŽ}t ||¡ d S )N)r   r   r
   )r
   r   r   r   rw   )r¬   r­   rY   rX   rV   rS   r±   )rO   rP   r¯   r«   r®   r‡   rR   rƒ   r…   r´   r4   r5   rI   rJ   rU   rx   r±   r¼   z!is not supported for object dtyper„   r»   ra   z"SeriesGroupBy.fillna is deprecated)rO   rP   rJ   r4   r5   rI   rU   r±   r²   rx   r³   rR   r´   rY   rX   rV   rS   rˆ   r;   Tr\   )z@SeriesGroupBy.sem called with numeric_only=True and dtype objectz=Series.skew does not allow numeric_only=True with non-numericz7cum(sum|prod|min|max) is not supported for object dtypezCCannot use numeric_only=True with SeriesGroupBy\..* and non-numericz-Allowing bool dtype in SeriesGroupBy.quantileF)r   r<   Úhasattrr>   r   r#   r•   r?   r”   rj   rk   rf   r,   Úassert_series_equalrg   Úbool)r   rœ   r›   ÚgrouperÚserrD   r3   Úexpected_serÚexpected_gbÚexpected_methodrŸ   Úfails_on_numeric_objectÚ
obj_resultrn   rÀ   r£   rF   rE   Úhas_numeric_onlyr1   r1   r2   Ú"test_deprecate_numeric_only_seriesž  sz   






ÿ€ÿ€
ÿ
ÿ

$ÿ
ÿ$ÿýrÍ   )rh   Únumpyr�   rj   Úpandas._libsr   Úpandasr-   r   r   r   r   r   Úpandas._testingÚ_testingr?   Úpandas.tests.groupbyr   r	   rs   rt   r¨   r½   rÁ   ÚfilterwarningsrÄ   r    r!   r#   rÍ   r1   r1   r1   r2   Ú<module>   s,     G
Xþ$
E