a
    oÝEb) ã                   @   s  d dl m Z  d dlmZ 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mZ d dlmZ d dlmZ G dd„ dƒZd	d
„ Zdd„ Zdd„ Zej dddg¡dd„ ƒZej dddg¡ej ddd g¡dd„ ƒƒZdd„ Z dd„ Z!dd„ Z"dd„ Z#G dd „ d ƒZ$dS )!é    )Údatetime)ÚStringION)ÚPerformanceWarning)Ú	DataFrameÚIndexÚ
MultiIndexÚPeriodÚSeriesÚ	TimedeltaÚ
date_range)Úreshapec                   @   s<  e Zd Zdd„ Zdd„ Z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 ddg d¢g d¢g d¢g d¢gejg d¢ddgd�ejg d¢ddgd�fdg d¢g d¢ged d!gdd"�ejg d#¢g d$¢d�fg¡d%d&„ ƒZd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zej d;d<dgedƒg¡d=d>„ ƒZd?d@„ Z dAdB„ Z!dCdD„ Z"ej dEdFdGg¡ej dHe#e$dIƒƒ¡dJdK„ ƒƒZ%ej dEe& 'g dL¢¡¡ej dHe#e$d ƒƒ¡ej dMdNdOg¡dPdQ„ ƒƒƒZ(dRdS„ Z)dTdU„ Z*dVdW„ Z+dXdY„ Z,dZd[„ Z-d\d]„ Z.ej d^d_d`g¡ej dae#dbƒe#dcƒg¡ddde„ ƒƒZ/ej d^d_d`g¡ej dfe#dgƒg dh¢fe#diƒg dj¢fg¡dkdl„ ƒƒZ0dmdn„ Z1ej dog dp¢e 2dqdIgdrdsgg¡fg dt¢e 2dqdIgdrdsgg¡fg du¢e 2dqdIgdrdsgg¡fg¡dvdw„ ƒZ3ej dxdydqg¡dzd{„ ƒZ4ej dxdyd|g¡d}d~„ ƒZ5dS )ÚTestDataFrameReshapec           	      C   s¤   |  ¡ }t t |j¡¡ |j¡|d d …< | ¡ }t||dœƒ}| ¡ }| ¡ }t	 
||¡ t	 
|d |¡ | d¡}| d¡}t	 
|j|¡ t	 
|d j|¡ d S )N)ÚfooÚbarr   r   )ÚcopyÚnpÚarangeÚprodÚshaper   Ústackr   ÚunstackÚtmÚassert_frame_equalÚT)	ÚselfÚfloat_frameÚdfÚstackedZ
stacked_dfÚ	unstackedZunstacked_dfZunstacked_colsZunstacked_cols_df© r   úe/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/frame/test_stack_unstack.pyÚtest_stack_unstack   s    "

z'TestDataFrameReshape.test_stack_unstackc                 C   sâ   t dƒg d¢ddgg}td|d |d d�}| ¡ }tdt |d d… ¡d�}t ||¡ td|d t |dd … ¡d�}| d¡}tdt |d |d g¡|d d�}t ||¡ |dd	g  d¡}|dd	g }t ||¡ d S )
Né   )r"   ÚaÚbé   é   r   ©ÚindexÚcolumns©r(   r#   r$   )	Úranger   r   r	   r   Úfrom_productr   Úassert_series_equalr   )r   Úlevelsr   ÚresultÚexpectedr   r   r    Útest_stack_mixed_level+   s     
ÿz+TestDataFrameReshape.test_stack_mixed_levelc                 C   sl   t ddtjgddtjgdœƒ}|dg }|d |d< |sLt|jjƒdksLJ ‚| ¡ }| ¡ }t ||¡ d S )Nr%   r&   ç      @é   ©ÚxÚyr5   r6   )	r   r   ÚNaNÚlenÚ_mgrÚblocksr   r   r-   )r   Úusing_array_managerr   Údf2Úresr0   r   r   r    Útest_unstack_not_consolidatedB   s    
z2TestDataFrameReshape.test_unstack_not_consolidatedc           	      C   st  t g d¢tjd�}t g d¢¡|_|jdd�}tg d¢g d¢dœg d	¢tjd
�}t 	||¡ |jdd�}tg d¢g d¢dœg d	¢t
d
�}t 	||¡ tg d¢g d¢g d¢g d¢dœƒ g d	¢¡}|jddgdd�}d}|| }t g d¢|j|d�}t ||¡ | ddg¡}|j |jj¡|_| tj¡}|j|j }t 	||¡ |d }|jddgdd�}|d }t 	||¡ d S )N)r%   r&   r3   é   ©Údtype©)r5   r#   )r5   r$   )r6   r$   )Úzr#   éÿÿÿÿ©Ú
fill_value)r%   rD   r?   )r&   r3   rD   ©r#   r$   ©r5   r6   rC   ©r(   rA   ç      à?)r%   rJ   r?   )r&   r3   rJ   ©r#   r#   r$   )ÚjÚkrL   ©r   r%   r&   )r5   r6   rC   Úwr5   r6   r   )rO   r$   rL   )r   r   r&   )r(   ÚnamerO   )r	   r   Úint16r   Úfrom_tuplesr(   r   r   r   r   ÚfloatÚ	set_indexr-   r   Zreorder_levelsÚnamesÚastypeÚint64Úloc)	r   Údatar/   r0   r   r   Úkeyr   Úsr   r   r    Útest_unstack_fillN   sB    ÿÿÿÿþz&TestDataFrameReshape.test_unstack_fillc                 C   sN  ddgddgddgddgg}t |td	ƒtjd
�}t g d¢¡|_|jdd�}g d¢g d¢g d¢g}t |tdƒtjd�}t g d¢¡|_t	 
||¡ |d  tj¡|d< |d  tj¡|d< |jdd�}|d  tj¡|d< |d  tj¡|d< t	 
||¡ |jdd�}g d¢g d¢g d¢g}t |tdƒtd�}t g d¢¡|_t	 
||¡ d S )Nr%   r&   r"   r3   r?   é   é   é   ZAB)r)   rA   rB   rD   rE   )r%   r"   r&   r3   )rD   r?   rD   r]   )r^   rD   r_   rD   ÚxyzrI   )©ÚAr#   )rb   r$   )ÚBr#   ©rc   r$   rb   rc   rJ   )rJ   r?   rJ   r]   )r^   rJ   r_   rJ   )r   Úlistr   Úint32r   rR   r(   r   r)   r   r   rV   rQ   Úfloat64rS   )r   Úrowsr   r/   r0   r   r   r    Útest_unstack_fill_frame}   s2    ÿÿÿz,TestDataFrameReshape.test_unstack_fill_framec                 C   sÊ   t ddd�j}t|ƒ}t g d¢¡|_| ¡ }t|d tj	|d g|d |d tj	gd	œg d
¢d�}t
 ||¡ |j|d d�}t|d |d |d g|d |d |d gd	œg d
¢d�}t
 ||¡ d S )Nú
2012-01-01r3   ©ÚperiodsrB   r   r"   r%   r&   rG   rH   r*   rE   )r   Úvaluesr	   r   rR   r(   r   r   ÚpdÚNaTr   r   )r   ZdvrY   r/   r0   r   r   r    Ú test_unstack_fill_frame_datetime¢   s"    ÿ(þ,þz5TestDataFrameReshape.test_unstack_fill_frame_datetimec                 C   sÎ   dd„ t dƒD ƒ}t|ƒ}t g d¢¡|_| ¡ }t|d tj|d g|d |d tjgd	œg d
¢d�}t	 
||¡ |j|d d�}t|d |d |d g|d |d |d gd	œg d
¢d�}t	 
||¡ d S )Nc                 S   s   g | ]}t |d �‘qS ))Údays)r
   )Ú.0Úir   r   r    Ú
<listcomp>¼   ó    zJTestDataFrameReshape.test_unstack_fill_frame_timedelta.<locals>.<listcomp>r3   rB   r   r"   r%   r&   rG   rH   r*   rE   )r+   r	   r   rR   r(   r   r   rn   ro   r   r   )r   ÚtdrY   r/   r0   r   r   r    Ú!test_unstack_fill_frame_timedelta¹   s"    ÿ(þ,þz6TestDataFrameReshape.test_unstack_fill_frame_timedeltac                 C   sÔ   t dƒt dƒt dƒt dƒg}t|ƒ}t g d¢¡|_| ¡ }t|d d |d g|d |d	 d gd
œg d¢d�}t ||¡ |j|d d�}t|d |d |d g|d |d	 |d gd
œg d¢d�}t ||¡ d S )Nz2012-01z2012-02z2012-03z2012-04rB   r   r"   r%   r&   rG   rH   r*   rE   )	r   r	   r   rR   r(   r   r   r   r   )r   rl   rY   r/   r0   r   r   r    Útest_unstack_fill_frame_periodÐ   s.    üÿ$þþûz3TestDataFrameReshape.test_unstack_fill_frame_periodc                 C   s  t g d¢dd�}t g d¢¡|_| ¡ }ttjtdƒtdƒd�tjtdƒtdƒd�d	œtd
ƒd�}t	 
||¡ d}tjt|d�� |jdd� W d   ƒ n1 s¢0    Y  |jdd�}ttjtdƒtdƒd�tjtdƒtdƒd�d	œtd
ƒd�}t	 
||¡ d S )N©r#   r$   Úcr#   Úcategoryr@   rB   ZaxaÚabc©Ú
categoriesZbcxrG   r`   r*   z9Cannot setitem on a Categorical with a new category \(d\)©ÚmatchÚdrE   rz   ZacaZbcc)r	   r   rR   r(   r   r   rn   ÚCategoricalre   r   r   ÚpytestÚraisesÚ	TypeError)r   rY   r/   r0   Úmsgr   r   r    Ú#test_unstack_fill_frame_categoricalï   s.    ÿþû*þûz8TestDataFrameReshape.test_unstack_fill_frame_categoricalc                 C   s”   t jg d¢g d¢gddgd�}tdgd dgd d	œ|d
�}| d¡}tg d¢g d¢g d¢gt jg d¢d dgd�tg d¢dd�d�}t ||¡ d S )N©r#   r$   rz   ©r%   r&   r"   ra   rd   ©rU   r%   é	   r&   ©r�   Úer*   )r%   r%   r%   r&   r&   r&   )©r�   r#   ©r�   r$   )r�   rz   ©r�   r#   ©r�   r$   )r�   rz   ©rP   ©r)   r(   )r   r,   r   r   rR   r   r   r   ©r   Úidxr   r/   r0   r   r   r    Ú$test_unstack_tuplename_in_multiindex  s    ÿ
÷óz9TestDataFrameReshape.test_unstack_tuplename_in_multiindexz>unstack_idx, expected_values, expected_index, expected_columnsra   )r%   r%   r&   r&   ))r%   r"   )r%   r3   ©r&   r"   )r&   r3   rc   ÚCrŠ   )rŽ   r�   r�   r‘   N)ra   rc   )r%   r%   r%   r%   r&   r&   r&   r&   r"   r3   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&   )Nra   rc   c           	      C   sj   t jddgddgddggg d¢d�}tdgd	 dgd	 d
œ|d�}| |¡}t|||d�}t ||¡ d S )Nr#   r$   r%   r&   r"   r3   )ra   rc   r˜   rŠ   r_   rŒ   r*   r“   )r   r,   r   r   r   r   )	r   Zunstack_idxZexpected_valuesZexpected_indexZexpected_columnsr•   r   r/   r0   r   r   r    Ú*test_unstack_mixed_type_name_in_multiindex+  s    &ÿ
ÿz?TestDataFrameReshape.test_unstack_mixed_type_name_in_multiindexc                 C   s  t g d¢g d¢tg d¢ƒ d¡tj d¡ddt d¡tg d¢ƒ d	¡tg d
¢ƒ d¡dtg d¢ƒ d¡dœƒ}dd„ }| ddg¡}||dƒ | ddg¡}||dƒ | ddg¡}||dƒ | g d¢¡}||dƒ | ddg¡}||dƒ | ddg¡}|d }||dƒ d S )N)ZILÚMIZNCrˆ   r{   r"   r%   r   Z20010102)ç      ð?g      I@g      Y@Zfloat32)r2   g      @g      @rg   F)r%   éÈ   i2 Zint8)Ústater(   Úsome_categoriesrb   rc   r˜   ÚDÚEÚFÚGÚHc                 S   s&   |   |g¡}|   |¡}t ||¡ d S ©N©r   r   r   )r   Zcolumn_nameZ
unstacked1Z
unstacked2r   r   r    Úunstack_and_comparen  s    
zNTestDataFrameReshape.test_unstack_preserve_dtypes.<locals>.unstack_and_comparer�   r(   rž   r¡   r˜   )r¢   rc   r�   rc   r    rb   )	r   r	   rV   r   ÚrandomZrandrn   Ú	TimestamprT   )r   r   r¦   Údf1r[   r   r   r    Útest_unstack_preserve_dtypes\  s8    
õÿ




z1TestDataFrameReshape.test_unstack_preserve_dtypesc                 C   sÖ   t  ttjtdƒdd�ƒ¡}ttj 	dd¡|d�}t
 |jddgd�|jdd�jdd�¡ t
 |jd	d
gd�|jdd�jdd�¡ | ¡ }|jjtdƒdd�}|d u sªJ ‚t
 |jddgd�|jdd�jdd�¡ d S )Nr"   ©Úrepeaté   é   ©r)   r%   r&   ©ÚleveléþÿÿÿrD   T)Zinplace)r   rR   re   Ú	itertoolsÚproductr+   r   r   r§   Úrandnr   r   r   r   r)   Z	set_names)r   r)   r   Zdf_namedZreturn_valuer   r   r    Útest_stack_ints†  s    ( ÿ ÿz$TestDataFrameReshape.test_stack_intsc                 C   s  t jg d¢g d¢d�}ttj dd¡|d�}|jddgd�}|jd	dgd�}| ¡ }g d
¢|j_	t
j|jddgd�|dd� t
j|jd	dgd�|dd� d}tjt|d��  |jddgd� W d   ƒ n1 sÐ0    Y  | ¡ }g d¢|j_	t
j|jddgd�|dd� d S )N©)rb   ÚcatÚlong)rc   r¸   r¹   )rb   ÚdogÚshort)rc   rº   r»   ©ÚexpÚanimalÚhair_lengthrŠ   r3   r¯   r¾   r¿   r°   r½   )r½   r¾   r%   r%   F©Zcheck_nameszSlevel should contain all level names or all level numbers, not a mixture of the twor   r   )r½   r¾   r   )r   rR   r   r   r§   rµ   r   r   r)   rU   r   r   rƒ   r„   Ú
ValueError)r   r)   r   Úanimal_hair_stackedÚexp_hair_stackedr<   r†   Údf3r   r   r    Útest_stack_mixed_levels—  s0    ù	ÿÿÿ.ÿz,TestDataFrameReshape.test_stack_mixed_levelsc                 C   s0  t jg d¢g d¢d�}ttj dd¡|d�}|jddgd�}|jdd	gd�}|jdd	gd�}| ¡ }g d
¢|j_	t
j|jddgd�|dd� t
j|jddgd�|dd� t
j|jddgd�|dd� | ¡ }g d¢|j_	t
j|jddgd�|dd� t
j|jddgd�|dd� t
j|jddgd�|dd� d S )Nr·   r¼   rŠ   r3   r¯   r½   r¾   r°   r¿   rN   r%   r&   FrÀ   r   )r&   r   r%   )r   rR   r   r   r§   rµ   r   r   r)   rU   r   r   )r   r)   r   Zexp_animal_stackedrÂ   rÃ   r<   rÄ   r   r   r    Útest_stack_int_level_namesÃ  s<    ù	ÿÿÿÿÿÿz/TestDataFrameReshape.test_stack_int_level_namesc                 C   s|   t ddgt ddgddgg¡dgd�}| ¡ }t tjdtjgtjdggtd�ddgt ddgddgg¡d�}t 	||¡ d S )	NFr#   r$   rz   ÚlÚcolr'   r@   )
r   r   Úfrom_arraysr   r   ÚarrayÚnanÚobjectr   r   )r   r   ÚrsÚxpr   r   r    Útest_unstack_boolì  s    ýýz&TestDataFrameReshape.test_unstack_boolc                 C   sÖ   t ddgddgddggg d¢g d¢g d	¢gg d
¢d�}td|d�}| ddg¡ d¡}t ddgddggg d¢g d¢gddgd�}ttjtjdgdtjgtjdgdtjggtjd�|t	ddgdd�d�}t
 ||¡ d S )Nr   r   ÚoneÚtwor#   r$   ©r   r   r%   r%   ©r   r%   r   r%   )r%   r   r%   r   )ÚfirstÚsecondÚthird©r.   ÚcodesrU   r   r*   r%   r&   rÔ   rÕ   r@   rÖ   r’   r'   )r   r	   r   r   r   r   rÊ   rË   rg   r   r   r   )r   Úmir[   r/   Zexpected_mir0   r   r   r    Útest_unstack_level_bindingú  s(    ýý&ÿûz/TestDataFrameReshape.test_unstack_level_bindingc           	      C   sÚ   |  ¡ }t|tƒsJ ‚|  ¡ j}t ||¡ tddtjgddtjgdœƒ}t	g d¢ƒ|_
|  ¡ }tddgg d¢gg d	¢g d
¢gd�}tddtjddtjg|d�}t ||¡ | ¡ }tdƒD ]}|  ¡ }q¼t ||¡ d S )Nr%   r&   r2   r3   r4   rˆ   r5   r6   )r   r   r   r%   r%   r%   )r   r%   r&   r   r%   r&   ©r.   rØ   r"   r*   )r   Ú
isinstancer	   r   r   r   r   r   r7   r   r(   r   r-   r   r+   )	r   r   rY   Zundor/   Úmidxr0   Zold_dataÚ_r   r   r    Útest_unstack_to_series  s"    
þ
z+TestDataFrameReshape.test_unstack_to_seriesc              	   C   sr  g d¢g d¢g d¢g d¢g}t |tdƒd�}|j}tt d¡gd tdƒd	�}t ||¡ | d
dg¡}| 	d¡}|j}tt d¡gd t
jg d¢g d¢gdd�d	�}t ||¡ | d
dg¡}d|d< | 	d¡}|j}tt d¡gd t d¡gd  t
jg d¢g d¢gdd�d	�}t ||¡ d|d< | 	d¡}|j}tt d¡gd t d¡gd  t
jg d¢g d¢gdd�d	�}t ||¡ t d¡t d¡ftjddd�tjdddd�ffD ]¶\}}t dgd ||tddd�dœƒ}|jd d… jd d!�}	| d
dg¡}|d  d¡|d< |jd d…  	d"¡}
|	 d
dg¡ 	d"¡}	|	d#  d¡|	d#< |
jd$k�s^J ‚t |
|	¡ �q¶d S )%N)r%   r%   r"   r3   ©r%   r&   r"   r3   )r&   r%   r"   r3   )r&   r&   r"   r3   ÚABCDr¯   rW   r3   r*   rb   rc   )r˜   r˜   rŸ   rŸ   )r%   r&   r%   r&   )Nrc   rŠ   r2   r˜   rg   r&   r   rŸ   rÌ   r?   Zf8r@   é
   r#   rj   rk   )rb   r˜   rŸ   rc   r"   T)Údeepr   )rŸ   r#   )r"   r&   )r   re   Údtypesr	   r   rA   r   r-   rT   r   r   rÉ   Úzerosr   r   Úilocr   rV   r   r   )r   rh   r   r/   r0   r<   rÄ   rz   r�   ÚrightÚleftr   r   r    Útest_unstack_dtypes/  sl    
ÿþ
ÿþ
ÿþþ
üÿ	z(TestDataFrameReshape.test_unstack_dtypesc                 C   s    t jddgddgd�}tddg|d�}d}tjt|d	�� | d¡ W d   ƒ n1 sX0    Y  tjt|d	�� |j d¡ W d   ƒ n1 s’0    Y  d S )
NrG   )rz   r�   Úc1rŠ   r%   r&   r*   z5The name c1 occurs multiple times, use a level numberr   )	r   rR   r   rƒ   r„   rÁ   r   r   r   )r   r•   r   r†   r   r   r    Ú#test_unstack_non_unique_index_namesw  s    (z8TestDataFrameReshape.test_unstack_non_unique_index_namesc                 C   s8  t  dgg d¢g¡d d… }tddggd |d�}| ¡ }t  ddgg d¢g¡}tg d	¢gdg|d
�}t ||¡ |jjd |jd k ¡ s�J ‚g d¢g d¢g}g d¢g d¢g}t ||ƒ}t	 
d¡ dd¡}tt	 ||d g¡|d�}| ¡ }tt	j|d |d d gdd�|d�}t ||¡ |jjd |jd k ¡ �s@J ‚g d¢g d¢g}g d¢g d¢g}t ||ƒ}t	 
d¡}	t|	 dd¡|d�}dg d¢t	jddgt	jddgfdg d¢t	jddgt	jddgff}
|
D ]f\}}}}|j|d�}t	 d¡t	j }|	||< t  ddg|g¡}t| dd¡||d
�}t ||¡ �qÌd S )Nr#   )rb   rc   r˜   rŸ   rD   r%   r   r"   r*   ©rb   rc   r˜   )r%   r%   r%   r   r   r   r'   )r   r%   r^   ©r   r%   r&   r"   rÒ   ©r   r&   r   r&   r3   r&   ©Úaxisr¯   )r#   r&   rz   )r%   r"   r?   r^   )r   rD   r%   r%   )r   r&   rD   r&   r_   )é   é   r]   r‹   r&   r?   r_   é   r?   )r_   ró   r%   r3   é   é   rñ   rò   r°   é   r]   )r   r,   r   r   r   r   r)   r.   Úallr   r   r   ZconcatenaterË   rå   )r   r•   r   r/   Zexp_colr0   r.   rØ   ÚblockrY   Zcasesr±   ZidcesZ	col_levelZ	idx_levelZexp_dataÚcolsr   r   r    Útest_unstack_unused_levels�  sB    
ÿ 

þz/TestDataFrameReshape.test_unstack_unused_levelsrù   rb   c                 C   sœ   t g d¢g d¢gg d¢d�}|jg d¢dd�}|jtd ƒtd ƒdf|f }| ¡ }|jdg | }tj|jdggd d	gd
�|_|j	 
d	¡|_	t ||¡ d S )N)iÚ  r#   ÚI)iÛ  r$   ZIIrì   r¯   F)Zdroprû   r   r˜   rŠ   )r   rT   rX   Úslicer   ræ   r   r,   r)   r(   Ú	droplevelr   r   )r   rù   r   ÚindZ	selectionr/   r0   r   r   r    Útest_unstack_unused_level¬  s    ÿz.TestDataFrameReshape.test_unstack_unused_levelc                 C   s„   t dggtjdggdgd�tjg d¢gg d¢d�d�}| g d¢¡}t dggtjg d¢gg d	¢d�tdgd
d�d�}t ||¡ d S )Nr%   r   rê   rŠ   )r   r   r%   r   r   r   r%   )Úi1Úi2Úi3Úi4Úi5Úi6Úi7r“   )r  r  r  r  r  r  )rê   r  r  r  r  r  r  r   r’   )r   r   rR   r   r   r   r   ©r   r   r/   r0   r   r   r    Útest_unstack_long_index¼  s$    þýþúz,TestDataFrameReshape.test_unstack_long_indexc                 C   sx   t ddgddggtjddgddggddgd�tjg d¢g d	¢gg d
¢d�d�}| ddg¡jjdd … ddgkstJ ‚d S )Nç        rc   r˜   rŸ   rê   Úc2rŠ   )râ   é   r­   )râ   r  é(   ©r   r  r  r“   r  r   r²   )r   r   rR   r   r)   rU   ©r   r   r   r   r    Útest_unstack_multi_level_colsÒ  s    ÿÿû	z2TestDataFrameReshape.test_unstack_multi_level_colsc              	   C   s�   t ddgddgddgddggt g d	¢g d
¢g¡tjg d¢g d¢g d¢g d¢gg d¢d�d�}| ddg¡}| dg¡ dg¡}t ||¡ d S )Nr%   r&   r"   r3   rD   r²   éýÿÿÿéüÿÿÿrˆ   )r�   r�   Úf)Úm1ÚP3éÞ   )r  ÚA5éo   )Úm2r  r  )r  r  r  r  rŠ   r“   r  r  )r   r   rR   r   r   r   r  r   r   r    Ú&test_unstack_multi_level_rows_and_colsß  s    üùýz;TestDataFrameReshape.test_unstack_multi_level_rows_and_colsr•   ©ÚjimÚjoe)r  r  Úlevr&   c                 C   s(  dd„ }t ddtjdgg d¢g d¢dœƒ}| d	d
g¡ ¡ d }| d
d	g¡ ¡ d j}t ||¡ | t|ƒ¡}|j|d�}| 	¡ j
 ¡ t|ƒks˜J ‚dd„ }	|d  	¡ j
 ¡ \}
}t|
|ƒD ]b\}}t|d j||f  d¡ƒ}|	|d j| ƒ|	|d j| ƒ }tt||ƒƒ}||ksÀJ ‚qÀd S )Nc                 S   s   | | krdn| }|d›S ©NÚ Ú1r   ©ÚvalZval_strr   r   r    Úcastö  s    z:TestDataFrameReshape.test_unstack_nan_index1.<locals>.castr#   r$   r�   )rO   r5   r6   rC   )za.wzb.xz .yzd.z)r  r  Újolier  r  r$  r°   c                 S   s   t | tƒrt| ƒS | gS r¤   ©rÜ   Útuplere   ©r#   r   r   r    Ú<lambda>	  ru   z>TestDataFrameReshape.test_unstack_nan_index1.<locals>.<lambda>Ú.)r   r   rË   rT   r   r   r   r   re   Únotnarm   Úsumr8   ÚnonzeroÚzipÚsortedræ   Úsplitr(   r)   Úmap)r   r•   r  r#  r   rè   rç   rÙ   ÚudfÚmk_listrh   rù   rs   rL   r   r   r    Útest_unstack_nan_index1ò  s(    ýÿ$z,TestDataFrameReshape.test_unstack_nan_index1©Ú1stÚ2ndÚ3rdrÈ   Ú4thÚ5thc                    s¢  dd„ ‰ t dgd tjgd  dgd  dgd  d	gd  d
gd  dgd dgd  tjgd  dgd  tjgd  dgd  tjgd  g d¢dœƒ}|j‡ fdd„dd�|j‡ fdd„dd� |d< |d< | t|ƒ¡}|j|d�}| ¡ j 	¡ dt
|ƒ k�sJ ‚dd„ }||  ¡ j ¡ \}}	t||	ƒD ]f\}
}t|| j|
|f  d¡ƒ}||| j|
 ƒ||| j| ƒ }ttˆ |ƒƒ}||k�s6J ‚�q6d S )Nc                 S   s   | | krdn| }|d›S r  r   r!  r   r   r    r#    s    zATestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.castr�   r"   r?   r#   r&   rz   r�   r$   r6   rO   rC   r3   r5   )éC   é'   é5   éH   é9   éP   é   rö   ró   r­   é;   é2   é>   rA  éL   é4   é   r<  é<   é3   r4  c                    s   d  tˆ | ƒ¡S )Nr)  )Újoinr0  ©Úr©r#  r   r    r(  B  ru   zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>r%   rï   c                    s   d  tˆ | jd d d… ƒ¡S )Nr)  rD   )rI  r0  ræ   rJ  rL  r   r    r(  C  ru   r8  r9  r°   c                 S   s   t | tƒrt| ƒS | gS r¤   r%  r'  r   r   r    r(  I  ru   r)  )r   r   rË   ÚapplyrT   re   r   r*  rm   r+  r8   r,  r-  r.  ræ   r/  r(   r)   r0  )r   r•   r  rÈ   r   rÙ   r1  r2  rh   rù   rs   rL   rè   rç   r   rL  r    Útest_unstack_nan_index_repeats  sT    
ÿþýüûÿ
þý
üû
úòÿ)þ $z3TestDataFrameReshape.test_unstack_nan_index_repeatsc              	   C   sr  t tdƒtdƒtdƒdœƒ}tj|jd< | ddg¡ d¡}ddd	d
tjtjtjtjgtjtjtjtjddddgg}tt	tt
|Ž ƒƒ}ttjdd	d
ddddgdd�}tdgddggddgdd	ggd dgd�}t |||d�}t ||¡ t tdƒttdƒƒd
 tdƒdœƒ}tj|jd< | ddg¡ d¡}d
tjgddgd	dgtjdgddgg}tdgddggddgdd	ggd dgd�}ttjdd	d
dgdd�}t |||d�}t ||¡ t tdƒttdƒƒd
 tdƒdœƒ}tj|jd< | ddg¡ d¡}dtjgddgd	dgd
dgtjdgg}tdgddggddgdd	ggd dgd�}ttjdd	d
dgdd�}t |||d�}t ||¡ d S )NZaaaabbbbr_   rì   ©r"   r%   rb   rc   r   r"   r%   r&   r3   r?   r]   r^   r’   r˜   r#   r$   r×   r“   )r&   r%   )r   re   r+   r   r7   ræ   rT   r   rË   r0  r-  r   r   r   r   )r   r   rè   Úvalsr•   rù   rç   r   r   r    Útest_unstack_nan_index2Q  sB    þ ÿ$& ÿ$& ÿz,TestDataFrameReshape.test_unstack_nan_index2c              	   C   sö   t tdƒtddd� ¡ d t d¡dœƒ}tj|jd< | d	d
g¡ 	¡ }t 
ddddtjdgtjdddddgg¡}tddgd	d�}tdgtddd�gg d¢g d¢gd d
gd�}t |||d�}|ræ|jg d¢ }||  |d j¡||< t ||¡ d S )NZ
aaaaabbbbbrj   r?   rk   r&   râ   rì   rO  rb   rc   r"   r   r%   r3   r]   r^   r_   r‹   r#   r$   r’   r˜   )r   r   r   r   r   r   )rD   r   r%   r&   r"   r3   r×   r“   )r%   r&   r"   r?   )r   re   r   Útolistr   r   r7   ræ   rT   r   rÊ   rË   r   r   r)   rV   rA   r   r   )r   r;   r   rè   rP  r•   rù   rç   r   r   r    Útest_unstack_nan_index3|  s(    ýÿ*ýz,TestDataFrameReshape.test_unstack_nan_index3c                 C   s(  dt jt jdgddt jdgddt jdgg d¢g d¢g d	¢g}t|g d
¢g d¢d�}| ¡  g d¢¡ ¡ }t jt jdt jdgddt jdt jgg}tddgdggddgddggddgd�}tdgg d¢gg d¢g d¢gd dgd�}t|||d�}t ||¡ |j	dd …  ¡  g d¢¡}t | ¡ |¡ d S )NÚHgi¼ç�(ÚUr	  ÚPbg¢	VÍZ§Ý>)ÚSnçº@¹ÕÂø>çÌ]KÈ=‹?é)=‘()ÚAgr	  rY  rZ  )rT  ça2U0*©#¿rY  rZ  )ÚagentÚchangeÚdosageÚs_id)ioC  épC  iqC  irC  isC  itC  r“   )r`  r_  r]  r\  rX  rZ  rY  r   r%   rD   r`  r_  r×   r^  )r[  rT  rV  rW  rU  )r   r   r   r   r   ©r   r%   r&   r"   r3   r]  ra  )
r   rË   r   r   rT   r   r   r   r   rX   )r   rP  r   rè   r•   rù   rç   r   r   r    Útest_unstack_nan_index4˜  s<    úýþýýz,TestDataFrameReshape.test_unstack_nan_index4c                 C   s  t g d¢tdddd�dt d¡ tj d¡d  d¡d	œƒ}|d
 t d¡ |d< tj	 |j
d< |j
d< tj	 |j
d< |j
d< | g d¢¡ d
dg¡}| ¡ j ¡ dt|ƒ ks´J ‚dD ]F}| ¡ D ]8\}}|d ||d
 |d ff}|| |j
| ksÄJ ‚qÄq¸d S )N)r%   r&   r%   r&   r%   r&   z
2014-02-01r]   rŸ   )rl   Úfreqéd   râ   r&   )r5  r6  r  r  r6  z
2014-02-02r7  )r%   r6  )r"   r6  )r%   r7  )r3   r7  r4  r  r5  )r   r   r   r   r§   rµ   Úroundrn   r¨   rË   rX   rT   r   r*  rm   r+  r8   Ziterrows)r   r   rè   rÈ   rÞ   rK  rZ   r   r   r    Útest_unstack_nan_index5Á  s     üÿ	z,TestDataFrameReshape.test_unstack_nan_index5c                 C   sr   t dddƒ}tg d¢t |ddfg¡d�}| ¡ }t ddg¡}t |dfg¡}tg d¢||d	�}t ||¡ d S )
NiÞ  r%   rà   rb   rc   r¯   rí   )rc   r'   )r   r   r   rR   r   r,   r   r   )r   Útr   r/   ZeidxZecolsr0   r   r   r    Ú%test_stack_datetime_column_multiIndexØ  s    z:TestDataFrameReshape.test_stack_datetime_column_multiIndexc                 C   sH  dd„ }t jg d¢ddgd�}g d¢g d¢g d	¢g d
¢g d¢g d¢ddgddgddgdgdgdgfD ]0}||| ƒ t|ƒdkrd| ¡  ||| ƒ qdtt d¡ dd¡|g d¢ d�}|jdd�}tddgdtj	gddgdtj	ggt ddgg d¢gg d¢g d¢gd dgd�t
ddgdd�d�}|d  |jd ¡|d< t ||¡ d S ) Nc                 S   sÜ   t t dt| ƒ ¡ dt| ƒ¡| d�}dddddgddgfD ]š}|j|dd�}t|tƒrŠ|j|dd�}t|tƒr~t	 
||¡ nt	 ||¡ tj|j ¡ |jjd	�|_|j|dd�}t|tƒrÊt	 
||¡ q<t	 ||¡ q<d S )
Nr"   r¯   rD   r   r%   F)r±   ÚdropnaTrŠ   )r   r   r   r8   r   r   rÜ   Úintr	   r   r-   r   r   rR   r)   Úto_numpyrU   )Z
multiindexr   r±   r/   r0   r   r   r    Ú_test_stack_with_multiindexå  s$    þ

ÿ
zWTestDataFrameReshape.test_stack_partial_multiIndex.<locals>._test_stack_with_multiindex))rc   r5   )rc   rC   )rb   r6   )r˜   r5   )r˜   ÚuÚUpperÚLowerrŠ   rb  rí   )r   r%   r&   r3   rN   r‰   )r&   r"   r3   r   r%   r&   r"   r3   r]   )r   r%   r"   r¯   F©rj  r?   )rn  r5   r6   rC   rÒ   )r%   r"   r%   r"   r×   rc   r˜   r’   r'   )r   rR   r8   Úreverser   r   r   r   r   rË   r   rV   rä   r   r   )r   rm  Zfull_multiindexZmultiindex_columnsr   r/   r0   r   r   r    Útest_stack_partial_multiIndexã  sF    þô"ýù	z2TestDataFrameReshape.test_stack_partial_multiIndexÚorderedFTÚlabelsZyxzZyxyc                 C   s^   t j|tdƒ|d�}tg d¢g|d�}| ¡ }t |j|g¡}tg d¢|d�}t	 
||¡ d S )Nr`   ©r~   rt  )râ   ró   rô   r¯   r*   )rn   ÚCategoricalIndexre   r   r   r   r,   r(   r	   r   r-   )r   rt  ru  Úcidxr   r/   rÝ   r0   r   r   r    Ú%test_stack_preserve_categorical_dtype%  s    z:TestDataFrameReshape.test_stack_preserve_categorical_dtypezlabels,datar`   )râ   ró   rô   rñ   rF  rõ   Zzyx)rF  rõ   rô   rñ   râ   ró   c                 C   s�   t j|t|ƒ|d�}t jddg|d�}t ||g¡}tt|ƒg|d�}| ddg¡}t jt|ƒ|d�}	t|t dg|	|g¡d�}
t 	||
¡ d S )	Nrv  rn  Úv)rt  r¯   r   r%   r*   )
rn   rw  r.  r   r,   r   r   r	   r   r-   )r   rt  ru  rY   rx  Zcidx2rÝ   r   r/   Zs_cidxr0   r   r   r    Ú+test_stack_multi_preserve_categorical_dtype4  s    
z@TestDataFrameReshape.test_stack_multi_preserve_categorical_dtypec                 C   s`   t  g d¢¡}t||dœƒ}| ¡ }t g d¢ddgg¡}tt  g d¢¡|d�}t ||¡ d S )N)r#   r#   r$   rz   ©rb   rc   rí   rb   rc   )r#   r#   r#   r#   r$   r$   rz   rz   r*   )	rn   r‚   r   r   r   r,   r	   r   r-   )r   r¸   r   r/   r(   r0   r   r   r    Ú,test_stack_preserve_categorical_dtype_valuesI  s    ÿzATestDataFrameReshape.test_stack_preserve_categorical_dtype_valueszindex, columnsrÒ   r%   r#   r$   )r   r   r&   r"   rí   c           	      C   st   t ||d� d¡}| ¡ }t |j ¡ ¡}t | ¡ ||jd�}t 	||¡ t
 |jj¡}t
 |j¡}t ||¡ d S )Nr'   r%   )r   Úfillnar   r   rR   r(   rl  r)   r   r   r   ZasarrayrØ   Zassert_numpy_array_equal)	r   r(   r)   r   r   Ú	new_indexr0   Zstacked_codesZexpected_codesr   r   r    Ú)test_stack_multi_columns_non_unique_indexT  s    
ÿz>TestDataFrameReshape.test_stack_multi_columns_non_unique_indexr±   r   c                 C   s¨   t jg d¢ddgd�}ttjg d¢dd�t g d¢¡d	œ|d
�}|j|d�}| t¡j|d�}t	|j
jgd |jjgd  |jd
�}t |j|¡ t | t¡|¡ d S )N))rb   r   ©rb   r%   )rc   r%   r#   r$   rŠ   )r   r%   NZInt64r@   rK   r|  r*   r°   r&   )r   rR   r   rn   rÊ   r‚   r   rV   rÌ   r	   rb   rA   rc   r)   r   r-   rä   r   )r   r±   r(   r   r/   r0   Zexpected_dtypesr   r   r    Ú"test_unstack_mixed_extension_typesi  s    þûÿz7TestDataFrameReshape.test_unstack_mixed_extension_typesÚbazc                 C   s˜   t jdgddggddgd�}tddgdd	gg|d
dgd�}d|j_tg d¢gt jg d¢ddgd�d�}d|j_| ¡ jdd�j	d|d�}t
 ||¡ d S )Nr   r�   rz   r   rƒ  rŠ   r&   r%   r"   rc   rb   r'   r   )r"   r%   r&   r   ))rz   rb   )rz   rc   )r�   rb   )r�   rc   r¯   rï   )rð   r±   )r   r,   r   r)   rP   rR   r(   r   Ú	swaplevelÚ
sort_indexr   r   )r   r±   rÙ   r   r0   r/   r   r   r    Ú test_unstack_swaplevel_sortlevel}  s    ÿþz5TestDataFrameReshape.test_unstack_swaplevel_sortlevel)6Ú__name__Ú
__module__Ú__qualname__r!   r1   r>   r\   ri   rp   rw   rx   r‡   r–   rƒ   ÚmarkÚparametrizer   rR   r   r™   rª   r¶   rÅ   rÆ   rÏ   rÚ   rß   ré   rë   rú   rü   rÿ   r  r  r  re   r+   r3  r³   ÚpermutationsrN  rQ  rS  rc  rg  ri  rs  ry  r{  r}  r,   r€  r‚  r†  r   r   r   r    r      sª   /%#ÿþú
õüôþ"
*,)H
+
=+)Bþþýþ

r   c                  C   s”   t g d¢dd�} t g d¢¡| _|  ¡ }tdtjdgddtjgdœtd	ƒd
�}t	 
||¡ | jdd�}tg d¢g d¢dœtd	ƒd
�}t	 
||¡ d S )Nry   rÌ   r@   rB   r#   r$   rz   rG   r`   r*   r�   rE   )r#   r�   r#   )r$   rz   r�   )r	   r   rR   r(   r   r   r   rË   re   r   r   )rY   r/   r0   r   r   r    Útest_unstack_fill_frame_object�  s    ÿÿÿr�  c                  C   sš   t tjddd�gdgdgdgdœg d¢d�} |  ddg¡ ¡ }t tjddd�dggtdgdd	�td
dgdggddgddggd dgd�d�}t ||¡ d S )Nz2017-08-27 01:00:00.709949+0000ÚUTC)Útzr#   r$   rz   )Ú	timestampr#   r$   rz   r¯   r’   r�  r   r%   r×   r'   )	r   rn   r¨   rT   r   r   r   r   r   )r   r/   r0   r   r   r    Ú"test_unstack_timezone_aware_values¦  s&    üù	ýý	r‘  c                  C   sf   t ddddd�} td| ig d¢d�}| ¡ }t| tg d¢dggg d	¢g d
¢gd�d�}t ||¡ d S )NrŸ   Z20180101Z20180103zAmerica/New_York)rd  ÚstartÚendr�  rb   rˆ   r*   rN   )r   r   r   rÛ   )r   r   r   r	   r   r   r-   )Útsr   r/   r0   r   r   r    Ú test_stack_timezone_aware_values¾  s     þr•  rj  TFc                 C   s@   t tg g gg g gƒtjd�}ttjd�j| d�}t ||¡ d S )NrI   r@   rq  )r	   r   r   rg   r   r   r   r-   )rj  r0   r/   r   r   r    Útest_stack_empty_frameÊ  s    r–  rF   c                 C   s8   t tjd�j| d�j|d�}t tjd�}t ||¡ d S )Nr@   rq  rE   )r   r   rW   r   r   r   r   )rj  rF   r/   r0   r   r   r    Útest_stack_unstack_empty_frameÒ  s    ÿr—  c                  C   sF   d} t jt| d��  ttjd� ¡  W d   ƒ n1 s80    Y  d S )Nz'index must be a MultiIndex to unstack.*r   r@   )rƒ   r„   rÁ   r	   r   rW   r   )r†   r   r   r    Ú test_unstack_single_index_seriesÝ  s    r˜  c                  C   s¸   t ddgddgddgddgdd	gd
œƒ} |  g d¢¡} | jdgdd�} | jddd�jddd�}| jddgdd�}t g d¢g d¢gtddgdd�tjg d¢g d¢d�d�}t ||¡ d S )NZAliceZBobç      #@r_   FTr   ÚfemaleÚmale)rP   ÚscoreÚemployedÚkidsÚgender)rP   r�  rž  rŸ  rŸ  rE   r�  rž  )r™  r	  r	  r	  )r	  r	  r	  g       @rP   r’   ))rœ  rš  Fr   )rœ  rš  Tr   )rœ  r›  Fr   )rœ  r›  Tr   )NrŸ  r�  rž  rŠ   r'   )r   rT   r   r   r   rR   r   r   )r   r0   r/   r   r   r    Útest_unstacking_multi_index_dfä  s*    ûÿ	ùýr   c                  C   s‚   t jddgddgd�} tg d¢g| d�}| d¡}tdd	gdd
�}t jddgd dgd�}tddgddgg||d�}t ||¡ d S )Nr4   )r6   rC   r#   rŠ   ©r%   r%   r%   r%   r¯   r   r6   rC   r’   )r   r5   )r   r6   r%   r'   )r   r,   r   r   r   rR   r   r   )r)   r   r/   Znew_columnsr  r0   r   r   r    Ú2test_stack_positional_level_duplicate_column_names  s    
r¢  c                    sœ   t  tdƒg d¢g¡}ttj dd¡|d�‰ ˆ d  tj¡ˆ d< | s^t	dd„ ˆ j
jD ƒƒs^J ‚ˆ  ¡ }tj‡ fd	d
„tdƒD ƒtdƒdd�}t ||¡ d S )Nr?   rì   rõ   r3   r*   r%   c                 s   s   | ]}|j j V  qd S r¤   )Zmgr_locsZis_slice_like©rr   r5   r   r   r    Ú	<genexpr>  ru   z5test_unstack_non_slice_like_blocks.<locals>.<genexpr>c                    s   g | ]}ˆ |   ¡ ‘qS r   )r   )rr   Ún©r   r   r    rt     ru   z6test_unstack_non_slice_like_blocks.<locals>.<listcomp>)Úkeysrð   )r   r,   r+   r   r   r§   rµ   rV   rW   Úanyr9   r:   r   rn   Úconcatr   r   )r;   rÙ   r=   r0   r   r¦  r    Ú"test_unstack_non_slice_like_blocks  s    &rª  c                   @   s¨  e Zd Zdd„ Zej dg d¢g d¢gg d¢dg d¢fg d	¢g d
¢gg d¢dg d¢fg d	¢g d¢gg d¢dg d¢fg¡dd„ ƒZdd„ Zdd„ Z	ej de
dƒg d¢eddgg d¢ge e d¡ d¡d¡e e d¡d¡gd�ge
dƒg d¢eddgddgge e d¡ d¡d¡e g d ¢d¡gd�ge d!¡g d¢eddgd"dgddgge e d¡ d¡d¡e g d#¢g d$¢¡e g d ¢d¡gd�gg¡d%d&„ ƒZd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zej d/d0d1g¡d2d3„ ƒZd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Zd<d=„ Zd>d?„ Zd@dA„ ZdBdC„ ZdDdE„ ZdFdG„ Z dHdI„ Z!dJdK„ Z"ejj#dLdM„ ƒZ$dNdO„ Z%dPdQ„ Z&dRdS„ Z'dTdU„ Z(dVdW„ Z)dXdY„ Z*dZd[„ Z+d\d]„ Z,d^d_„ Z-d`da„ Z.dbdc„ Z/ddde„ Z0dS )fÚTestStackUnstackMultiLevelc                 C   s6   |}|  ¡ }|  ¡  | t¡  ¡  | tj¡  ¡  d S r¤   )r   rV   rk  r   rf   ©r   Ú/multiindex_year_month_day_dataframe_random_dataÚymdr   r   r   r    Útest_unstack   s
    z'TestStackUnstackMultiLevel.test_unstackz5result_rows,result_columns,index_product,expected_row)r%   r%   NNç      >@N)r&   r&   NNr°  N)Úix1Úix2Úcol1Úcol2Úcol3Zcol4r&   )NNr°  N)r%   r%   NNr°  )r&   r&   NNr°  )r±  r²  r³  r´  rµ  )NNr°  )r&   NNNr°  Nc                 C   sp   t ||d� ddg¡}|jdd…  d¡}t |gtj|dd … |ggd dgd�tdgdd�d�}t ||¡ d S )	Nr¯   r±  r²  r%   r&   rŠ   r’   r“   )	r   rT   ræ   r   r   r,   r   r   r   )r   Zresult_rowsZresult_columnsZindex_productZexpected_rowr/   r0   r   r   r    Útest_unstack_partial-  s    ÿÿûz/TestStackUnstackMultiLevel.test_unstack_partialc                 C   sN   t  g d¢¡}ttj d¡|d�}| ddg¡}|jddd�}t 	||¡ d S )N))r   r   r   )r   r   r   )r%   rƒ  r%   )r%   Zquxr%   r3   r*   r%   r&   r÷   ©rð   Úhow)
r   rR   r	   r   r§   rµ   r   rj  r   r   )r   r(   r[   r   r0   r   r   r    Ú&test_unstack_multiple_no_empty_columnsX  s    ÿzATestStackUnstackMultiLevel.test_unstack_multiple_no_empty_columnsc           
      C   sî  |}|  ¡ }| ¡ }t ||¡ |jdd�}|  d¡}| ¡ }t |jdd�|¡ |d d d… }|  d¡}| ¡  dd¡}t |jdd�|¡ | dd¡}|  d¡jdddd�}| d¡ dd¡}t |jdd�|¡ |  ¡ }|jddd�}| ¡ }t ||¡ |  d¡  d¡}| d¡}|  ¡ }t ||¡ | d¡}|  d¡}t ||¡ | d¡}| ¡   d¡  d¡}t ||¡ |  d¡jd d …d d d	…f }| ¡  ¡ }| ¡ }	t ||	 |j	¡¡ |  d¡ d
¡}|  d¡ d¡}t 
||¡ d S )Nr&   r°   r   rD   r%   rï   F)rð   Z	ascendingr"   r²   )r   r   r   r   r…  r„  rX   r-   Úreindexr(   Zassert_equal)
r   r­  r®  r   Ú	restackedZunlexsortedr/   r0   r   Zymd_stackedr   r   r    Ú
test_stackc  sJ    





z%TestStackUnstackMultiLevel.test_stackzidx, columns, exp_idxÚababr4  r#   r$   r"   r3   rÛ   )r5  r6  r5  r5  r6  )r   r%   r   ))r#   r&   )r$   r%   )r#   r%   )r$   r&   r%   )r%   r   r%   )r"   r]   r"   c           	      C   sp   t t d¡ dd¡||d�}| ¡ }tt d¡|d�}t ||¡ |jj	du sRJ ‚|j|j }}t 
||¡ d S )Nrô   r3   r"   r'   r*   F)r   r   r   r   r   r	   r   r-   r(   Z	is_uniqueÚassert_index_equal)	r   r•   r)   Zexp_idxr   r/   r0   ÚliÚrir   r   r    Útest_stack_duplicate_index›  s    &ýz5TestStackUnstackMultiLevel.test_stack_duplicate_indexc                 C   s>   d}t  t|ƒ¡ g d¢¡}| d¡}| ¡ }t ||¡ d S )Na  day,time,smoker,sum,len
Fri,Dinner,No,8.25,3.
Fri,Dinner,Yes,27.03,9
Fri,Lunch,No,3.0,1
Fri,Lunch,Yes,13.68,6
Sat,Dinner,No,139.63,45
Sat,Dinner,Yes,120.77,42
Sun,Dinner,No,180.57,57
Sun,Dinner,Yes,66.82,19
Thu,Dinner,No,3.0,1
Thu,Lunch,No,117.32,44
Thu,Lunch,Yes,51.51,17)ÚdayÚtimeZsmokerr&   )rn   Zread_csvr   rT   r   r   r   r   )r   rY   r   r/   Úreconsr   r   r    Útest_unstack_odd_failureÍ  s
    
z3TestStackUnstackMultiLevel.test_unstack_odd_failurec                 C   sr   |}|j }d|d< |jddd�}| ¡ }|d  ¡  ¡ }tj|d |dd� |jd u sZJ ‚|d jtjksnJ ‚d S )Nr   )r   Úfourr%   )r±   rð   FrÀ   r   )	r   r…  r   r   r-   rP   rA   r   Zfloat_)r   Ú multiindex_dataframe_random_dataÚframer   r   r/   r   r   r    Útest_stack_mixed_dtypeã  s    z1TestStackUnstackMultiLevel.test_stack_mixed_dtypec                 C   sl   t g d¢g d¢g d¢g d¢t d¡dœƒ}| g d¢¡ t¡}| ¡ }| ¡ }t 	|| 
|j¡ t¡¡ d S )N)ÚnaiverÊ  rÊ  ÚactiverË  rË  )r#   r$   r$   r$   r#   r#   )r%   r&   r"   r3   r%   r"   )ÚhirÌ  ÚbyerÍ  rÍ  Zpeaceg      @)r�   r½   Úbarcoderz  Úextra)r�   r½   rÎ  rz  )r   r   r   ÚgroupbyrM  r8   r   r   r   r-   rº  r(   rV   rS   )r   r   r/   r   r»  r   r   r    Útest_unstack_bugð  s    ûÿ
z+TestStackUnstackMultiLevel.test_unstack_bugc                 C   sP   |}|  ¡ }|jjdksJ ‚|jjddgks0J ‚| ¡ }|jj|jjksLJ ‚d S )NrÔ   r½   rÕ   )r   r(   rP   r)   rU   r   )r   rÇ  rÈ  r   r»  r   r   r    Ú!test_stack_unstack_preserve_names  s    z<TestStackUnstackMultiLevel.test_stack_unstack_preserve_namesÚmethodr   r   c                 C   s¤   |}|j d }tjtdd�� t||ƒdƒ W d   ƒ n1 s@0    Y  |dkr |jd d …df }tjtdd�� t||ƒdƒ W d   ƒ n1 s–0    Y  d S )Nr   zdoes not match index namer   Zmistaker   r   )rX   rƒ   r„   ÚKeyErrorÚgetattrræ   )r   rÓ  rÇ  rÈ  r   r[   r   r   r    Ú#test_stack_unstack_wrong_level_name  s    
,z>TestStackUnstackMultiLevel.test_stack_unstack_wrong_level_namec                 C   s*   |}|  d¡}|j dd�}t ||¡ d S )NrÕ   r%   r°   r¥   )r   rÇ  rÈ  r/   r0   r   r   r    Útest_unstack_level_name  s    
z2TestStackUnstackMultiLevel.test_unstack_level_namec                 C   sT   |}|  d¡}| d¡}|  ¡  d¡}t ||¡ | d¡}| ¡ }t ||¡ d S )NrÕ   r½   r   )r   r   r   r   r-   )r   rÇ  rÈ  r   r/   r0   r   r   r    Útest_stack_level_name%  s    


z0TestStackUnstackMultiLevel.test_stack_level_namec                 C   s2  |}|  ddg¡}|  d¡  d¡}t ||¡ |jj|jjksBJ ‚|d }|  ddg¡}t ||d ¡ | ddg¡}| dd¡ dd¡}|jdd�}t ||¡ |jj|jjks¶J ‚|  ddg¡}|  d¡  d¡j	ddd	�}t ||¡ |  ddg¡}|  d¡  d¡j	ddd	�}t ||j
d d …|jf ¡ d S )
NÚyearÚmonthrb   r   r%   r&   r°   r÷   r·  )r   r   r   r)   rU   r   r„  r…  r(   rj  rX   )r   r­  r®  r   r0   r[   Zs_unstackedr»  r   r   r    Útest_stack_unstack_multiple1  s&    z6TestStackUnstackMultiLevel.test_stack_unstack_multiplec                 C   sR   |}|  ddg¡}tjtdd�� | ddg¡ W d   ƒ n1 sD0    Y  d S )NrÙ  rÚ  zlevel should containr   r   )r   rƒ   r„   rÁ   r   r¬  r   r   r    Útest_stack_names_and_numbersP  s    z7TestStackUnstackMultiLevel.test_stack_names_and_numbersc                 C   sŽ   |}|  ddg¡}tjtdd�� | ddg¡ W d   ƒ n1 sD0    Y  tjtdd�� | dd	g¡ W d   ƒ n1 s€0    Y  d S )
NrÙ  rÚ  zToo many levelsr   r&   r"   znot a valid level numberr  r  )r   rƒ   r„   Ú
IndexErrorr   r¬  r   r   r    Ú!test_stack_multiple_out_of_bounds[  s    ,z<TestStackUnstackMultiLevel.test_stack_multiple_out_of_boundsc              	   C   sÐ  t jg d¢ddd�}tddgd dd	�}g d
¢}t ||g¡}t||d�}| ¡ }|jdd�}|jdd�}t jg d¢ddd�}	tg d¢g d¢dœ|	ddgd�}
d|
j_	t
 ||
¡ t
 ||
¡ t
 ||
j¡ t jg d¢ddd�}t jg d¢ddd�}t ||g¡}t||d�}| ¡ }|jdd�}|jdd�}t jg d¢ddd�}	t jg d¢ddd�}ttjtjtjtjddgtjtjddtjtjgddtjtjtjtjgg|	|d�}
t
 ||
¡ t
 ||
¡ t
 ||
j¡ d S )N)ú2013-01rß  ú2013-02rà  ú2013-03rá  ÚMZperiod©rd  rP   rb   rc   r"   Ústrr’   ©r%   r&   r"   r3   r?   r]   r*   r%   r°   r   )rß  rà  rá  )r%   r"   r?   )r&   r3   r]   r|  r'   Úperiod1)ú2013-12ú2013-11ú2013-10ú2013-09ú2013-08ú2013-07Úperiod2)rì  rë  rê  ré  rè  rç  r&   r3   r]   r?   )rn   ÚPeriodIndexr   r   rÉ   r	   r   r   r)   rP   r   r   r   r   rË   )r   Úidx1Úidx2Úvaluer•   r[   Úresult1Úresult2Úresult3Ze_idxr0   Úe_colsr   r   r    Útest_unstack_period_seriesh  sp    ý
ÿÿýý
ÿýýù
z5TestStackUnstackMultiLevel.test_unstack_period_seriesc                 C   sJ  t jg d¢ddd�}t jg d¢ddd�}g d¢g d¢d	œ}t ||g¡}t||d
�}| ¡ }|jdd�}|jdd�}t jddgddd�}	t jg d¢ddd�}
t d ¡ |
g¡}tg d¢g d¢g|	|d�}t ||¡ t ||¡ t jg d¢ddd�}	t jg d¢ddd�}
t d ¡ |	g¡}tg d¢g d¢g d¢g|
|d�}t ||¡ d S )N)ú2014-01ú2014-02rø  rø  r÷  r÷  râ  ræ  rã  )rç  rç  rø  ré  ré  rø  rí  rå  )r]   r?   r3   r"   r&   r%   r|  r*   r%   r°   r   r÷  rø  )ré  rç  rø  ré  rç  rø  zA A A B B B)r?   r%   r]   r&   r]   r%   )r3   r&   r"   r"   r?   r3   r'   )r÷  rø  r÷  rø  )ré  rç  rø  zA A B B)r?   r3   r&   r"   )r%   r&   r]   r?   )r]   r"   r%   r3   )	rn   rî  r   rÉ   r   r   r/  r   r   )r   rï  rð  rñ  r•   r   rò  ró  rô  Ze_1Ze_2rõ  r0   r   r   r    Útest_unstack_period_frame­  sN    ýýýÿ
ÿ
ÿÿz4TestStackUnstackMultiLevel.test_unstack_period_framec                 C   sÐ   dgd dgd  }dgd dgd  }t  g d¢d ¡}tj ddd	¡}t||||d
œƒ}| ddg¡}d|j_| 	d¡}| 
d¡ ¡ }| d¡}	|jd d …dgf  
d¡ ¡  d¡}
d|
j_t |	|
¡ d S )Nr%   r"   r&   r#   r$   )z
2013-01-03z
2013-01-04z
2013-01-05r   re  r]   )ÚIDÚNAMEÚDATEÚVAR1rü  rú  ZParamszW-THUrý  )rn   Úto_datetimer   r§   Úrandintr   rT   r)   rP   r   ZresampleÚmeanr   rX   r   r   )r   Zid_colrP   ÚdateZvar1r   ZmultiZunstZdownrÍ   rÎ   r   r   r    Útest_stack_multiple_bugÜ  s    

$z2TestStackUnstackMultiLevel.test_stack_multiple_bugc                 C   sv   t ddgddgddgdœƒ}| ddg¡}| ¡ jd	d
�}t|ƒt| ¡ ƒksRJ ‚| ¡ jdd
�}t || ¡ ¡ d S )NÚa1Úa2Úb1Úb2r%   rì   rb   rc   Frq  T)r   rT   r   r   r8   rj  r   r   )r   r   r   r   r   r    Útest_stack_dropnaî  s    z,TestStackUnstackMultiLevel.test_stack_dropnac                 C   sT   t g d¢g d¢g d¢gg d¢g d¢gd�}g d¢|j_dd	g|j_| d
dg¡ 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�   r�   r$   rz   )r   r(   rU   r)   r   r  r   r   r    Ú"test_unstack_multiple_hierarchicalù  s    ýú	z=TestStackUnstackMultiLevel.test_unstack_multiple_hierarchicalc              	   C   s~   d}t tjjd|d�tjjd|d�tjjdd|d�tjjdd|d�tjjd	|d�tj |¡d
œƒ}| g d¢¡}| d¡ d S )Néè  re  )Úsizei,  iùÿÿÿr^   iíÿÿÿé   i¸  )rb   rc   r˜   rŸ   r    r¡   )rb   rc   r˜   rŸ   r    r    )r   r   r§   rÿ  rµ   rT   r   )r   ZNUM_ROWSr   Zidfr   r   r    Útest_unstack_sparse_keyspace	  s    
úÿz7TestStackUnstackMultiLevel.test_unstack_sparse_keyspacec                 C   sr   ddgg d¢g}g d¢g d¢g}t ||ƒ}ttj dd¡|d�}| ¡ }t|jƒdksZJ ‚| ¡ }t	 
||¡ d S )	Nr   r%   rí   rÒ   rî   r3   r&   r*   )r   r   r   r§   rµ   r   r8   r)   r   r   r   )r   r.   rØ   r(   r   r/   rÄ  r   r   r    Útest_unstack_unobserved_keys  s    
z7TestStackUnstackMultiLevel.test_unstack_unobserved_keysc              
   C   sÚ   G dd„ dt jƒ}| ¡ �¬}| t d|¡ ttj dd¡t d¡t d¡gd�}d}t	j
t|d��F tjtd	d�� | ¡  W d   ƒ n1 s�0    Y  W d   ƒ n1 s®0    Y  W d   ƒ n1 sÌ0    Y  d S )
Nc                       s   e Zd Z‡ fdd„Z‡  ZS )zaTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.<locals>.MockUnstackerc                    s   t ƒ j|i |¤Ž tdƒ‚d S )NúDon't compute final result.)ÚsuperÚ__init__Ú	Exception)r   ÚargsÚkwargs©Ú	__class__r   r    r  3  s    zjTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.<locals>.MockUnstacker.__init__)r‡  rˆ  r‰  r  Ú__classcell__r   r   r  r    ÚMockUnstacker2  s   r  Ú
_Unstackeri   r&   r*   z$The following operation may generater   r  )Úreshape_libr  ÚcontextÚsetattrr   r   r§   rµ   r   r   Zassert_produces_warningr   rƒ   r„   r  r   )r   Zmonkeypatchr  Úmr   r†   r   r   r    Ú/test_unstack_number_of_levels_larger_than_int32-  s    
þzJTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32c           
   	   C   sþ   dd„ }dD ]|}t jt  g d¢|¡dd�}|D ]X}t|g d¢g d¢gd	�}t|td
ƒgd�}tdƒD ] }| |¡}||||d| ƒ qdq.qtg d¢g d¢gt tdƒd¡t 	tdƒd¡gd	�}	t|	tdƒt 
dt|	ƒ ¡ dd¡d�}||| d¡ddƒ d S )Nc                    s&   t ‡ ‡‡‡fdd„ˆ jD ƒƒs"J ‚d S )Nc                 3   sB   | ]:}ˆ j D ].}ˆ j||f ˆj||ˆ f|ˆ f kV  qqd S r¤   )r)   rX   )rr   ÚrowrÈ   ©r   Ú
df_stackedZlev0Zlev1r   r    r¤  G  s   
þzsTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels.<locals>.manual_compare_stacked.<locals>.<genexpr>)r÷   r(   r  r   r  r    Úmanual_compare_stackedF  s    þz`TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels.<locals>.manual_compare_stackedr—   rN   r&   r«   rÒ   rÓ   rÛ   r3   )r)   rY   r%   )rb   r˜   rc   )rc   rb   r˜   r"   r?   rD   )r)   r(   rY   r   )r³   r´   rŒ  r   r   r+   r   r   r¬   Útiler   r8   r   )
r   r!  ÚwidthZlevels_possr.   r)   r   Z	stack_levr   rÙ   r   r   r    Ú%test_stack_order_with_unsorted_levelsC  s&    ÿ
þ ÿz@TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levelsc                 C   sæ   t  d¡}t  dd„ |D ƒdd„ |D ƒg¡}t|jddgd�}d|j_d	|i}tj|d
d�}ddg|j_	|j
t|jƒd
d�}| ddg¡ ddg¡}tddgddgddgddgddggg d¢tjddgddgd�d�}t ||¡ d S )Nr?   c                 S   s   g | ]}d |› �‘qS )r$   r   r£  r   r   r    rt   i  ru   zVTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>c                 S   s   g | ]}d |› �‘qS r'  r   r£  r   r   r    rt   j  ru   r$   r#   r¯   rÔ   r5   r%   rï   rÕ   Za0Zb0r  r  r  r  Úa3Zb3Za4Zb4rb  )r#   r5   )r$   r5   rŠ   r'   )r   r   Zvstackr   r   r)   rP   rn   r©  rU   rº  r.  r   r   r   rR   r   r   )r   rm   rY   r   Zsecond_level_dictZmulti_level_dfr/   r0   r   r   r    Ú'test_stack_unstack_unordered_multiindexd  s*    
þÿ ÿýzBTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindexc                 C   s^   |}d|d< d|d< |  d¡}|d jtjks2J ‚|d jtjksFJ ‚|d jtjksZJ ‚d S )	Nr   r    r&   r¡   rÚ  r�  )r    r%   )r¡   r%   )r   rA   r   rg   Zobject_r¬  r   r   r    Útest_unstack_preserve_types}  s    
z6TestStackUnstackMultiLevel.test_unstack_preserve_typesc                 C   sj  t  t  d¡d¡}t  d¡}t|gd ddgg |gd t  d¡ d¡g d�}tt  d¡|d�}| ¡ }|jd	ksxJ ‚| ¡ }t	 
|| |j¡¡ tddgg|gd  t  d¡ d¡g|gd  d�}tt  d¡|d�}| d¡}|jd	ksòJ ‚t|gd
 ddgg |gd
  |gd
 t  d¡ d¡g |gd
  d�}tt  d¡|d�}| d
¡}|jd	k�sfJ ‚d S )Néô  r&   r_   r   r%   rÛ   r	  r*   )r(  r&   r3   )r   r"  r   r   r¬   r	   r   r   r   r   r-   rº  r(   )r   rØ   r±   r(   r[   r/   r   r   r   r    Ú!test_unstack_group_index_overflowŠ  s2    
þþ
$þ
z<TestStackUnstackMultiLevel.test_unstack_group_index_overflowc                 C   sÜ   t g d¢g d¢dgd dœƒ ddg¡}d|d	< |sHt|jjƒd
ksHJ ‚| d¡}|d  d¡|d< t g d¢tjdddggt	ddgddd�t
jg d¢d dgd�d�}|rÌ|d  d¡|d< |d  d¡|d< t ||¡ d S )N)rb   rb   rc   )ÚcaÚcbr+  râ   r"   )r#   r$   rz  r#   r$   r%   Úis_r&   ©r,  r*  r   )ç      $@r.  r›   r›   r.  r	  r›   rb   rc   rÌ   )rA   rP   ))rz  r*  ©rz  r+  r-  ©r,  r+  rŠ   r'   r/  rW   r0  )r   rT   r8   r9   r:   r   r~  r   rË   r   r   rR   rV   r   r   )r   r;   r   r/   r0   r   r   r    Ú+test_unstack_with_missing_int_cast_to_float¯  s2    ýÿú	
þýzFTestStackUnstackMultiLevel.test_unstack_with_missing_int_cast_to_floatc                 C   sª   t g d¢g d¢g d¢g d¢dœƒ}| g d¢¡}g d¢}|jj|dd�|_|jj|d	d�|_| d
¡d  ¡ j}tg d¢g d¢gg d¢g d¢gdd	gd�}t ||¡ d S )Nrà   )r"   r3   r%   r&   r¡  )ÚL1ÚL2ÚL3r5   )r2  r3  r4  )Zn1Zn2Zn3Nr2  )r.   r±   r3  r4  )r5   r%   rí   )r&   r"   r   r%   r×   )	r   rT   r(   Z
set_levelsr   r…  r   r   r¾  )r   r©   Z
new_levelsr/   r0   r   r   r    Útest_unstack_with_level_has_nanÏ  s$    üÿýz:TestStackUnstackMultiLevel.test_unstack_with_level_has_nanc                 C   sx   t t ddg¡t g d¢¡d�}| d¡}t dtjtjgtjddgtjddggtg d¢ƒtg d¢ƒd	�}t 	||¡ d S )
Nr%   r?   ))r   NN)r   r&   r   )r   r&   r%   )r   r"   r   )r   r"   r%   r¯   r&   r	  )©r   N)r   r   ©r   r%   )r6  )r   r&   )r   r"   r'   )
r   r   rå   r   rR   r   rË   r   r   r   r  r   r   r    Ú$test_stack_nan_in_multiindex_columnsç  s    ÿþ
"

ýz?TestStackUnstackMultiLevel.test_stack_nan_in_multiindex_columnsc                 C   sî   t  dgd dgd  t tdƒ¡t tdƒ¡g¡}tt d¡ dd¡|d�}| 	d	dg¡}td
tj
gtj
dgd	tj
gtj
dgdtj
gtj
dgdtj
gtj
dggddgt  d
gd d	gd  t tdƒ¡t tdƒ¡g¡d�}t ||¡ d S )Nrb   r&   rc   r½  Zccddr_   r3   r¯   r%   r   r"   r]   r?   r^   ZaabbaabbZcdcdcdcdr“   )r   rÉ   rn   r‚   re   r   r   r   r   r   rË   r   r   )r   rÝ   r   r/   r0   r   r   r    Ú"test_multi_level_stack_categoricalý  s6    ýÿø
ýÿôz=TestStackUnstackMultiLevel.test_multi_level_stack_categoricalc                 C   s¸   t t d¡ dd¡tjdtjfdgddgd�tdd	gd
d�tjd�}| 	¡ }t dtjgtjd	gdtjgtjdggtddgdd�tjdtjfdd	tjfdgd
dgd�d�}t
 ||¡ d S )Nr3   r&   rb   rd   ro  rp  rŠ   r   r%   ÚNumr’   ©r)   r(   rA   r	  g       @r2   rc   )r   r$   )r%   r$   r“   )r   r   r   r   r   rR   rË   r   rg   r   r   r   )r   Zdf_nanr/   r0   r   r   r    Útest_stack_nan_level  s"    ÿú"ÿýz/TestStackUnstackMultiLevel.test_stack_nan_levelc                 C   sŠ   t  dgddgg¡}tdt ddg¡i|d�}| ¡ }ttjdgddgd�tjdgddgd�d	œdgd�}t  d
dg¡|_t 	||¡ d S )Nrb   r   r%   r¸   r#   r$   r*   r}   r7  )r¸   r   )r¸   r%   )
r   r,   r   rn   r‚   r   rR   r)   r   r   r”   r   r   r    Ú test_unstack_categorical_columns2  s    þûz;TestStackUnstackMultiLevel.test_unstack_categorical_columnsc           	      C   sº   ddg}ddg}g d¢}t j|||gg d¢d�}ttt|ƒƒƒ}t||dgd	�}| d
dg¡}|j d¡|_d|j	d d …df< | 
d
dg¡ ¡ }|jdd� 
d
dg¡ ¡ }t ||¡ d S )NZITAZFRAÚA1ÚA2)ZCRTZDBTÚNET)ÚPAEÚVARÚTYPrŠ   ZVALUE)rY   r(   r)   rB  rC  r   i'  )ZA0r@  r%   rï   )r   r,   re   r+   r8   r   r   r)   rý   rX   r   r…  r   r-   )	r   rA  rB  rC  rš   ÚVZDFr/   r0   r   r   r    Útest_stack_unsortedA  s    z.TestStackUnstackMultiLevel.test_stack_unsortedc                 C   sÜ   t jddgddggddgd�}tg d¢d	d
�}t g d¢g d¢g d¢g¡}t|||t ¡ d�}| d¡}| 	tj
¡ d¡ 	t ¡ ¡}t ||¡ ||jd   	t ¡ ¡||jd < | d¡}| 	t¡ d¡}t ||¡ d S )NZ54511Z54515rK  Zt_meanÚstationÚelementrŠ   r‰   rÃ  r’   )rB  éâ   râ   é×   )râ   rI  r‹   éÜ   )i1  éè   r  rJ  r;  r   )r   r,   r   r   rÊ   r   rn   Z
Int64Dtyper   rV   rW   r   r   r)   ZFloat64DtyperÌ   )r   r)   r(   Zarrr   r/   r0   r   r   r    Útest_stack_nullable_dtypeS  s    ÿ
"
z4TestStackUnstackMultiLevel.test_stack_nullable_dtype)1r‡  rˆ  r‰  r¯  rƒ   rŠ  r‹  r¶  r¹  r¼  re   r   r   r"  r   r¬   rR   rÁ  rÅ  rÉ  rÑ  rÒ  rÖ  r×  rØ  rÛ  rÜ  rÞ  rö  rù  r  r  r  r  r  Zslowr  r$  r&  r'  r)  r1  r5  r8  r9  r<  r=  rE  rL  r   r   r   r    r«    s¬   üüüóþ
8þþý&þý	ýþýìþ$


E/
!% !r«  )%r   Úior   r³   Únumpyr   rƒ   Zpandas.errorsr   Zpandasrn   r   r   r   r   r	   r
   r   Zpandas._testingZ_testingr   Zpandas.core.reshaper   r  r   r�  r‘  r•  rŠ  r‹  r–  r—  r˜  r   r¢  rª  r«  r   r   r   r    Ú<module>   s@   $	         
	