3
Ud.=                 @   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jZejjdddgdd Zejjdddgdd Zdd ZG dd dZdS )    N)PerformanceWarning)	DataFrameIndex
MultiIndexSeries	Timestampzmsg,labels,levellabels \[4\] not found in level   alabels \[7\] not found in level   bc             C   s   t jjdddgdddggddgd	}t jd
ddg|d}t jd
ddg|d}tjt| d |j||d W d Q R X tjt| d |j||d W d Q R X d S )N         r	         r
   r   )names
         )index)match)level)	pdr   from_arraysr   r   pytestraisesKeyErrordrop)msglabelsr   misdf r%   X/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/frame/methods/test_drop.py0test_drop_raise_exception_if_labels_not_in_level   s    	$r'   zlabels,levelc             C   s   t jjdddgdddggddgd	}t jd
ddg|d}t jd
ddg|d}|j| |dd}tj|| |j| |dd}tj|| d S )Nr   r   r   r	   r   r   r
   r   )r   r   r   r   )r   ignore)r   errors)	r   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    $r,   c           
   C   sn   t jtjjdddddgt jddddd	} | jd
dddg j } tj	t
dd | jddg W d Q R X d S )Nr   r   r
   r   cZ2012H)freqZperiods)columnsr   r   r   znot found in axis)r   )r   r   nprandomrandn
date_rangeiloccopyr   r   r   r   )r$   r%   r%   r&   9test_drop_with_non_unique_datetime_index_and_invalid_keys.   s    r7   c            	   @   sj  e Zd Zdd Zdd Zdd Zdd Zd	d
dgd	d
dggZej	j
deeddgdeeddgdeeddgdjdd	geeddgdjdd	ggdd Zej	j
dd	d
dgd	d	d
ggej	j
dg d	gd
ggdd Zej	j
dd	d
dgd	d
d
ggej	j
dd	dgddggdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zej	j
d%eegd&d' Zd(d) Zd*S )+TestDataFrameDropc             C   s8  t dddgdddgdddggdd	d
gdddgd}d\|j_|j_|jd	}|jddd}|j |j  }}|jd	dd}|d kst|jdddd}|d kstx4||||fD ]$}|jjdkst|jjdkstqW t|jdddgkstd}tj	t
|d |jdg W d Q R X tj	t
|d |jdgd W d Q R X |jdgdd}	tdd	d
gdd}
tj|	j|
 |jd	dgdd}	tdd
gdd}
tj|	j|
 |jdgddd}	tdddgdd}
tj|	j|
 |jddgddd}	tddgdd}
tj|	j|
 |jg dd}	tdd	d
gdd}
tj|	j|
 d S )Nr   r   r   r	   r   r   r   r
   r   r-   def)r   r0   firstsecond)axisT)inplace)r>   r?   z\['g'\] not found in axis)r   gr(   )r)   )name)r>   r)   )r<   r=   )r   r   rA   r0   r   r6   AssertionErrorlistr   r   r   r   r*   Z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_names?   sH    
z!TestDataFrameDrop.test_drop_namesc          #   C   s  t ddddgddddgd}tj|jddd|d	g  tj|jdd	gd
d|g   tj|jdddgdd|jdgd d f  tj|jddgdd|jddgd d f  tjtdd |jd W d Q R X tjtdd |jdd W d Q R X tjtdd |jddg W d Q R X tjtdd |jddgd W d Q R X tj|jddd| tj|jddgdd|jdddgd d f  tj|jdddd| tj|jddgddd|d	g  t tt	t
dt
ddtddddgd}tj|jddd|dg  tj|jdd
d|d  tj|jg | |jtjdddg}td|_tj|jddd|jdgd d f  tj|jddgdd|jg d d f  tj tjjddtdd}||jdk  }|j||jdk jdd}|d ks ttj|| d S )Nr   r   r   r	   r   )ABrI   )r>   rJ   r0   r   z\[5\] not found in axis)r   r   z\['C'\] not found in axisCr(   )r)   )r>   r)   abcr
   r   )r0   XYrowsr   T)r!   r?   )r   r*   r+   r   locr   r   r   rC   ziprange	set_indexr   r   r0   r1   r2   r3   r   r   rB   )rD   simpleZnu_dfr$   rG   rE   r%   r%   r&   	test_dropn   sB    ,,**
&(zTestDataFrameDrop.test_dropc             C   s   t jdddgddgd	}td
ddgg|d}|jj s:ttddddgd
dddgd
dddggd}|jdddgdd}|j }|jj  sttj	|| |j
dd
d}tjt |j
dd
d}W d Q R X tj	|| d S )Nr
    b1c1b2c2r   r-   )r   r   r   r	   )r0   r9   )r0   data)r   r0   values)r>   )r
   rW   )rX   rY   )rZ   r[   )r   from_tuplesr   r0   Zis_lexsortedrB   Zpivot_tablereset_indexr*   r+   r   Zassert_produces_warningr   )rD   Zlexsorted_miZlexsorted_dfZnot_lexsorted_dfrG   resultr%   r%   r&   "test_drop_multiindex_not_lexsorted   s    &z4TestDataFrameDrop.test_drop_multiindex_not_lexsortedc             C   s  t dddgdddgdddggdd	d
gdddgd}|jd}|jdd}tj|| |jdd}|jdd}tj|| |jddd}|jdd}tj|| |jdgdd}|jdgd}tj|| |jdgddjdgdd}|jdgdgd}tj|| d}tjt|d |jdd	d W d Q R X tjt|d |jdd	d W d Q R X d}tjt|d |jdd W d Q R X d S )Nr   r   r   r	   r   r   r   r
   r   r-   r9   r:   r;   )r   r0   )r   )r0   )r!   r>   r   )r>   z2Cannot specify both 'labels' and 'index'/'columns')r   )r!   r   )r!   r0   z>Need to specify at least one of 'labels', 'index' or 'columns')r   r   r*   r+   r   r   
ValueError)rD   r$   Zres1Zres2r    r%   r%   r&   test_drop_api_equivalence   s6    
z+TestDataFrameDrop.test_drop_api_equivalencer   r   r   actualr
   )r\   r   r   r   c             C   s   t |jtrdnd }tjd}tjt|d |jd|dd W d Q R X tjt|d |j	jd|dd W d Q R X |jdd|dd}t
j|| |j	jdd|dd}t
j|j	| d S )	Nr   z"['c'] not found in axis")r   r-   )r   r>   r   r(   )r>   r   r)   )
isinstancer   r   reescaper   r   r   r   Tr*   r+   )rD   rd   r   r    Zexpected_no_errr%   r%   r&   "test_raise_on_drop_duplicate_index   s    
z4TestDataFrameDrop.test_raise_on_drop_duplicate_indexr   drop_labelsc                s<    fdd|D }t j|dj }tj|t j|d d S )Nc                s   g | ]}| kr|qS r%   r%   ).0i)rj   r%   r&   
<listcomp>   s    z:TestDataFrameDrop.test_drop_empty_list.<locals>.<listcomp>)r   )r   r   r   r*   r+   )rD   r   rj   Zexpected_indexframer%   )rj   r&   test_drop_empty_list   s    z&TestDataFrameDrop.test_drop_empty_listr	   r   c          
   C   s0   t jtdd tj|dj| W d Q R X d S )Nznot found in axis)r   )r   )r   r   r   r   r   r   )rD   r   rj   r%   r%   r&   test_drop_non_empty_list  s    z*TestDataFrameDrop.test_drop_non_empty_listc             C   s:  ddddddgddddddgdd	d
dddgg}t t| }tj|}ttjjdd|d}|jddd}|jdgdd}t	j
|| |jdgdd}|jdgdd}|jdgdd}t	j
|| |jddd}|jdgdd}t	j
|| |jdgdd}|jddd}|jdddd}|jddgdd}t	j
|| d S )Nr
   toproutine1routine2rW   ODresult1Zresult2wxwyr	   r   )r0   r   )r>   )r   r>   )r
   rW   rW   )rq   rt   rv   )rq   rt   rw   )rq   rt   rv   )rq   rt   rv   )rq   rt   rw   )rr   ru   rW   )rs   ru   rW   )sortedrR   r   r^   r   r1   r2   r3   r   r*   r+   )rD   ZarraysZtuplesr   r$   r`   rG   r%   r%   r&   test_mixed_depth_drop	  s,    
z'TestDataFrameDrop.test_mixed_depth_dropc             C   s   t ddddgtjdddgddddgd	d
ddgdjdddgj }|jddd}t d
d	gdgtjjddtjdfgdddgdd}t	j
|| d S )Nonetwo        g      ?g       @r
   r   r-   r   r   r   r	   )rI   rJ   rK   DrI   rJ   rK   )r   r}   )r   )r0   r   )rz   r|   r   )r   r1   nanrT   Z
sort_indexr   r   r   r^   r*   r+   )rD   r$   r`   rG   r%   r%   r&   $test_drop_multiindex_other_level_nan*  s    

 z6TestDataFrameDrop.test_drop_multiindex_other_level_nanc             C   s   t ddddgddddgdddd	gdddd
gddddgdddd
gddddgddddgddddgg	ddddgd}|jdj }|j|dk }|jdddg}|j|jddj }||jj	|j  }|j|_t
j|| d S )Nzx-axr
   g      ?g333333?zz-czr-   g@gffffff@zx-br   gffffff@g@zy-ayzz-bg @var1Zvar2Zvar3Zvar4)r0   r   r   )r   )r   groupbysizerQ   rT   r   r   r_   r   isinr*   r+   )rD   r$   Zgrp_sizeZdrop_idxZidfr`   rG   r%   r%   r&   test_drop_nonuniqueB  s$    







z%TestDataFrameDrop.test_drop_nonuniquec             C   sN  t ddddgdddggdddd	d	d
d
dddg
dd	d
dd	d	d
dd	d
g
gddgd}ttjjdd|tdddgddd}|jddgdd}|jdd	d
ddg }tj	|| |jdgdd}|jdd
ddddg }tj	|| |j
jddgd	dd}|jdd	d
ddg j
}tj	|| |j
jdgd	dd}|jdd
ddddg j
}tj	|| d S )NZfoobarZbazZquxrz   r{   Zthreer   r   r   r   r<   r=   )Zlevelscodesr   r   rI   rJ   rK   exp)rA   )r   r0   )r   r   r   r   	   )r>   r   )r   r   r1   r2   r3   r   r   r5   r*   r+   rh   )rD   r   rn   r`   rG   r%   r%   r&   test_drop_level_  s(    .z!TestDataFrameDrop.test_drop_levelc             C   s   t dddddgdd}tjddd	d	d
g}ttjdjddtd|d}||d< |jddd}t	d	}|j
jdksxt|j|dd}|j|dk }tj|| d S )Nr   r   r	   r   id)rA   Z201603231400Z201603231500Z201603231600Z201603231700r   ab)r0   r   ZtstampT)appendF)r   )r   r   to_datetimer   r1   ZarangeZreshaperC   rT   r   r   Z	is_uniquerB   r   rQ   r*   r+   )rD   idxZidxdtr$   tsr`   rG   r%   r%   r&   "test_drop_level_nonunique_datetime{  s     z4TestDataFrameDrop.test_drop_level_nonunique_datetimeboxc       
      C   s   t ddd}t ddd}tj||dd}|dgt| |d}|j|}t d	dd}tj||dd}|dgt| |d}	tj||	 d S )
Nz
2017-10-29zEurope/Berlin)tzz2017-10-29 04:00:00Z15min)r/   r   )r\   r   z2017-10-29 00:15:00)r   r   r4   lenr   r*   Zassert_equal)
rD   r   startendr   r\   r`   Zexpected_startZexpected_idxrG   r%   r%   r&   'test_drop_tz_aware_timestamp_across_dst  s    
z9TestDataFrameDrop.test_drop_tz_aware_timestamp_across_dstc             C   sd   t jddddddgddddddggddgd}ttjjdd|d	}|jd
g}|jjdks`t	d S )Nr   r   r   r   rz   r{   )r   r   )r   )r   r   )rz   r{   )
r   r   r   r1   r2   r3   r   r   r   rB   )rD   r   r$   r`   r%   r%   r&   test_drop_preserve_names  s
    *z*TestDataFrameDrop.test_drop_preserve_namesN)__name__
__module____qualname__rH   rV   ra   rc   r\   r   markparametrizer   rT   ri   ro   rp   ry   r   r   r   r   r   r   r   r%   r%   r%   r&   r8   >   s,   //'&"$!r8   )r   r	   r
   )r   r   r   )r	   r
   )r   r   )rf   Znumpyr1   r   Zpandas.errorsr   Zpandasr   r   r   r   r   r   Zpandas._testingZ_testingr*   r   r   r'   r,   r7   r8   r%   r%   r%   r&   <module>   s   
