o
    թZh%                  
   @   sB  d dl Zd dl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 dd Zdd Zdd Zejd	d
d
dggdd Zdd Zdd Zdd Zejdejdddgejd	dgddggdd Zdd ZG dd dZejd eeegejd!g d"d#dd$g d"dd%gd$g d"d%gdd$gd&d' ZdS )(    N)	DataFrameIndex
MultiIndexSeries	Timestamp
date_rangec                 C   s   | j dd}|  d S )Nfirst)level)groupbydescribe)Z multiindex_dataframe_random_datagrouped r   a/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/groupby/methods/test_describe.pytest_apply_describe_bug   s   r   c                  C   s   t tjdtjdtdddd} | dd dd g}| }tj|d	 |	 d
d tj|d |
 d
d tj|d | d
d d S )N
   dtype
2020-01-01Zperiodsindexc                 S      | j S Nyearxr   r   r   <lambda>       z/test_series_describe_multikey.<locals>.<lambda>c                 S   r   r   monthr   r   r   r   r      r   meanF)Zcheck_namesstdmin)r   nparangefloat64r   r
   r   tmassert_series_equalr!   r"   r#   )tsr   resultr   r   r   test_series_describe_multikey   s   r+   c                  C   s\   t tjdtjdtdddd} | dd }|dd }| jd	d
}t	
|| d S )Nr   r   r   r   r   c                 S   r   r   r   r   r   r   r   r   $   r   z-test_series_describe_single.<locals>.<lambda>c                 S   s   |   S r   )r   r   r   r   r   r   %   s    T)Zfuture_stack)r   r$   r%   r&   r   r
   applyr   stackr'   r(   )r)   r   r*   expectedr   r   r   test_series_describe_single    s   r/   keyskey1key2c                 C   s   t g dg dg dd}|j|| dd }| }t g dg dg dtjtjd	gg d
g dg dg dg dd	}t|dkrM|dd|d  | rT||}t	|| d S )N)onetwor4   threer4   )         r8      )r1   r2   foo2as_indexr:   )r3   r5   r4   )      ?r=         @)r=         @r?          @)r=   r?   r@   )r=   r?   r>   )r=   r?         @)r=   r?         @)	r1   countr!   r"   r#   25%50%75%maxr7   r6   r2   r1   )
r   r
   r   r$   nanleninsert	set_indexr'   assert_frame_equal)r<   r0   dfgbr*   r.   r   r   r   test_series_describe_as_index*   s2   
rO   c           
      C   s2  |  dd dd g}| }g }| D ]-}||  }t|g|jgdgt|j tt|jgd}t|j||jd}|	| qt
j|dd}t|| d	}tjt|d
 | j ddddddd}	W d    n1 snw   Y  |	 }|  j}tddg|jgg dtt|jgd|_t|| d S )Nc                 S   r   r   r   r   r   r   r   r   K   r   z.test_frame_describe_multikey.<locals>.<lambda>c                 S   r   r   r   r   r   r   r   r   K   r   r   levelscodes)columnsr   r6   Zaxisz+DataFrame.groupby with axis=1 is deprecatedmatch)ABCD)r   r   r6   r6   )r
   r   r   rS   rI   ranger   valuesr   appendpdconcatr'   rL   Zassert_produces_warningFutureWarningT)
Ztsframer   r*   Zdesc_groupscolgroupZ	group_colr.   msgZgroupedTr   r   r   test_frame_describe_multikeyJ   s0   

re   c                  C   s   t g dd g dd g dd d} g dd | d< | jdd	id
}d}tjt|d | d  W d    n1 s?w   Y  tjt|d |d	  W d    d S 1 s^w   Y  d S )N)r6   r7      r8      rf   )r         (   2   )d      i,  i  i  )r   yz))r   r   r6   )r   r6   r   )r6   r   r   rg   kkeyrS   z*Names should be list-like for a MultiIndexrU   )r   renamepytestZraises
ValueErrorr
   r   )Zdf1Zdf2rd   r   r   r   test_frame_describe_tupleindexg   s   


"rv   c                  C   s   t dd ddt dd ddt dd ddi} t dd ddt dd ddt dd dd	i}t| |d
}|dj }||jdk j j ||jdk j j g}t|tddgddg dd}t	
|| d S )Nz2011-01-06 10:59:05)tzia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMErx   namerC   r!   r"   r#   rD   rE   rF   rG   r   rS   )r   r   r
   ry   r   rx   r\   tolistr   r'   rL   )ZpricesZvolumesrM   r*   datar.   r   r   r   $test_frame_describe_unstacked_formaty   s&   r   zZignore:indexing past lexsort depth may impact performance:pandas.errors.PerformanceWarningr<   TFa1a2c                 C   s   t g dg dg dg ddg ddd}|dgkr!|jd	d
}t g dddgj}d d g|j_t|dkrQtddgddggddgddggdd	gd|_	n	t
ddgdd|_	| s`| }|j|| d }t|| d S )N)c   r   r   X   r   r   )r6   r7   rf   r8   rg   r9   )r   rh   ri   rj   rk   <   )r   r   bc)r   r   r   r   F)rS   copyr   r   rr   )r   rC   r>   r>   r   r!   rA   r@   r   r"   r=   r=   r   r#   r?   r=   r   rD   g      @g      ?r   rE   rA   r@   r   rF   g      @g      @r   rG   rB   r>   r   r   r   r   r   r   r   r   r   r6   r7   r   r   )rQ   rR   namesrz   r;   )r   dropZfrom_recordsrK   ra   rS   r   rI   r   r   r   reset_indexr
   r   r'   rL   )r<   r0   rM   r.   r*   r   r   r   0test_describe_with_duplicate_output_column_names   s6   	


"
r   c                     s   t g dg} g d| _| | d }|jg d}g d  fdddD }tj|dd	}td
dg gdd
g ddg  dd
g  dttd gd|_dg|j	_
t|| d S )N)r   r6   r7   rf   )r   r6   r7   r   r6   )percentiles)rC   r!   r"   r#   rE   rG   c              	      s,   g | ]}t d |tj|||ggdg dqS )r=   r6   r}   r   r$   rH   ).0valrr   r   r   
<listcomp>   s    z3test_describe_duplicate_columns.<locals>.<listcomp>)        r@   r>   rT   r   r7   r9   rf   rP   )r   rS   r
   r   r^   r_   r   listr[   r   r   r'   rL   )rM   rN   r*   framesr.   r   rr   r   test_describe_duplicate_columns   s   


,
r   c                   @   s>   e Zd Zejdd Zejdd Zejdd Zdd Zd	S )
TestGroupByNonCythonPathsc                 C   s.   t g ddtjdgdtjdggg dd}|S )N)r6   r7   Zfoor6   barrf   ZbazrW   rX   rY   rr   r   )selfrM   r   r   r   rM      s
   zTestGroupByNonCythonPaths.dfc                 C   s   | d}|S )NrW   r
   )r   rM   rN   r   r   r   rN      s   
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd}|S )NrW   Fr;   r   )r   rM   gnir   r   r   r      s   zTestGroupByNonCythonPaths.gnic              
   C   s   t ddgdd}tdgg dgdgd ttdgd	}td
dtjdddddgdtjtjtjtjtjtjtjgg||d}| }t	|| |
 }| }t	|| d S )Nr6   rf   rW   rz   rX   r|   r      rP   r=   r@   r   r}   )r   r   r   r[   r   r$   rH   r   r'   rL   r   )r   rM   rN   r   Zexpected_indexZexpected_colr.   r*   r   r   r   test_describe   s"    z'TestGroupByNonCythonPaths.test_describeN)	__name__
__module____qualname__rt   ZfixturerM   rN   r   r   r   r   r   r   r      s    


r   r   kwargs)g?g?g333333?all)r   includeexcludeintc                 C   s   t g dgg d| d}|d t|d< |d t|d< |jd d djd
i |}|djd
i |jdd	jd d }t	|| |jd d dj
jd
i |}|dj
jd
i |jdd	jd d }tg |_t	|| d S )N)r6   r7   rf   r   )rS   r   rX   rY   r   rW   T)r   r   )r   Zastyper   floatZilocr
   r   r   r'   rL   rX   r   r   )r   r   rM   r*   r.   r   r   r   test_groupby_empty_dataset  s    ("*
r   )numpyr$   rt   Zpandasr^   r   r   r   r   r   r   Zpandas._testingZ_testingr'   r   r+   r/   markZparametrizerO   re   rv   r   filterwarningsr   r   r   r   r   objectr   r   r   r   r   <module>   s<     

7-