o
    Û­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 s8w   Y  tjt| d�� |j||d	� W d   ƒ d S 1 sWw   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*   úa/var/www/html/CropPilot/venv/lib/python3.10/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$   ÚtmÚassert_series_equalÚassert_frame_equal)r&   r   r'   r(   r)   Ú
expected_sÚexpected_dfr*   r*   r+   Útest_drop_errors_ignore'   s   r4   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   ƒ d S 1 s9w   Y  d S )Nr   )r   r   ©r
   r   ÚcÚ2012Úhr   )ÚfreqÚ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   ý"ÿrF   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   sL  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 sLJ ‚||||fD ]}|jjdks\J ‚|jjdksdJ ‚qRt|jƒg d¢kspJ ‚d}tjt	|d�� | dg¡ W d   ƒ n1 sŠw   Y  tjt	|d�� |jdgd
d� W d   ƒ n1 s©w   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   r5   ©ÚdÚeÚf©r   r<   )ÚfirstÚsecondr   rL   r   ©ÚaxisT)Úinplace©rR   rS   rO   rP   z\['g'\] not found in axisr   Úgr-   ©r.   ©Únamer
   r6   ©rR   r.   rK   rM   )r   r   rX   r<   r$   rE   Úlistr!   r"   r#   r   r/   Úassert_index_equal)Úselfr)   Údf_dropped_bÚdf_dropped_eÚdf_inplace_bÚdf_inplace_eÚreturn_valueÚobjr%   ÚdroppedÚexpectedr*   r*   r+   Útest_drop_namesF   sN   ý
ÿÿ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 sjw   Y  tjtdd�� |jddd� W d   ƒ n1 sˆw   Y  tjtdd�� | ddg¡ W d   ƒ n1 s¦w   Y  tjtdd�� |jddgdd� W d   ƒ n1 sÆw   Y  tjtdd�� |jg d¢dd� W d   ƒ n1 sæw   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ÚBrg   r   rQ   rh   r<   )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)ri   ÚDÚFr-   rV   r   rY   éýÿÿÿÚabc)r
   r
   r   ©r<   r
   r   )ÚXÚYro   ro   Úrowsrp   )r   r   T)r&   rS   )r   r/   r1   r$   Úlocr!   r"   r#   rZ   ÚzipÚrangeÚ	set_indexr   r<   r>   r?   r@   rA   r   r   )r\   ÚsimpleÚnu_dfr)   rd   ra   r*   r*   r+   Ú	test_dropu   sZ   *,ÿÿÿÿÿ$ÿÿ"ÿ
&(ÿzTestDataFrameDrop.test_dropc                 C   sØ   t jg d¢ddgd�}tg d¢g|d�}|j ¡ sJ ‚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_w   Y  t
 ||¡ d S )N))r
   Ú )Úb1Úc1)Úb2Úc2r   r6   r   )r   r   r	   rn   )r
   r   r6   rK   )r   rz   r{   r   )r   r|   r}   r	   )r<   Údatar
   rK   )r   r<   Úvaluesr   rQ   )r   Úfrom_tuplesr   r<   Ú_is_lexsortedÚpivot_tableÚreset_indexr$   ÚastypeÚfloatr/   Úassert_produces_warningr   r1   )r\   Úlexsorted_miÚlexsorted_dfÚnot_lexsorted_dfrd   Ú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 s˜w   Y  tjt|d�� |jddd� W d   ƒ n1 s¶w   Y  d}tjt|d�� |jd
d� W d   ƒ d S 1 sÖw   Y  d S )Nr   rH   rI   r5   rJ   rN   r
   r   rK   r   rQ   rn   rL   )r&   rR   r   z2Cannot specify both 'labels' and 'index'/'columns'r   r   )r&   r   )r&   r<   z>Need to specify at least one of 'labels', 'index' or 'columns')r   r$   r/   r1   r!   r"   Ú
ValueError)r\   r)   Úres1Úres2r%   r*   r*   r+   Útest_drop_api_equivalenceÄ   s>   ý
ÿÿ"ÿz+TestDataFrameDrop.test_drop_api_equivalencer   Úactualr
   ©r~   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 s)w   Y  tjt|d�� |j	jd|dd� W d   ƒ n1 sIw   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   r6   ©r   rR   r   r-   )rR   r   r.   )Ú
isinstancer   r   ÚreÚescaper!   r"   r#   r$   ÚTr/   r1   )r\   r�   r   r%   Úexpected_no_errr*   r*   r+   Ú"test_raise_on_drop_duplicate_indexí   s   
ÿÿ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>  s    z:TestDataFrameDrop.test_drop_empty_list.<locals>.<listcomp>r   ©r   r$   r/   r1   )r\   r   r™   Úexpected_indexÚframer*   rœ   r+   Útest_drop_empty_list  s   z&TestDataFrameDrop.test_drop_empty_list)r   r   r   r	   r   c                 C   sD   t jtdd�� t|d� |¡ W d   ƒ d S 1 sw   Y  d S )Nr=   r   r   )r!   r"   r#   r   r$   )r\   r   r™   r*   r*   r+   Útest_drop_non_empty_list  s   "ÿz*TestDataFrameDrop.test_drop_non_empty_listÚempty_listlikezdatetime64[ns]©Údtypec                 C   sP   ddgddgdœ}t dƒt dƒg}t||d�}| ¡ }| |¡}t ||¡ d S )Nr   r   ÚoneÚtwo)Úcolumn_aÚcolumn_bz
2021-01-01r   )r   r   rE   r$   r/   r1   )r\   r£   r~   r   r)   rd   rŠ   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)ry   ÚODr®   Úresult1Úresult2r¯   )ry   ÚwxÚwyry   ry   ry   r   )r	   r   rn   r
   r   rQ   )r
   ry   ry   r«   )r«   r®   r±   )r«   r®   r²   r¯   r’   )r¬   r¯   ry   )r­   r¯   ry   )Úsortedrs   r   r€   r   r>   r?   r@   rA   r$   r/   r1   )r\   ÚarraysÚtuplesr   r)   rŠ   rd   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   r6   r6   rf   ©rg   rh   ri   rj   )rg   rh   ri   r6   ri   r   r   r   rj   )r¦   r·   r   r¦   r
   r   r;   )
r   r>   Únanru   Ú
sort_indexr$   r   r€   r/   r1   ©r\   r)   rŠ   rd   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Úzr6   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Úvar3Úvar4rn   rÄ   r   )rÄ   rÅ   rÆ   r   r   )r   ÚgroupbyÚsizerr   ru   r$   r   rƒ   rÄ   Úisinr/   r1   )r\   r)   Úgrp_sizeÚdrop_idxÚidfrŠ   rd   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ÚbarÚquxrO   r   )r   r   r   r   r   r§   rP   )r   r   r   r   r   é	   r   )rR   r   )r$   rD   r/   r1   r–   )r\   Ú multiindex_dataframe_random_datar    rŠ   rd   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 s6J ‚|j|d
d�}|j|dk }t ||¡ d S )N)r   r   r	   r	   r   ÚidrW   )z2016-03-23 14:00z2016-03-23 15:00ú2016-03-23 16:00rÕ   z2016-03-23 17:00r   r   r   Úabr;   ÚtstampT)ÚappendÚ201603231600Fr   r	   )r   rB   Úto_datetimer   r>   ÚarangeÚreshaperZ   ru   r   r   Ú	is_uniquer$   rr   r/   r1   )r\   ÚidxÚidxdtr)   ÚtsrŠ   rd   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:00Ú15min)r9   r   r‘   z2017-10-29 00:15:00)r   rB   rC   Úlenr$   r/   Úassert_equal)
r\   Úframe_or_seriesÚstartÚendr   r~   rŠ   Úexpected_startÚexpected_idxrd   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s*J ‚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   r>   r?   r@   rA   r$   r   r   )r\   r   r)   rŠ   r*   r*   r+   Útest_drop_preserve_names³  s   ÿz*TestDataFrameDrop.test_drop_preserve_namesÚ	operation)Ú__iadd__Ú__isub__Ú__imul__Ú__ipow__rS   FTc                 C   sœ   t dtdƒiƒ}| ¡ }tdƒ|d< |d }t d ¡�) |r'|jdd|d� n|jdd|d�}t||ƒdƒ t ||¡ W d   ƒ d S 1 sGw   Y  d S )Nr¾   r   rÃ   r   rT   )r   rt   rE   r/   r†   r$   Úgetattrr1   )r\   rí   rS   r)   rd   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/   r1   )r\   r'   r)   rŠ   rd   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   rt   rä   r$   r€   r/   r1   )r\   rö   rÞ   r)   rŠ   rd   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
   rn   r
   r   rQ   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   r6   rK   rL   r¸   )r   r   r   r   rQ   )r   r   r   r   r   ri   )	r   r>   r?   r@   rA   Útaker$   r/   r1   )r\   r)   rd   Údf2rŠ   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¤   rn   r   TrT   )r   r   r
   r$   r/   r[   r<   Úmean)r\   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   ƒ d S 1 s(w   Y  d S )Nr   r   zlabels \[5\] not found in levelr   r   r   r   )r   r   rø   rt   r!   r"   r#   r$   )r\   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   rB   ÚNAru   r$   r   r/   r1   )r\   Úany_numeric_ea_dtyperÞ   r   r)   rŠ   rd   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   rQ   )r   r   r$   r/   r1   r»   r*   r*   r+   Ú&test_drop_parse_strings_datetime_index  s   þz8TestDataFrameDrop.test_drop_parse_strings_datetime_index)&Ú__name__Ú
__module__Ú__qualname__re   rx   r‹   r�   r~   r!   ÚmarkÚparametrizer   ru   r˜   r¡   r¢   r>   Úarrayr   r   r   rª   r¶   r¼   rÎ   rÓ   rá   rë   rì   ró   rõ   rù   rú   rý   r   r  r  r  r*   r*   r*   r+   rG   E   sl    /5'üþ
	
úþ
!
ÿ


	
rG   )r”   Únumpyr>   r!   Úpandas.errorsr   ÚpandasrB   r   r   r   r   r   r   Úpandas._testingÚ_testingr/   r  r  r,   r4   rF   rG   r*   r*   r*   r+   Ú<module>   s$     þþ

