a
    é´«j”  ã                   @   sH   d dl Zd dlZd dlmZ dd„ Zdd„ Zdd„ Z	dd	„ Z
d
d„ ZdS )é    Nc                  C   sÆ   t  g d¢g d¢dœ¡ d¡} d}tjt|d��* | jdgdd	� d
d„ ¡}W d   ƒ n1 s`0    Y  d}tjt|d��* | jdgdd	� dd„ ¡}W d   ƒ n1 s¬0    Y  t ||¡ d S )N)ZAliceZBobZCarl)é   é   r   )ÚnameÚager   ú7DataFrameGroupBy.apply operated on the grouping columns©Úmatchr   F©Z
group_keysc                 S   s   | S ©N© ©Úgroupr   r   úe/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/groupby/test_apply_mutate.pyÚ<lambda>   ó    z$test_group_by_copy.<locals>.<lambda>c                 S   s   |   ¡ S r
   )Úcopyr   r   r   r   r      r   )	ÚpdÚ	DataFrameZ	set_indexÚtmÚassert_produces_warningÚFutureWarningÚgroupbyÚapplyÚassert_frame_equal)ÚdfÚmsgZgrp_by_same_valueZgrp_by_copyr   r   r   Útest_group_by_copy   s$    þÿûÿ"ÿ"r   c               	   C   s*  t  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
d„ tddƒD ƒtj d¡jddd�dœ¡} dd„ }dd„ }d}tjt	|d��  |  
d¡ |¡}W d   ƒ n1 sÐ0    Y  tjt	|d��  |  
d¡ |¡}W d   ƒ n1 �s0    Y  t ||¡ d S )NÚaé   Úbé   Úcé   ÚdÚeÚfc                 S   s   g | ]}d |› �‘qS )Úgr   )Ú.0Úxr   r   r   Ú
<listcomp>*   r   z&test_mutate_groups.<locals>.<listcomp>é   é   éd   é   )Úsize)Úcat1Úcat2Zcat3Úvalc                 S   s,   |   ¡ } | jjdd�| d< |  d¡d  ¡ S ©NÚmin)ÚmethodÚrankr0   )r   r1   r5   r   r3   ©r(   r   r   r   Úf_copy/   s    z"test_mutate_groups.<locals>.f_copyc                 S   s$   | j jdd�| d< |  d¡d  ¡ S r2   )r1   r5   r   r3   r6   r   r   r   Ú	f_no_copy4   s    z%test_mutate_groups.<locals>.f_no_copyr   r   r/   )r   r   ÚrangeÚnpÚrandomZdefault_rngZintegersr   r   r   r   r   Úassert_series_equal)r   r7   r8   r   Z
grpby_copyZgrpby_no_copyr   r   r   Útest_mutate_groups   s6    ÿþýüûúöÿ.0r=   c                  C   s¸   t  g d¢tdƒdœ¡} d}tjt|d��( | jddd� d	d
„ ¡}W d   ƒ n1 sX0    Y  tjt|d��( | jddd� dd
„ ¡}W d   ƒ n1 sž0    Y  t ||¡ d S )N)	r*   r*   r*   r"   r"   r"   é   r>   r>   é	   )ÚkeyÚvaluer   r   r@   Tr	   c                 S   s   | d d … j S r
   ©r@   r6   r   r   r   r   H   r   z/test_no_mutate_but_looks_like.<locals>.<lambda>c                 S   s   | j S r
   rB   r6   r   r   r   r   J   r   )	r   r   r9   r   r   r   r   r   r<   )r   r   Zresult1Zresult2r   r   r   Útest_no_mutate_but_looks_like@   s    66rC   c                 C   sœ   t  g d¢g d¢dœ¡}dd„ }d}tjt||  d��& |jdgd	d
� |¡}W d   ƒ n1 sb0    Y  t jg d¢t j 	g d¢¡dd�}t 
||¡ d S )N)ÚArD   rD   ÚBrE   rE   )r*   r"   r>   é   é   r    )Úcol1Úcol2c                 S   s   d| j | jd df< | jS )Nr   éÿÿÿÿrI   )ÚlocÚindexrI   r6   r   r   r   ÚfnT   s    z-test_apply_function_with_indexing.<locals>.fnr   )r   Zraise_on_extra_warningsrH   F)Zas_index)r*   r"   r   rF   rG   r   ))r   r   )r   r*   )r   r"   )r*   r>   )r*   rF   )r*   rG   rI   )rL   r   )r   r   r   r   r   r   r   ZSeriesÚ
MultiIndexÚfrom_tuplesr<   )Zwarn_copy_on_writer   rM   r   ÚresultÚexpectedr   r   r   Ú!test_apply_function_with_indexingN   s"    ÿÿ4ÿûrR   c                  C   sÎ   t jg d¢g d¢g d¢g d¢g d¢g d¢dœt j g d¢¡d�} dd„ }d}tjt|d�� | jd	d	d
�}W d   ƒ n1 s~0    Y  | |¡}t jg d¢g d¢g d¢gt j g d¢¡d�}t 	||¡ d S )N)r*   r"   r>   )©ÚCÚjulian©rE   Úgeoffrey©rD   rU   ©rE   rU   ©rD   rW   ©rT   rW   )rX   rZ   rY   rV   rS   r[   )Úcolumnsc                 S   s&   | j d d }| jdd�| d|f< | S )Nr   r*   )ÚaxisÚsum)r\   r^   )Úgroupedr   r   r   r   Ú
add_column~   s    z8test_apply_mutate_columns_multiindex.<locals>.add_columnz+DataFrame.groupby with axis=1 is deprecatedr   r*   )Úlevelr]   )r*   r*   r*   r>   r*   r*   r*   r>   )r"   r"   r"   r    r"   r"   r"   r    )r>   r>   r>   r?   r>   r>   r>   r?   ))rW   rD   rW   )rW   rE   rW   )rW   rT   rW   )rW   r^   rW   )rU   rD   rU   )rU   rE   rU   )rU   rT   rU   )rU   r^   rU   )
r   r   rN   rO   r   r   r   r   r   r   )r   r`   r   ÚgbrP   rQ   r   r   r   Ú$test_apply_mutate_columns_multiindexg   s6    úÿ÷,
ýÿñrc   )Únumpyr:   Zpandasr   Zpandas._testingZ_testingr   r   r=   rC   rR   rc   r   r   r   r   Ú<module>   s   #