o
    d                     @   s   d dl m Z mZmZ 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mZmZmZmZ d dlmZ d dlmZ G dd dZG dd dZdS )	    )datetime	timedeltatimezoneN)
Categorical	DataFrameDatetimeIndexNaTPeriodSeries	Timedelta	Timestamp
date_rangeisna)period_arrayc                   @   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dd Zdd Zdd Zejdddg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.fd-d/d/d0g d1fd2d-id-d-d/ejejgfd-d/d3d-d-d/d/ejgfed-d-ejd/ejejgfed-d2gd4d-d-d/ejejgfed-d/d3d-d-d/d/ejgfed-d/gd5d6gd4d-ejd/d-d/gfgd7d8 Zejd,eg d9g d:feg d;g d<feeg d;g d=d>g d<fgd?d@ ZdAdB Z ejdCe!dDdEgejdFe"j#ejdGdHdIgdJdK Z$dLdM Z%dNdO Z&dPdQ Z'dRdS Z(dTdU Z)ejdVg dWdXg dYdZdXgfdZdXejdZgdXg dYdZdXgfgd[d\ Z*d]S )^TestSeriesFillNAc                 C   s`  t dddtjgdd}|jdd}|j|jd d}| }|jd |jd	< t|| t|| t	d
|i}|jdd}|j|jd d}t	d
|i}t
|| t
|| t tjdddgdd}|jdd}|j|d d}| }|d |d< t|| t|| t	d
|i}|jdd}|j|d d}t	d
|i}t
|| t
|| d S )Nr         M8[ns]dtypepadmethodvalue   Abfill)r
   r   _valuefillnavaluescopyiloctmassert_series_equalr   assert_frame_equal)selfseriesfilledfilled2expecteddf r,   l/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/series/methods/test_fillna.pytest_fillna_nat   s4   z TestSeriesFillNA.test_fillna_natc                 C   sF   d}t jt|d |jddd W d    d S 1 sw   Y  d S )Nz(Cannot specify both 'value' and 'method'matchr   ffill)r   r   )pytestraises
ValueErrorr   )r&   datetime_seriesmsgr,   r,   r-   test_fillna_value_or_methodA   s   "z,TestSeriesFillNA.test_fillna_value_or_methodc                 C   s   t g dtdd}t||jdd tj|d< t g d|jd}t|jdd| t g d|jd}t|jd	d| t g d
|jd}t|jdd| d}tj	t
|d |  W d    d S 1 slw   Y  d S )N              ?       @      @      @   indexr1   r   r   )r9   r:   r:   r<   r=   )r9   r:   r<   r<   r=   backfill)r9   r:   g      @r<   r=   r   z'Must specify a fill 'value' or 'method'r/   )r
   r#   makeDateIndexr$   r   npNaNr@   r2   r3   r4   )r&   tsexpr6   r,   r,   r-   test_fillnaF   s   

"zTestSeriesFillNA.test_fillnac                 C   s$  t tjg}t dg}||}t dg}t|| |i }t|| |t dtd}t|| ||}t|| |ddi}t|| |ddi}t|t tjg |ddd}t|| |t ddd}t|| |t dddddgd	}t|| d S )
Nr   r:   r,   r   r   )r   r      r>   r?   )r
   rC   nanr   r#   r$   objectr&   s1s2resultr*   r,   r,   r-   test_fillna_nonscalarZ   s*   




z&TestSeriesFillNA.test_fillna_nonscalarc                 C   sT   t g dtd}t dtjdgtd}||}t g dtd}t|| d S )Nr   r   r   abcr   r   bac)r   r   r;   )r
   listrC   rI   r   r#   r$   rK   r,   r,   r-   test_fillna_alignsr   s
   
z#TestSeriesFillNA.test_fillna_alignsc                 C   s|   t tjg dd}|jddd}t dtjtjgg dd}t|| |jddd}t ddtjgg dd}t|| d S )NrP   r?   i  r   )limitr   r
   rC   rI   r   r#   r$   r&   serrN   r*   r,   r,   r-   test_fillna_limity   s   z"TestSeriesFillNA.test_fillna_limitc                 C   s\   g d}|D ]%}t ddtjtjdgdd}||}t dd||dgdd}t|| qd S )N)0z1.5z-0.3r   r   rH   float64r   rJ   rV   )r&   valsvalrX   rN   r*   r,   r,   r-   test_fillna_dont_cast_strings   s   
z.TestSeriesFillNA.test_fillna_dont_cast_stringsc                 C   s   t tdtg}|tddd}t tdtdddgdd}t|| |ddgtddd}t|| |ddgtddd}t|| |d	}t tdd	g}t|| | }d	|d
< t|| d S )N20130101
US/Easterntz
2013-01-01rJ   r   TFfoor   )r
   r   r   r   r#   r$   wherer!   )r&   rX   rN   r*   ser2r,   r,   r-   test_fillna_consistency   s"   
z(TestSeriesFillNA.test_fillna_consistencyc                 C   sp   t dtjg}|jddd}t ddg}t|| t dtjg}|jddidd}t ddg}t|| d S )Nr:   r   inferdowncastr   rV   rW   r,   r,   r-   test_fillna_downcast   s   z%TestSeriesFillNA.test_fillna_downcastc                 C   s0  t dt}t j|d< t|}|jddd}tt dt jd}t	|| |j
dd}tg dt jd}t	|| |jdd}tg dt jd}t	|| d|d	< tg d
t jd}|jddd}t	|| |j
dd}tg dt jd}t	|| |jdd}tg dt jd}t	|| d S )Nr>   r   rh   ri   r   )r   r   r   r   rH   )r   r   r   rH   rH         @r   )r   r   rl   r   rH   )r   r   rl   rl   rH   )r   r   rl   rH   rH   )rC   arangeastyperJ   rI   r
   r   int64r#   r$   r1   r   r[   )r&   arrrX   resr*   r,   r,   r-   -test_fillna_downcast_infer_objects_to_numeric   s,   
z>TestSeriesFillNA.test_fillna_downcast_infer_objects_to_numericc                 C   s\  t tdtdtdtdg}| }||}|tdd}t tdtdtdtdddg}||}t|| |d}|t	d}t|| |tdd}t tddtdtdtdddg}||}t|| |tddd}t tdddtdtdtdddg}||}t|| |t
d	}t tddtdtdtdddg}||}t|| |t}t ttdtdtdddgd
d}||}t|| t
j|d< ||}| }|tdd}t
j|d< ||}t|| t
j|d< ||}| }|tdd}tddd|d< ||}t|| d S )Nr_   2013010220130103 9:01:01r   )secondsr   i~  )daysru   i ʚ;zm8[ns]r   r   )r
   r   diffr   r   r   r#   assert_equalrn   rJ   rC   timedelta64r   rI   r1   r   )r&   frame_or_seriesrX   tdobjrN   r*   rq   r,   r,   r-   test_timedelta_fillna   s   







	


z&TestSeriesFillNA.test_timedelta_fillnac                 C   s   t tdtdtdtdg}tj|d< | }t tdtdtdtdg}t|| | }t tdtdtdtdg}t|| d S )Nr_   rs   rt   r   )r
   r   rC   rI   r1   r#   r$   r   rW   r,   r,   r-   test_datetime64_fillnaB  s4   
z'TestSeriesFillNA.test_datetime64_fillnac                 C   s>   t ttdgdd}t g ddd}|jdd}t|| d S )N2013-08-05 15:30:00.000001r   r   )r   r   r   rA   r   )r
   r   r   r#   r$   )r&   rX   r*   rN   r,   r,   r-   test_datetime64_fillna_backfille  s   z0TestSeriesFillNA.test_datetime64_fillna_backfillrb   r`   z
Asia/Tokyoc                 C   s  t tdttdtg}t g d}|td}t tdtdtdtdg}t|| tt|| |td|d}t tdtd|dtdtd|dg}t|| tt|| |d}t tddtddgtd}t|| tt|| |td|dtdd	}t tdtd|dtdtdg}t|| tt|| |tdtdd	}t tdtdtdtdg}t|| tt|| tdtdtg|d}t |}|j	d
| dksJ tt|| |td}t td|dtdtd|dtdg}t|| tt|| |td|d}tg d|d}t |}t|| tt|| |td|d
 }tg d|d}t |}t|| tt|| |d}t td|ddtd|ddgtd}t|| tt|| |td|dtdd	}t td|dtd|dtd|dtdg}t|| tt|| |td|dtd|dd	}t td|dtd|dtd|dtd|dg}t|| tt|| |td}t td|dtdtd|dtdg}t|| tt|| |tddd}t td|dtddd|td|dtddd|g}t|| tt|| d S )N2011-01-01 10:002011-01-03 10:00)FTFT2011-01-02 10:00ra   AAAr   z2011-01-04 10:00r   r   zdatetime64[ns, ])r   r   r   r   r_   rc   
US/Pacific)r
   r   r   r   r#   r$   r   rJ   r   r   to_pydatetime
tz_convert)r&   rb   rX   null_locrN   r*   idxr,   r,   r-   test_datetime64_tz_fillnau  s4  


	



		


	













z*TestSeriesFillNA.test_datetime64_tz_fillnac                 C   st   t tdtg}t tdtdg}t|jdd| t ttdg}t tdtdg}t|jdd| d S )Nz2012-11-11 00:00:00+01:00r   r   r   )r
   r   r   r#   r$   r   )r&   rX   rF   r,   r,   r-   test_fillna_dt64tz_with_method?  s   z/TestSeriesFillNA.test_fillna_dt64tz_with_methodc                 C   sL   t tjtdgddgd}|td}t tdddgd}t|| d S )Nz1 daysr   Br?   r   )r
   rC   rI   r   r   r   r#   r$   rW   r,   r,   r-   test_fillna_pytimedeltaT  s   z(TestSeriesFillNA.test_fillna_pytimedeltac                 C   sh   t tdddtdddg}|tddd}t tdddtdddg}t|| |jdks2J d S )Nz2011-01Mfreqr   z2012-01z	Period[M])r
   r	   r   r#   r$   r   )r&   rX   rq   rF   r,   r,   r-   test_fillna_period\  s
   z#TestSeriesFillNA.test_fillna_periodc                 C   s   t tdtdtdtdg}tj|d< ||}|td}t tdtdtdtdg}||}t|| |t}|}t|| d S )Nr_   rs   rt   r   20130104)r
   r   rC   rI   r   r#   rx   r   )r&   rz   rX   r|   rN   r*   r,   r,   r-   test_fillna_dt64_timestampe  s,   

z+TestSeriesFillNA.test_fillna_dt64_timestampc                 C   sV   t tdttdg}tdd}||}t tdtdtdg}t|| d S )Nz
2010-01-01
2000-01-01z
1975-04-05ms)r
   r   r   rC   
datetime64r   r#   r$   )r&   rX   r]   rN   r*   r,   r,   r-   test_fillna_dt64_non_nao  s   
z)TestSeriesFillNA.test_fillna_dt64_non_naoc                 C   s\   t tjdtjdtjgg d}| }|jddd}|d u s J |jdd}t|| d S )Nr:   r<   zabcdr   T)r   inplacer   )r
   rC   rI   r!   r   r#   r$   )r&   xyreturn_valuer*   r,   r,   r-   test_fillna_numeric_inplace  s   z,TestSeriesFillNA.test_fillna_numeric_inplacezfill_value, expected_outputr   )r   r   r   r   r   r   )r   r   rH   )r   r   r   r   r   r   r   r?   r   rH   c                 C   sV   dt jdt jt jg}tt|ddgd}tt|ddgd}||}t|| d S )Nr   r   
categoriesrC   rI   r
   r   r   r#   r$   r&   
fill_valueexpected_outputdatarX   rF   rN   r,   r,   r-   test_fillna_categorical  s
   
z(TestSeriesFillNA.test_fillna_categoricalr   r   r   r   e)r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   c                 C   sV   dt jdt jt jg}tt|g dd}tt|g dd}||}t|| d S )Nr   r   r   r   r   r   r,   r,   r-   +test_fillna_categorical_with_new_categories  s
   
z<TestSeriesFillNA.test_fillna_categorical_with_new_categoriesc                 C   s  dt jdt jt jg}tt|ddgd}|j}d}tjt|d |d W d    n1 s0w   Y  d}tjt	|d |td W d    n1 sPw   Y  tjt|d |ddd W d    n1 sow   Y  d	}tjt|d |ddg W d    n1 sw   Y  d
}tjt|d |d W d    n1 sw   Y  d}tjt|d |t
dgdgd W d    d S 1 sw   Y  d S )Nr   r   r   z3Cannot setitem on a Categorical with a new categoryr/   r   z!Length of 'value' does not match.r   C"value" parameter must be a scalar or dict, but you passed a "list"D"value" parameter must be a scalar or dict, but you passed a "tuple")r   r   zP"value" parameter must be a scalar, dict or Series, but you passed a "DataFrame")rC   rI   r
   r   _valuesr2   r3   	TypeErrorr   r4   r   )r&   r   rX   catr6   msg2r,   r,   r-   test_fillna_categorical_raises  s6   "z/TestSeriesFillNA.test_fillna_categorical_raisesr   float32r[   	fill_typescalarTFc           
      C   s   t tjdg|d}t ddg|d}|r|jd}||}t ddg|d}t|| t tjdg|d}| 	 }|||< t|| t tjdg|d}|j
||dd t|| t tjdg|d}|| |}	t|	| d S )N333333?r   r   r;   T)r   )r
   rC   rI   r   typer   r#   r$   r   to_numpymaskre   )
r&   r   r   r   rX   fill_valuesrN   r*   r   rq   r,   r,   r-   test_fillna_float_casting  s"   
z*TestSeriesFillNA.test_fillna_float_castingc                 C   sD   t tjdgtjd}|ddi}t ddgtjd}t|| d S )Nr   r   r   r   r:   )r
   rC   rI   r   r   r#   r$   rW   r,   r,   r-    test_fillna_f32_upcast_with_dict  s   z1TestSeriesFillNA.test_fillna_f32_upcast_with_dictc              
   C   sJ   z	|j dd W d S  ty$ } zdt|v sJ W Y d }~d S d }~ww )Nffilr   )r   r4   str)r&   r5   instr,   r,   r-   test_fillna_invalid_method  s   z+TestSeriesFillNA.test_fillna_invalid_methodc                 C   s   t tjddd}d}tjt|d |ddg W d    n1 s%w   Y  d}tjt|d |d	 W d    d S 1 sDw   Y  d S )
Nd   2   r   r/   r   r   r   )r   r   )r
   rC   randomrandintr2   r3   r   r   )r&   rX   r6   r,   r,   r-   test_fillna_listlike_invalid  s   "z-TestSeriesFillNA.test_fillna_listlike_invalidc              
   C   sp   t g d}dg d}dD ]&}dD ]!}tjt|d |jd||d W d    n1 s/w   Y  qqd S )	N)r   r   r   N|)z*Cannot specify both 'value' and 'method'\.zLimit must be greater than 0zLimit must be an integer)r   r:   r;   )rA   r   r   r1   Nr/   r   )rU   r   )r
   joinr2   r3   r4   r   )r&   rX   r6   rU   r   r,   r,   r-   $test_fillna_method_and_limit_invalid  s   z5TestSeriesFillNA.test_fillna_method_and_limit_invalidc                 C   s   t tdddd}| }t|d< |tdddtjd}t	|| t
d	d
d}t |jd}|jjdks9J ||}t |d ||jj|d g|jd}t	|| d S )N2020r   UTC)periodsrb   r   i  r   tzinfor   r   ra   zdateutil/US/Pacificr   r   r   )r
   r   r!   r   r   r   r   utcr#   r$   r   r   r   r   kindrb   )r&   rX   r*   rN   rE   rf   r,   r,   r-   +test_fillna_datetime64_with_timezone_tzinfo*  s   
z<TestSeriesFillNA.test_fillna_datetime64_with_timezone_tzinfoz7input, input_fillna, expected_data, expected_categories)r   r   Nr   r   )r   r   r   r   r   c           
      C   sF   t |}t||}||}||}t ||d}	t||	 d S )Nr   )r   r
   r   r#   assert_categorical_equal)
r&   inputinput_fillnaexpected_dataexpected_categoriesr   rX   r(   rN   r*   r,   r,   r-   (test_fillna_categorical_accept_same_type>  s   

z9TestSeriesFillNA.test_fillna_categorical_accept_same_typeN)+__name__
__module____qualname__r.   r7   rG   rO   rT   rY   r^   rg   rk   rr   r}   r~   r   r2   markparametrizer   r   r   r   r   r   r   rC   rI   r
   r   r   r   r   floatr#   ALL_REAL_NUMPY_DTYPESr   r   r   r   r   r   r   r,   r,   r,   r-   r      s    %
$e#
 J	
"
	


r   c                   @   sv   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dgdd ZdS )TestFillnaPadc                 C   s   t tjdtjdtjgg d}|jdd}t tjddddg|j}t|| |jdd}t ddddtjg|j}t|| d S )Nr:   r<   r   r1   r   r   )r
   rC   rI   r   r@   r#   r$   )r&   rX   r(   r*   r,   r,   r-   test_fillna_bugR  s   zTestFillnaPad.test_fillna_bugc                 C   <   t g dtdd}tj|d< t| |jdd d S )Nr8   r>   r?   r   r1   r   )r
   r#   rB   rC   rD   r$   r1   r   r&   rE   r,   r,   r-   
test_ffill\     
zTestFillnaPad.test_ffillc                 C   s2   t tdddtjddg}| }t|| d S )Ni  r   r   )r
   r   pytzr   r1   r#   r$   )r&   r'   rN   r,   r,   r-   ,test_ffill_mixed_dtypes_without_missing_dataa  s   z:TestFillnaPad.test_ffill_mixed_dtypes_without_missing_datac                 C   r   )Nr8   r>   r?   r   r   r   )r
   r#   rB   rC   rD   r$   r   r   r   r,   r,   r-   
test_bfillg  r   zTestFillnaPad.test_bfillc                 C   s   t tjdtjdtjgg dtd}|jddd}|d u sJ t tjddddgg dtd}t|dd  |dd   t|d	 sKJ t|d	 d S )
Nr:   r<   r   r   r   Tr   r   r   r   )r
   rC   rI   r   r   r#   r$   isnan)r&   r   r   r*   r,   r,   r-   test_pad_nanl  s   $zTestFillnaPad.test_pad_nanc                 C   s   t d}tt jd|d}|d d |}|jddd}|d d |jdd}t j|dd < t	|| |d	d  |}|jd
dd}|d	d  |jdd}t j|d d< t	|| d S )N
   r?   r   r   r>   r   rU   r   r   rA   r   
rC   rm   r
   r   randnreindexr   rI   r#   r$   r&   r@   srN   r*   r,   r,   r-   test_series_fillna_limitz  s   
z&TestFillnaPad.test_series_fillna_limitc                 C   s   t d}tt jd|d}|d d j|ddd}|d d |jdd}t j|dd < t	|| |d	d  j|d
dd}|d	d  |jd
d}t j|d d< t	|| d S )Nr   r?   r   r   r>   r   r   r   r   rA   r   r   r   r,   r,   r-   test_series_pad_backfill_limit  s   
z,TestFillnaPad.test_series_pad_backfill_limitc                 C   sH   t tjddd}|jddd}|d u sJ t|jddd| d S )Nr   r   r   r1   Tr   F)r
   rC   r   r   r   r#   r$   )r&   rX   r   r,   r,   r-   test_fillna_int  s   zTestFillnaPad.test_fillna_intc                 C   s   t tttdddddddtjdg}|jdd	}t tdddddddtjdtdddddddtjdtdddddddtjdg}t|| d S )
Ni              i r   r   r   )r
   r   r   r   r   r   r#   r$   )r&   r   r(   r*   r,   r,   r-   $test_datetime64tz_fillna_round_issue  s   z2TestFillnaPad.test_datetime64tz_fillna_round_issuec                 C   s~   t tjtdd ddd}t|d}t|d< ttdtdtdtd	td
gdd}t|}|jdd}t	
|| d S )Nr   )nanosecondsr>   ns)r   r   r   z2262-04-11 23:47:16.854775797z2262-04-11 23:47:16.854775798z2262-04-11 23:47:16.854775800z2262-04-11 23:47:16.854775801r   r   r   )r   r   maxr   r
   	to_periodr   r   r   r#   r$   )r&   dtirX   rp   r*   r(   r,   r,   r-   test_fillna_parr  s"   
zTestFillnaPad.test_fillna_parrfuncr   rA   c                 C   sH   t g d}tt t||  W d    d S 1 sw   Y  d S )N)r   r   r   )r
   r#   assert_produces_warningFutureWarninggetattr)r&   r  rX   r,   r,   r-   test_pad_backfill_deprecated  s   "z*TestFillnaPad.test_pad_backfill_deprecatedN)r   r   r   r   r   r   r   r   r   r   r   r   r  r2   r   r   r  r,   r,   r,   r-   r   Q  s    
r   )r   r   r   numpyrC   r2   r   pandasr   r   r   r   r	   r
   r   r   r   r   pandas._testing_testingr#   pandas.core.arraysr   r   r   r,   r,   r,   r-   <module>   s    0      <