o
    ҷh                     @   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   sb   t g dg ddd} | jdgdddd	 }| jdgddd
d	 }t|| d S )N)AliceBobCarl)      r   )nameager   r   F
group_keysc                 S   s   | S N groupr   r   Y/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_apply_mutate.py<lambda>   s    z$test_group_by_copy.<locals>.<lambda>c                 S   s   |   S r   )copyr   r   r   r   r      s    )pd	DataFrame	set_indexgroupbyapplytmassert_frame_equal)dfgrp_by_same_value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|}| d|}t	
|| d S )Na   b   c   defc                 S   s   g | ]}d | qS )gr   ).0xr   r   r   
<listcomp>$   s    z&test_mutate_groups.<locals>.<listcomp>      d      )size)cat1cat2cat3valc                 S   s,   |   } | jjdd| d< | dd  S Nmin)methodrankr0   )r   r2   r6   r   r4   r(   r   r   r   f_copy)   s   z"test_mutate_groups.<locals>.f_copyc                 S   s$   | j jdd| d< | dd  S r3   )r2   r6   r   r4   r7   r   r   r   	f_no_copy.   s   z%test_mutate_groups.<locals>.f_no_copyr/   )r   r   rangenprandomdefault_rngintegersr   r   r   assert_series_equal)r   r8   r9   
grpby_copygrpby_no_copyr   r   r   test_mutate_groups   s0   rB   c                  C   sX   t g dtdd} | jddddd }| jdddd	d }t|| d S )
N)	r*   r*   r*   r"   r"   r"      rC   rC   	   )keyvaluerE   Tr	   c                 S   s   | d d  j S r   rE   r7   r   r   r   r   =   s    z/test_no_mutate_but_looks_like.<locals>.<lambda>c                 S   s   | j S r   rG   r7   r   r   r   r   >   s    )r   r   r:   r   r   r   r?   )r   result1result2r   r   r   test_no_mutate_but_looks_like7   s   rJ   c                  C   sf   t g dg dd} dd }| jdgdd|}t jg d	t jg d
dd}t|| d S )N)ArK   rK   BrL   rL   )r*   r"   rC         r    )col1col2c                 S   s   d| j | jd df< | jS )Nr   rP   )locindexrP   r7   r   r   r   fnH   s   z-test_apply_function_with_indexing.<locals>.fnrO   F)as_index)r*   r"   r   rM   rN   r   ))r   r   )r   r*   )r   r"   )r*   rC   )r*   rM   )r*   rN   rP   )rS   r   )	r   r   r   r   Series
MultiIndexfrom_tuplesr   r?   )r   rT   resultexpectedr   r   r   !test_apply_function_with_indexingB   s   r[   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?w   Y  ||}t jg dg dg dgt jg dd}t	|| d S )N)r*   r"   rC   )CjulianrL   geoffreyrK   r^   rL   r^   rK   r`   r]   r`   )ra   rc   rb   r_   r\   rd   )columnsc                 S   s&   | j d d }| jdd| d|f< | S )Nr   r*   )axissum)re   rg   )groupedr   r   r   r   
add_columnn   s   z8test_apply_mutate_columns_multiindex.<locals>.add_columnz+DataFrame.groupby with axis=1 is deprecated)matchr*   )levelrf   )r*   r*   r*   rC   r*   r*   r*   rC   )r"   r"   r"   r    r"   r"   r"   r    )rC   rC   rC   rD   rC   rC   rC   rD   ))r`   rK   r`   )r`   rL   r`   )r`   r]   r`   )r`   rg   r`   )r^   rK   r^   )r^   rL   r^   )r^   r]   r^   )r^   rg   r^   )
r   r   rW   rX   r   assert_produces_warningFutureWarningr   r   r   )r   ri   msggbrY   rZ   r   r   r   $test_apply_mutate_columns_multiindexW   s8   
rp   )numpyr;   pandasr   pandas._testing_testingr   r   rB   rJ   r[   rp   r   r   r   r   <module>   s     