a
    é´«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)é   é   é	   Z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   ÚpdZtimedelta_range)ÚselfÚdf© r/   úe/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/groupby/test_numeric_only.pyr.      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.5sZ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,   Z	Timedeltar   ÚgetattrÚtmZassert_frame_equalZreindex_liker)   Ú_check)r-   r.   r1   Úexpected_columns_numericÚgbÚexpectedÚresultÚexpected_columnsr/   r/   r0   Útest_averages7   s*    
þ

þ÷ðzTestNumericOnly.test_averagesÚminÚmaxc                 C   s$   t g d¢ƒ}|}|  ||||¡ d S )N)r   r    r!   r$   r%   r&   r'   ©r   r<   ©r-   r.   r1   rA   r=   r/   r/   r0   Útest_extrema[   s
    ÿzTestNumericOnly.test_extremaÚfirstÚlastc                 C   s$   t g d¢ƒ}|}|  ||||¡ d S )N)	r   r    r!   r"   r#   r$   r%   r&   r'   rE   rF   r/   r/   r0   Ú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 )Nr4   )r   r    r!   r$   r'   rL   )r   r    r$   r'   rE   )r-   r.   r1   r=   rA   r/   r/   r0   Útest_sum_cumsum‚   s    ÿzTestNumericOnly.test_sum_cumsumÚprodÚcumprodc                 C   s$   t g d¢ƒ}|}|  ||||¡ d S )Nr4   rE   rF   r/   r/   r0   Útest_prod_cumprodŽ   s    z!TestNumericOnly.test_prod_cumprodÚcumminÚcummaxc                 C   s$   t g d¢ƒ}|}|  ||||¡ d S )N)r   r    r$   r%   r&   r'   rE   rF   r/   r/   r0   Útest_cummin_cummax•   s
    ÿz"TestNumericOnly.test_cummin_cummaxc           	      C   sà  |  d¡}| d¡rttfnt}|dv r–d dd|› d�t d|› d	�¡d
d|› d�g¡}tj||d�� t	||ƒƒ  W d   ƒ n1 sŠ0    Y  n˜|dv �rd dt d|› d	�¡t d|› d�¡d|› d�g¡}tj||d�� t	||ƒƒ  W d   ƒ n1 �s0    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   ƒ n1 �s²0    Y  nt	||ƒdd�}t
 |j|¡ d S )Nr   Úcum)rC   rD   rQ   rR   rL   rO   ú|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)rK   r2   r3   rN   z-category type does not support sum operationsz,dtype->string]©rH   rI   zcategory type does not supportFr7   )r9   Ú
startswithÚNotImplementedErrorÚ	TypeErrorÚjoinÚreÚescapeÚpytestÚraisesr:   r;   Zassert_index_equalr)   )	r-   r.   r1   rA   r=   r>   Ú	exceptionÚmsgr@   r/   r/   r0   r<   ¡   sR    
ÿ

úÿ
,

üÿ.


ùÿ2zTestNumericOnly._checkN)Ú__name__Ú
__module__Ú__qualname__rc   Zfixturer.   ÚmarkÚparametrizerB   rG   rJ   rM   rP   rS   r<   r/   r/   r/   r0   r	      s   

#




r	   r8   )TFNc              	   C   s  |dv rt  d¡ |dv r2d}|  t jj|d�¡ ttj d¡ 	d¡g d¢d	�}d
|d< g d¢}| 
|¡}t||ƒ}t||ƒ}	ddi}
|d ur–||
d< d}d}d|› d�}|d u�r~||v �r~d}|dv �r<t jt|d��N tjt|d�� ||	i |
¤Ž W d   ƒ n1 �s0    Y  W d   ƒ n1 �s00    Y  n>t jt|d�� ||	i |
¤Ž W d   ƒ n1 �sp0    Y  �nœ||v�rÎd}t jt|d�� ||	i |
¤Ž W d   ƒ n1 �sÀ0    Y  �nL|d u �sÞ|�sŒ|dv�rŒd}|�r
t  d¡}t|jjf}nt}t j|dd |¡› d�d��N tjt|d�� ||	i |
¤Ž W d   ƒ n1 �s`0    Y  W d   ƒ n1 �s€0    Y  nŽtjt|d�� ||	i |
¤Ž}W d   ƒ n1 �sÀ0    Y  |�rÞ|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   rr   Zaxisr
   r8   )rO   rL   ÚdiffÚfillnaÚ
pct_changeÚrankÚshift)rO   rL   ry   r{   r|   r}   rR   rQ   rm   rl   rz   zDataFrameGroupBy.z with axis=1 is deprecatedú1got an unexpected keyword argument 'numeric_only')rO   rL   rZ   z)got an unexpected keyword argument 'axis')rz   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'Zpyarrowú(rU   ú)r}   )rc   ÚskipZapplymarkerrj   Zxfailr   ÚnpÚrandomZdefault_rngZstandard_normalr9   r:   r   rd   r_   r;   Úassert_produces_warningÚFutureWarningZimportorskipr   ZArrowNotImplementedErrorr`   ZdropÚTr+   r    Zassert_equal)ÚrequestÚgroupby_funcr8   Zusing_infer_stringrf   r.   Úgroupsr>   r1   ÚargsÚkwargsZno_argsZhas_axisÚwarn_msgZmsgsÚpaZerrsr@   Zdf_expectedr?   r/   r/   r0   Útest_axis1_numeric_onlyÚ   s^    
ÿ



P2
2

P.
r�   zkernel, has_arg))ÚallF)ÚanyF)ÚbfillF)ÚcorrT)rn   T)ÚcovT)rR   T)rQ   T)rO   T)rL   T)ry   F)ÚffillF)rz   F)rH   T)rl   T)rm   T)rI   T)rD   T)r2   T)r3   T)rC   T)ÚnthF)ÚnuniqueF)r{   F)rN   T)ÚquantileT)ÚsemT)ro   T)ÚstdT)rK   T)ÚvarTTFÚkeysÚa1Úa2c                 C   sr  t ddgddgddgdtg dœƒ}t| |ƒ}|tju r<i nd|i}| |¡}t|| ƒ}|r„|du r„||i |¤Ž}	d|	jvs€J ‚�nê| d	v s¢| d
v �r|tju �r| dkr®tnd }
d}t	j
|
|d�� ||i |¤Ž}	W d   ƒ n1 sè0    Y  d|	jv �snJ ‚�nh|�rÀ|du�sJ ‚|  d¡�r*tnt}d dddddt d| › d�¡g¡}| dk�rbd}n| dk�rrd}n| dk�r€d}tj||d�� ||i |¤Ž W d   ƒ n1 �s´0    Y  n®|�s|tju�rtjtdd�� ||i |¤Ž W d   ƒ n1 �s0    Y  n\| dv �s J ‚|tju �s0J ‚tjtdd�� ||i |¤Ž W d   ƒ n1 �sd0    Y  d S )Nr
   r   é   é   )r�   rž   Úa3r   r8   Tr   r\   )r‘   r�   r’   r•   rz   r–   r—   rz   ú%DataFrameGroupBy.fillna is deprecatedrZ   rT   rU   znot allowed for this dtypez+cannot be performed against 'object' dtypeszmust be a string or a.* numberr   rX   rV   rW   r˜   ú4dtype 'object' does not support operation 'quantile'rm   z8'<' not supported between instances of 'type' and 'type'rl   z8'>' not supported between instances of 'type' and 'type'r~   )ry   r{   )r   r"   r   r   Ú
no_defaultr9   r:   r)   r†   r;   r…   r]   r^   r_   r`   ra   rb   rc   rd   )ZkernelÚhas_argr8   rœ   r.   r‹   rŒ   r>   r1   r@   Úwarnrf   re   r/   r/   r0   Útest_numeric_only3  s`    *$


þûú	,ùÿ


0ÿ0r§   z4ignore:Downcasting object dtype arrays:FutureWarningr   c              	   C   s  g d¢}t g d¢| d�}| |¡}|dkr<t||ƒr8J ‚d S t||ƒ}t g d¢ƒ}| |¡}t||ƒ}	t||ƒ}
d}d}||v �r| tu �r|dkršd}nd	}|d
krªtnd }d}tj||d��F t	j
t|d�� ||
Ž  W d   ƒ n1 sî0    Y  W d   ƒ n1 �s0    Y  n°| tu �rÊ|d
k�r2tnd }d}tj||d�� ||
Ž }W d   ƒ n1 �sh0    Y  tj||d�� |	|
Ž }W d   ƒ n1 �s 0    Y  ||v �r¾| t¡}t ||¡ d}||v�rd}t	j
t|d�� ||
ddiŽ W d   ƒ n1 �s0    Y  nò| tu �rtd g d¢¡}t	j
t|d�� ||
ddiŽ W d   ƒ n1 �sh0    Y  nš| tk�ræ|dk�ræd}tjt|d��, ||
ddiŽ}||
ddiŽ}W d   ƒ n1 �sÎ0    Y  t ||¡ n(||
ddiŽ}||
ddiŽ}t ||¡ d S )N)r   r   r
   )r
   r   r   r   rn   )r“   r”   rR   rQ   rO   rL   r˜   )rH   rI   r–   r’   r•   r}   rK   ry   r{   r›   r2   r3   rC   rD   rN   ro   r˜   r£   z!is not supported for object dtyperz   r¢   rZ   z"SeriesGroupBy.fillna is deprecated)rH   rI   rD   r2   r3   rC   rN   r˜   r™   ro   rš   rK   r›   rR   rQ   rO   rL   r~   r8   TrU   )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   r9   Úhasattrr:   r   r"   r†   r;   r…   rc   rd   r_   r+   Zassert_series_equalr`   Úbool)r   r‰   rˆ   ZgrouperZserr>   r1   Zexpected_serZexpected_gbZexpected_methodr‹   Zfails_on_numeric_objectZ
obj_resultrf   r¦   r�   r@   r?   Zhas_numeric_onlyr/   r/   r0   Ú"test_deprecate_numeric_only_seriesž  sh    





H
((


0
ÿ0.rª   )ra   Únumpyrƒ   rc   Zpandas._libsr   Zpandasr,   r   r   r   r   r   Zpandas._testingZ_testingr;   Zpandas.tests.groupbyr   r	   rj   rk   r�   r¤   r§   Úfilterwarningsr©   r   r    r"   rª   r/   r/   r/   r0   Ú<module>   s*    G
Xþ$E
