a
    é´«jŠO  ã                   @   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mZ d dlmZ ej dddg¡dd„ ƒZej d	d
dg¡dd„ ƒZdd„ ZG dd„ dƒZdS )é    N)ÚPerformanceWarning)Ú	DataFrameÚDatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ	Timestampzmsg,labels,level)zlabels \[4\] not found in levelé   Úa)zlabels \[7\] not found in levelé   Úbc                 C   sº   t jg d¢g d¢gddgd�}tg d¢|d�}tg d¢|d�}tjt| d�� |j||d	� W d   ƒ n1 sp0    Y  tjt| d�� |j||d	� W d   ƒ n1 s¬0    Y  d S )
N©é   é   é   ©r	   é   é   r
   r   ©Únames©é
   é   é   ©Úindex©Úmatch©Úlevel)r   Úfrom_arraysr   r   ÚpytestÚraisesÚKeyErrorÚdrop)ÚmsgÚlabelsr   ÚmiÚsÚdf© r*   úc/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/methods/test_drop.pyÚ0test_drop_raise_exception_if_labels_not_in_level   s    	,r,   zlabels,level)r	   r
   )r   r   c                 C   sz   t jg d¢g d¢gddgd�}tg d¢|d�}tg d¢|d�}|j| |dd	�}t ||¡ |j| |dd	�}t ||¡ d S )
Nr   r   r
   r   r   r   r   Úignore)r   Úerrors)r   r    r   r   r$   ÚtmZassert_series_equalÚassert_frame_equal)r&   r   r'   r(   r)   Z
expected_sZexpected_dfr*   r*   r+   Útest_drop_errors_ignore'   s    r1   c                  C   s~   t tj d¡ d¡g d¢tjdddd�d�} | jg d	¢  ¡ } t	j
td
d�� |  ddg¡ W d   ƒ n1 sp0    Y  d S )Nr   )r   r   ©r
   r   ÚcZ2012Úhr   )ÚfreqZperiods©Úcolumnsr   )r   r   r   r   únot found in axisr   r
   r   )r   ÚnpÚrandomÚdefault_rngÚstandard_normalÚpdÚ
date_rangeÚilocÚcopyr!   r"   r#   r$   )r)   r*   r*   r+   Ú9test_drop_with_non_unique_datetime_index_and_invalid_keys5   s    ýrA   c                
   @   s$  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zg d	¢g d	¢gZej	 
d
eeddgd�eeddgd�eeddgd� ddg¡eeddgd� ddg¡g¡dd„ ƒZej	 
dg d	¢g d¢g¡ej	 
dg dgdgg¡dd„ ƒƒZej	 
dg d	¢g d¢g¡ej	 
dddgddgg¡dd„ ƒƒZej	 
dg i e g ¡eg dd�eg ƒeg ƒg¡d d!„ ƒZd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zej	 
d0g d1¢¡ej	 
d2d3d4g¡d5d6„ ƒƒZd7d8„ Zej	 
d9d:d:gg¡d;d<„ ƒZd=d>„ Z d?d@„ Z!dAdB„ Z"dCdD„ Z#ej	 
dEddgdfdgdFfg¡dGdH„ ƒZ$dIdJ„ Z%dFS )KÚTestDataFrameDropc                 C   sP  t g d¢g d¢g d¢gg d¢g d¢d�}d\|j_|j_| d¡}|jd	d
d�}| ¡ | ¡  }}|jddd�}|d u s|J ‚|jd	d
dd�}|d u s˜J ‚||||fD ]$}|jjdks¸J ‚|jjdks¤J ‚q¤t|jƒg d¢ksàJ ‚d}tjt	|d�� | dg¡ W d   ƒ n1 �s0    Y  tjt	|d��  |jdgd
d� W d   ƒ n1 �sV0    Y  |jdgdd�}	t
g d¢dd�}
t |	j|
¡ |jddgdd�}	t
ddgdd�}
t |	j|
¡ |jdgd
dd�}	t
g d¢dd�}
t |	j|
¡ |jddgd
dd�}	t
d	dgdd�}
t |	j|
¡ |jg dd�}	t
g d¢dd�}
t |	j|
¡ d S )Nr   ©r   r	   r   ©r   r   r   r2   ©ÚdÚeÚf©r   r7   )ÚfirstÚsecondr   rG   r   ©ÚaxisT)Úinplace©rM   rN   rJ   rK   z\['g'\] not found in axisr   Úgr-   ©r.   ©Únamer
   r3   ©rM   r.   rF   rH   )r   r   rS   r7   r$   r@   Úlistr!   r"   r#   r   r/   Úassert_index_equal)Úselfr)   Zdf_dropped_bZdf_dropped_eZdf_inplace_bZdf_inplace_eÚreturn_valueÚobjr%   ZdroppedÚexpectedr*   r*   r+   Útest_drop_namesF   sJ    ý
,0z!TestDataFrameDrop.test_drop_namesc                 C   sœ  t g d¢g d¢dœƒ}t |jddd�|dg ¡ t |jddgdd�|g  ¡ t |jg d	¢d
d�|jdgd d …f ¡ t |jd
dgdd�|jddgd d …f ¡ tjtdd�� | d¡ W d   ƒ n1 sÔ0    Y  tjtdd�� |jddd� W d   ƒ n1 �s0    Y  tjtdd�� | ddg¡ W d   ƒ n1 �sP0    Y  tjtdd��" |jddgdd� W d   ƒ n1 �s’0    Y  tjtdd��" |jg d¢dd� W d   ƒ n1 �sÔ0    Y  t |jddd�|¡ t |jd
dgdd�|jg d¢d d …f ¡ t |jdddd�|¡ t |jddgddd�|dg ¡ t tt	t
dƒt
ddƒtdƒƒƒg d¢d�}t |jddd�|dg ¡ t |jddd�|d ¡ t | g ¡|¡ | tg d¢ƒ¡}tdƒ|_t |jd d!d�|jd"gd d …f ¡ t |jd d"gd
d�|jg d d …f ¡ t tj d¡ d#¡tdƒd�}||jd
k  }|j||jd
k jd$d%�}|d u �sŒJ ‚t ||¡ d S )&N©r   r   r   r	   )r   r   r   r   )ÚAÚBr]   r   rL   r^   r7   )r   r   r   r   r   r   r   z\[5\] not found in axisr   r   z\['C'\] not found in axisÚCz#\['C', 'D', 'F'\] not found in axis)r_   ÚDÚFr-   rQ   r   rT   éýÿÿÿÚabc)r
   r
   r   ©r7   r
   r   )ÚXÚYre   re   Úrowsrf   )r   r   T)r&   rN   )r   r/   r0   r$   Úlocr!   r"   r#   rU   ÚzipÚrangeÚ	set_indexr   r7   r9   r:   r;   r<   r   r   )rW   ÚsimpleZnu_dfr)   rZ   rX   r*   r*   r+   Ú	test_dropu   sP    *,(..22$ÿÿ"ÿ
&(ÿzTestDataFrameDrop.test_dropc                 C   sØ   t jg d¢ddgd�}tg d¢g|d�}|j ¡ s6J ‚tg d¢g d¢g d	¢gd
�}|jdddgdd�}| ¡ }|j ¡ r|J ‚|jddd� t	¡}t
 t¡� |jddd�}W d   ƒ n1 s¾0    Y  t
 ||¡ d S )N))r
   Ú )Úb1Úc1)Úb2Úc2r   r3   r   )r   r   r	   rd   )r
   r   r3   rF   )r   ro   rp   r   )r   rq   rr   r	   )r7   Údatar
   rF   )r   r7   Úvaluesr   rL   )r   Úfrom_tuplesr   r7   Z_is_lexsortedZpivot_tableÚreset_indexr$   ZastypeÚfloatr/   Úassert_produces_warningr   r0   )rW   Zlexsorted_miZlexsorted_dfZnot_lexsorted_dfrZ   Úresultr*   r*   r+   Ú"test_drop_multiindex_not_lexsortedª   s"    ÿÿ
ÿ,z4TestDataFrameDrop.test_drop_multiindex_not_lexsortedc                 C   s¾  t g d¢g d¢g d¢gg d¢g d¢d�}| d¡}|jdd�}t ||¡ |jd	d
d�}|jd	d�}t ||¡ |jdd
d�}|jdd�}t ||¡ |jdgdd�}|jdgd�}t ||¡ |jdgdd�jd	gd
d�}|jdgd	gd�}t ||¡ d}tjt|d�� |jddd� W d   ƒ n1 �s20    Y  tjt|d�� |jddd� W d   ƒ n1 �sp0    Y  d}tjt|d�� |jd
d� W d   ƒ n1 �s°0    Y  d S )Nr   rC   rD   r2   rE   rI   r
   r   rF   r   rL   rd   rG   )r&   rM   r   z2Cannot specify both 'labels' and 'index'/'columns'r   r   )r&   r   )r&   r7   z>Need to specify at least one of 'labels', 'index' or 'columns')r   r$   r/   r0   r!   r"   Ú
ValueError)rW   r)   Zres1Zres2r%   r*   r*   r+   Útest_drop_api_equivalenceÄ   s8    ý
..z+TestDataFrameDrop.test_drop_api_equivalencer   Úactualr
   ©rs   r   r   r   r   c                 C   sà   t |jtƒrdnd }t d¡}tjt|d��  |jd|dd� W d   ƒ n1 sR0    Y  tjt|d��" |j	jd|dd� W d   ƒ n1 s’0    Y  |jdd|dd�}t
 ||¡ |j	jdd|dd�}t
 |j	|¡ d S )	Nr   z"['c'] not found in axis"r   r3   ©r   rM   r   r-   )rM   r   r.   )Ú
isinstancer   r   ÚreÚescaper!   r"   r#   r$   ÚTr/   r0   )rW   r}   r   r%   Zexpected_no_errr*   r*   r+   Ú"test_raise_on_drop_duplicate_indexí   s    
.0z4TestDataFrameDrop.test_raise_on_drop_duplicate_indexr   )r   r   r   Údrop_labelsr   c                    s8   ‡ fdd„|D ƒ}t |d� ˆ ¡}t |t |d�¡ d S )Nc                    s   g | ]}|ˆ vr|‘qS r*   r*   )Ú.0Úi©r…   r*   r+   Ú
<listcomp>  ó    z:TestDataFrameDrop.test_drop_empty_list.<locals>.<listcomp>r   ©r   r$   r/   r0   )rW   r   r…   Zexpected_indexÚframer*   rˆ   r+   Útest_drop_empty_list  s    z&TestDataFrameDrop.test_drop_empty_list)r   r   r   r	   r   c                 C   sB   t jtdd��  t|d� |¡ W d   ƒ n1 s40    Y  d S )Nr8   r   r   )r!   r"   r#   r   r$   )rW   r   r…   r*   r*   r+   Útest_drop_non_empty_list  s    z*TestDataFrameDrop.test_drop_non_empty_listÚempty_listlikezdatetime64[ns]©Zdtypec                 C   sP   ddgddgdœ}t dƒt dƒg}t||d�}| ¡ }| |¡}t ||¡ d S )Nr   r   ÚoneÚtwo)Zcolumn_aZcolumn_bz
2021-01-01r   )r   r   r@   r$   r/   r0   )rW   r�   rs   r   r)   rZ   ry   r*   r*   r+   Ú2test_drop_empty_listlike_non_unique_datetime_index  s    
zDTestDataFrameDrop.test_drop_empty_listlike_non_unique_datetime_indexc                 C   s&  g d¢g d¢g d¢g}t t|Ž ƒ}t |¡}ttj d¡ d¡|d�}|j	ddd	�}|j	d
gdd	�}t
 ||¡ |j	dgdd	�}|j	dgdd	�}|j	dgdd	�}t
 ||¡ |j	ddd	�}|j	dgdd	�}t
 ||¡ |j	dgdd	�}|j	ddd	�}|j	dddd�}|j	ddgdd	�}t
 ||¡ d S )N)r
   Útopr”   Úroutine1r•   Úroutine2)rn   ÚODr—   Úresult1Zresult2r˜   )rn   ÚwxÚwyrn   rn   rn   r   )r	   r   rd   r
   r   rL   )r
   rn   rn   r”   )r”   r—   r™   )r”   r—   rš   r˜   r   )r•   r˜   rn   )r–   r˜   rn   )Úsortedri   r   ru   r   r9   r:   r;   r<   r$   r/   r0   )rW   ZarraysZtuplesr   r)   ry   rZ   r*   r*   r+   Útest_mixed_depth_drop(  s0    ý
ÿz'TestDataFrameDrop.test_mixed_depth_dropc                 C   s‚   t g d¢tjdddgg d¢g d¢dœƒ g d¢¡ ¡ }|jd	d
d�}t ddgdgtjddtjdfgg d¢d�d�}t 	||¡ d S )N)r‘   r‘   r’   r’   ç        g      ð?g       @)r
   r   r3   r3   r\   ©r]   r^   r_   r`   )r]   r^   r_   r3   r_   r   r   r   r`   )r‘   r�   r   r‘   r
   r   r6   )
r   r9   Únanrk   Z
sort_indexr$   r   ru   r/   r0   ©rW   r)   ry   rZ   r*   r*   r+   Ú$test_drop_multiindex_other_level_nanI  s&    üÿøÿÿýz6TestDataFrameDrop.test_drop_multiindex_other_level_nanc                 C   s°   t g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g	g d
¢d�}| d¡ ¡ }|j|dk }| g d¢¡}|j|jdd� ¡ }||j 	|j¡  }|j|_t
 ||¡ d S )N)úx-aÚxr
   g      ø?)r¢   r£   r
   ç333333ó?)zz-cÚzr3   gÍÌÌÌÌÌ@)r¢   r£   r
   çffffff@)úx-br£   r   gffffff@)r§   r£   r   r¦   )r§   r£   r   gš™™™™™@)zy-aÚyr
   r¤   )zz-br¥   r   gÍÌÌÌÌÌ @)Úvar1Úvar2Úvar3Zvar4rd   r©   r   )r©   rª   r«   r   r   )r   ÚgroupbyÚsizerh   rk   r$   r   rv   r©   Úisinr/   r0   )rW   r)   Zgrp_sizeZdrop_idxZidfry   rZ   r*   r*   r+   Útest_drop_nonuniquea  s(    ÷ôz%TestDataFrameDrop.test_drop_nonuniquec                 C   sÀ   |}|j ddgdd�}|jg d¢ }t ||¡ |j dgdd�}|jg d¢ }t ||¡ |jj ddgd	dd
�}|jg d¢ j}t ||¡ |jj dgd	dd
�}|jg d¢ j}t ||¡ d S )NÚbarZquxrJ   r   )r   r   r   r   r   r’   rK   )r   r   r   r   r   é	   r   )rM   r   )r$   r?   r/   r0   rƒ   )rW   Z multiindex_dataframe_random_datarŒ   ry   rZ   r*   r*   r+   Útest_drop_level~  s    z!TestDataFrameDrop.test_drop_levelc                 C   s˜   t g d¢dd�}t g d¢¡}tt d¡ dd¡tdƒ|d	�}||d
< |jd
dd�}t	dƒ}|j
jdu slJ ‚|j|d
d�}|j|dk }t ||¡ d S )N)r   r   r	   r	   r   ÚidrR   )z2016-03-23 14:00z2016-03-23 15:00ú2016-03-23 16:00r´   z2016-03-23 17:00r   r   r   Úabr6   ZtstampT)ÚappendZ201603231600Fr   r	   )r   r=   Úto_datetimer   r9   ZarangeZreshaperU   rk   r   r   Z	is_uniquer$   rh   r/   r0   )rW   ÚidxZidxdtr)   Útsry   rZ   r*   r*   r+   Ú"test_drop_level_nonunique_datetime‘  s    ÿ	 z4TestDataFrameDrop.test_drop_level_nonunique_datetimec           
      C   sŠ   t ddd�}t ddd�}tj||dd�}|dgt|ƒ |d�}| |¡}t d	dd�}tj||dd�}|dgt|ƒ |d�}	t ||	¡ d S )
Nz
2017-10-29zEurope/Berlin)Útzz2017-10-29 04:00:00Z15min)r5   r   r~   z2017-10-29 00:15:00)r   r=   r>   Úlenr$   r/   Zassert_equal)
rW   Zframe_or_seriesÚstartÚendr   rs   ry   Zexpected_startZexpected_idxrZ   r*   r*   r+   Ú'test_drop_tz_aware_timestamp_across_dst§  s    
z9TestDataFrameDrop.test_drop_tz_aware_timestamp_across_dstc                 C   sX   t jg d¢g d¢gddgd�}ttj d¡ d¡|d�}| d	g¡}|jj	d
ksTJ ‚d S )N)r   r   r   r   r   r   )r   r   r   r   r   r   r‘   r’   r   r   )r   r   r   )r   r   )r‘   r’   )
r   r    r   r9   r:   r;   r<   r$   r   r   )rW   r   r)   ry   r*   r*   r+   Útest_drop_preserve_names³  s    ÿz*TestDataFrameDrop.test_drop_preserve_namesÚ	operation)Ú__iadd__Ú__isub__Ú__imul__Ú__ipow__rN   FTc                 C   sš   t dtdƒiƒ}| ¡ }tdƒ|d< |d }t d ¡�P |rN|jdd|d� n|jdd|d�}t||ƒdƒ t ||¡ W d   ƒ n1 sŒ0    Y  d S )Nr£   r   r¨   r   rO   )r   rj   r@   r/   rx   r$   Úgetattrr0   )rW   rÁ   rN   r)   rZ   r¨   r*   r*   r+   Útest_inplace_drop_and_operation½  s    z1TestDataFrameDrop.test_inplace_drop_and_operationc                 C   s^   t  g d¢g d¢g¡}tg d¢|d�}|jdd�}tdgt  dgdgg¡d�}t ||¡ d S )	N)r£   r¨   r£   )r‡   Újr‡   r   r   r£   r   r¨   rÈ   )r   r    r   r$   r/   r0   )rW   r'   r)   ry   rZ   r*   r*   r+   Ú$test_drop_with_non_unique_multiindexÒ  s
    z6TestDataFrameDrop.test_drop_with_non_unique_multiindexÚindexer©r
   r
   c                 C   sj   t  ddgddgg¡}tdtt|ƒƒi|d�}|jdgd�}tdddgit  ddg¡d�}t ||¡ d S )	Nr
   r   r£   r   rË   r   r   )r   r
   )	r   Úfrom_productr   rj   r¼   r$   ru   r/   r0   )rW   rÊ   r¸   r)   ry   rZ   r*   r*   r+   Ú*test_drop_tuple_with_non_unique_multiindexÚ  s    ÿz<TestDataFrameDrop.test_drop_tuple_with_non_unique_multiindexc                 C   sv   t g d¢g d¢g d¢gg d¢d�}|jdgdd�}t dgdgdggdgd�}t ||¡ |jddd�}t ||¡ d S )N)r   r   g      @)r°   r
   r
   rd   r
   r   rL   r°   r‹   r    r*   r*   r+   Ú test_drop_with_duplicate_columnså  s    ÿz2TestDataFrameDrop.test_drop_with_duplicate_columnsc                 C   s‚   t tj d¡ d¡tj d¡ d¡tj d¡ d¡g d¢dœƒ}|jg d¢dd�}|jg d¢dd�}|jd	dd�}t ||¡ d S )
Nr   r   )r
   r   r3   rF   rG   rž   )r   r   r   r   rL   )r   r   r   r   r   r_   )	r   r9   r:   r;   r<   Ztaker$   r/   r0   )rW   r)   rZ   Zdf2ry   r*   r*   r+   Ú!test_drop_with_duplicate_columns2ï  s    üÿ	z3TestDataFrameDrop.test_drop_with_duplicate_columns2c                 C   sr   t dg d¢itdgdd�d�}|j}|jdgddd� t |jtg dd�¡ || ¡ 8 }t |jtg dd�¡ d S )	Nr
   r   Úobjectr�   rd   r   TrO   )r   r   r
   r$   r/   rV   r7   Úmean)rW   r)   r
   r*   r*   r+   Ú.test_drop_inplace_no_leftover_column_referenceÿ  s    z@TestDataFrameDrop.test_drop_inplace_no_leftover_column_referencec                 C   s\   t t tdƒtdƒg¡d�}tjtdd�� |jddd� W d   ƒ n1 sN0    Y  d S )Nr   r   zlabels \[5\] not found in levelr   r   r   r   )r   r   rÌ   rj   r!   r"   r#   r$   )rW   r)   r*   r*   r+   Ú(test_drop_level_missing_label_multiindex  s    z:TestDataFrameDrop.test_drop_level_missing_label_multiindexz
idx, levelNc                 C   sd   t dddtjgddœ|d� |¡}|jtdtjgƒ|d�}t dgddœ|d� |¡}t ||¡ d S )Nr   r   éd   ©r
   r   r�   r   )r   r=   ZNArk   r$   r   r/   r0   )rW   Zany_numeric_ea_dtyper¸   r   r)   ry   rZ   r*   r*   r+   Útest_drop_index_ea_dtype  s    ÿþÿþz*TestDataFrameDrop.test_drop_index_ea_dtypec                 C   s`   t ddgddgdœtdƒtdƒgd�}|jddd�}t dgdgdœtdƒgd�}t ||¡ d S )	Nr   r   rÕ   z
2000-01-03z
2000-01-04r   r   rL   )r   r   r$   r/   r0   r    r*   r*   r+   Ú&test_drop_parse_strings_datetime_index  s    þz8TestDataFrameDrop.test_drop_parse_strings_datetime_index)&Ú__name__Ú
__module__Ú__qualname__r[   rm   rz   r|   rs   r!   ÚmarkÚparametrizer   rk   r„   r�   rŽ   r9   Úarrayr   r   r   r“   rœ   r¡   r¯   r²   rº   r¿   rÀ   rÇ   rÉ   rÍ   rÎ   rÏ   rÒ   rÓ   rÖ   r×   r*   r*   r*   r+   rB   E   sj   /5'üþ	

úþ
!
ÿ


	
rB   )r�   Únumpyr9   r!   Zpandas.errorsr   Zpandasr=   r   r   r   r   r   r   Zpandas._testingZ_testingr/   rÛ   rÜ   r,   r1   rA   rB   r*   r*   r*   r+   Ú<module>   s"    þþ

