
    o[we&v                         d dl Zd dlZd dlmc m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          Zd Zd Zej                            dd	d
g          d             ZdS )    N)
Categorical	DataFrameDatetimeIndexNaTPeriodIndexSeriesTimedeltaIndex	Timestamp
date_rangeto_datetime)_check_mixed_floatc                      e Zd Zd Zej        d             Zd Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zej                            dg dddgg          d             Zd Zej                            dddej        dg          d             Zd Zd Zd Zd Z d Z!d  Z"ej                            d!e#e$g          d"             Z%ej                            d!e#e$g          d#             Z&d$ Z'd% Z(d& Z)d' Z*d( Z+d) Z,d* Z-d+ Z.d, Z/d- Z0d. Z1d/ Z2ej3        ej                            dd0d0d0d1g          d2                         Z4d3 Z5d4 Z6d5S )6
TestFillNAc                    t          t          j        gdz  t          t	          d          t          gt          j        ddgd          }g d|_        |d d          }|                    ddid	           t          d
gdz  dt	          d          dgg dd          }g d|_        t          j        ||           |s5t          j	        |j
        d d df         |j
        d d df                   sJ t          j	        |j
        d d df         |j
        d d df                   rJ |s5t          j	        |j
        d d df         |j
        d d df                   sJ d S d S )N      foo   ABC)r   r   r   r   Tinplace       @)r   r   r   r   )r   npnanr   r
   columnsfillnatmassert_frame_equalshares_memoryiloc)selfusing_copy_on_writedforigexpecteds        Flib/python3.11/site-packages/pandas/tests/frame/methods/test_fillna.py*test_fillna_dict_inplace_nonunique_columnsz5TestFillNA.test_fillna_dict_inplace_nonunique_columns   s   6(Q,c9Q<<%=RVUTUDVWW
 
 %__
!!!u
		3(D	))) %!)1illA"6]]]KK
 
 +??
b(+++ # 	D#BGAAAqDM49QQQT?CCCCC#BGAAAqDM49QQQT?CCCCC" 	D#BGAAAqDM49QQQT?CCCCC	D 	DCC    c                 X   t          j        dt           j                  }t          |d          }|r{t	          j                    5  |d                             dd           d d d            n# 1 swxY w Y   t          j        |d d df                                                   sJ nA|d                             dd           |d d df         dk                                    sJ t          |j
        j                  dk    sJ t          j        |j        |          sJ d S )	N)(   2   F)copyr   Tr   r   )r   fullr   r   r    raises_chained_assignment_errorr   isnanalllen_mgrarraysr"   values)r$   r%   arrr&   s       r)   test_fillna_on_column_viewz%TestFillNA.test_fillna_on_column_view.   sb    gh''s''' 	+355 / /1R.../ / / / / / / / / / / / / / /8C1I&&**,,,,,,qELLTL***1IO((***** 27>""a''''	3///////s   A00A47A4c                    |}t           j        |j        |j        d d         df<   t           j        |j        |j        dd          df<   |                    d          }|j        |j        d d         df         dk                                    sJ d}t          j        t          |          5  |                    d          }d d d            n# 1 swxY w Y   t          j	        |j        |j        d d         df                                                   sJ |j        |j        dd          df         |j        |j        d         df         k                                    sJ d	}t          j        t          |          5  |                                 d d d            n# 1 swxY w Y   d
}t          j        t          |          5  |                    dd           d d d            d S # 1 swxY w Y   d S )N   r   r   ,DataFrame.fillna with 'method' is deprecatedmatchpadmethodz'Must specify a fill 'value' or 'method'z(Cannot specify both 'value' and 'method'ffill)r   r   locindexr   r4   r    assert_produces_warningFutureWarningr3   pytestraises
ValueError)r$   datetime_frametfzero_filledmsgpaddeds         r)   test_fillna_datetimezTestFillNA.test_fillna_datetime@   s   $&Frx|S !%'Vrx}c!"$++A.. 1"1" 5s :;q@EEGGGGG<'SAAA 	9 	9#**%*88F	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9x
6<#3S#89::>>@@@@@Jv|BCC(#-.&*V\"=Ms=R2SS
#%%	 	 	 8]:S111 	$ 	$!!###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$8]:S111 	5 	5!!!G!444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s6   /CCCF))F-0F-G66G:=G:c                 Z   |}t           j        |j        |j        dd         df<   t           j        |j        |j        dd          df<   |                    d           d}t          j        t          |	          5  |                    d
           d d d            d S # 1 swxY w Y   d S )Nr<      r   r   r   valuer>   r?   rA   rB   )r   r   rE   rF   r   r    rG   rH   )r$   float_string_framemfrO   s       r)   test_fillna_mixed_typez!TestFillNA.test_fillna_mixed_typeW   s    (*rx"~u$%&(frx~s"#
			<'SAAA 	$ 	$IIUI###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   <B  B$'B$c                    |                     g d          }t          j        |j        |j        dd          df<   |                    d          }t          |dd i           d	}t          j        t          |
          5  |                    d          }d d d            n# 1 swxY w Y   t          |dd i           d S )N)r   r   Dr   rT   r   r   rU   r   dtyper>   r?   rA   rB   )
reindexr   r   rE   rF   r   r   r    rG   rH   )r$   mixed_float_framerX   resultrO   s        r)   test_fillna_mixed_floatz"TestFillNA.test_fillna_mixed_floata   s   &&&??&(frx~s"###6#t5555<'SAAA 	- 	-YYeY,,F	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-6#t555555s   B%%B),B)c                 6   |rt          j        d           t          dg          }dD ]n}d}t          j        t
          |          5  |j                            |d           |j                            |	           d d d            n# 1 swxY w Y   od S )
Nz9condition is unnecessary complex and is deprecated anywayxr\   )rA   backfillz)Series.fillna with 'method' is deprecatedr?   TrC   r   rB   )rI   skipr   r    rG   rH   rd   r   )r$   r%   r&   mrO   s        r)   test_fillna_emptyzTestFillNA.test_fillna_emptym   s     	UKSTTTu%%%$ 	& 	&A=C+MEEE & &1d3331%%%& & & & & & & & & & & & & & &	& 	&s   	8BB	B	c                 j   t          ddt          j        dgddt          j        dgddt          j        dgg          }|                    ddi          }t          g dg dg dg          }t	          j        ||           |                    ddid	
          }t	          j        ||           |J d S )Nabcr   r   )rk   rk   r   rk   )rl   rl   r   rl   )rm   rm   r   rm   Tr   r   r   r   r   r    r!   )r$   r&   ra   r(   return_values        r)   test_fillna_different_dtypez&TestFillNA.test_fillna_different_dtypex   s    3$sC&=S"&RU?VW
 
 Au:&&###%;%;%;=S=S=ST
 
 	fh///yy!UTy::
b(+++#####r+   c                    t          t          j                            d                              d                    }t          j        |j        dddf<   t          j        |j        dddf<   |                                }d|j        d<   d|j        d	<   |                    dd
          }t          j
        ||           d S )Nr   )
   r      r   r   r<   i  )r   r   )r   r   r   limit)r   r   randomdefault_rngstandard_normalr   r#   r/   r   r    r!   r$   r&   r(   ra   s       r)   test_fillna_limit_and_valuez&TestFillNA.test_fillna_limit_and_value   s    ry,,Q//??HHII&!Q&!Q7799!d!d3a((
fh/////r+   c                 t   t          t          t          d          gt          d          t          gd          }|                                }|d                             |j        |j        d         df                   |d<   |                    d|d         i          }t          j        ||           d S )Nz2014-1-1z2013-1-1)DateDate2r|   r   r}   rU   )	r   r   r
   r/   r   rE   rF   r    r!   ry   s       r)   test_fillna_datelikezTestFillNA.test_fillna_datelike   s     i
334#J//5 
 
 7799#F+2226"(1+w:N3OPP&"W+!677
fh/////r+   c                    t          dt          d          t          gi          }t          dt          d          t          d          gi          }d}t          j        t
          |          5  |                    d          }d d d            n# 1 swxY w Y   t          j        ||           t          dt          t          d          gi          }t          dt          d          t          d          gi          }d}t          j        t
          |          5  |                    d          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   z2012-11-11 00:00:00+01:00r>   r?   rA   rB   bfill)r   r
   r   r    rG   rH   r   r!   )r$   r&   exprO   ress        r)   test_fillna_tzawarezTestFillNA.test_fillna_tzaware   s    i(CDDcJKLL9::9::
 
 ='SAAA 	* 	*))5)))C	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*
c3'''c9-H#I#IJKLL9::9::
 
 ='SAAA 	, 	,))7)++C	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,
c3'''''s$   0BBB"EE	E	c                    t          t          ddd          ddt          j        t          j        gd          }d}t	          j        t          |	          5  |                    d
          }d d d            n# 1 swxY w Y   t          t          ddd          g dd          }t	          j        ||           d S )N20130101   z
US/Eastern)periodstzr   r   r   r   r>   r?   rA   rB   )      ?r   r   r   )	r   r   r   r   r    rG   rH   r   r!   r$   r&   rO   ra   r(   s        r)   $test_fillna_tzaware_different_columnz/TestFillNA.test_fillna_tzaware_different_column   s    
A,GGGBFBF+ 
 
 ='SAAA 	- 	-YYeY,,F	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-
A,GGG))) 
 
 	fh/////s   A;;A?A?c                 (   t          dddt          j        gg d          }ddt          j        dg}t          ||d	          }t          g d
g d          }g d}t          ||d	          }t          g dg d          }ddt          j        g}t          ||d	          }	t          ddgg d          }
ddg}t          |
|d	          }|                    ddd	          }t          j        ||           d}t          j        t          |          5  |                    ddd	           d d d            n# 1 swxY w Y   d}t          j
        t          |          5  |                    d          }d d d            n# 1 swxY w Y   t          j        ||           |                    dg          }t          j        ||	           |                                }t          j        ||           t          t          j        dt          j        gddg          }t          |g dd	          }t          g dddg          }t          |g dd	          }|                    d          }t          j        ||           d S )Nr   r   r   r   r   r   )
categoriesrk   rl   dcatsvals)r   r   r   r   )rk   rl   rl   r   rU   z3Cannot setitem on a Categorical with a new categoryr?   r   rm   r>   rA   rB   r   )subset)rk   rl   rk   )r   r   r   r   r   r    r!   rI   rJ   	TypeErrorrG   rH   dropna)r$   catr   r&   cat2vals2df_exp_fillcat3vals3df_exp_drop_catscat4vals4df_exp_drop_allr   rO   rm   cat_expdf_exps                     r)   test_na_actions_categoricalz&TestFillNA.test_na_actions_categorical   s-   1aBF+			BBBS"&#&T2233<<<III>>>$$$u = =>>999;;;c26"$dE%B%BCCAq6iii888c
#T5$A$ABB iiq#66i77
c;///C]9C000 	6 	6IIQ44I555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 ='SAAA 	* 	*))5)))C	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*
c;/// iixi((
c#3444iikk
c?333 bf-3*EEE9995566ooo3*EEEGYYY??@@iinn
c6*****s$   EEE)FFFc                 L   t          t          j        dt          j        g          }t          t          j        t          j        t          j        g          }t          ||d          }t	          dt          j        d          }|                    |          }t          j        t          j        t          j        g}t          g d|dd          }t          j        ||           |j                            t          j                  }t          j	        ||j                   |j
                            t          j                  }t          j	        ||j
                   t          dddt          t          g          }	t          d	t          |	          i          }t          j        |                    t          
          |           t          dddt          t          gd          }	t          d	t          |	          i          }t          j        |                    t          
          |           t          dddt          t          g          }	t          d	t          |	          i          }t          j        |                    t          
          |           d S )Nr   r   r   )r   r   r   categoryr]   z2011-01-01 09:00z2016-01-01 23:45rk   rU   z2011-01M)freqz1 daysz2 days)r   r   r   r   r   r   r    r!   r   assert_series_equalr   r   r   r   r	   )
r$   r   valr&   medianr   v_expr   ra   idxs
             r)   test_fillna_categorical_nanz&TestFillNA.test_fillna_categorical_nan  s    261bf-..262626233S1122 bf5566ii(IIIu==ZPPP
c6***''
vrw///''
vrw///!35GcR
 
 [--.//
biici22B7779iCECPPP[--.//
biici22B777h(CEFF[--.//
biici22B77777r+   c                 J   t          ddt          j        gi          }d}t          j        t
          |          5  |                    dd          }d d d            n# 1 swxY w Y   t          dddgi          }t          j        ||           t          ddt          j        gi          }t          j        t
          |          5  |                    ddid          }d d d            n# 1 swxY w Y   t          dddgi          }t          j        ||           d S )	Nrk   r   z.The 'downcast' keyword in fillna is deprecatedr?   r   inferdowncastr   r   r   r   r    rG   rH   r   r!   r   s        r)   test_fillna_downcastzTestFillNA.test_fillna_downcast&  s    c26]+,,>'SAAA 	4 	4YYq7Y33F	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4cAq6]++
fh/// c26]+,,'SAAA 	; 	;YYQx'Y::F	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;cAq6]++
fh/////s#   AA#&A#
C00C47C4c                      |g dd          }d}t          j        t          |          5  |                    dd          }d d d            n# 1 swxY w Y   t          j        ||           d S )	Nr   objectr]    The 'downcast' keyword in fillnar?    Fr   )r    rG   rH   r   assert_equal)r$   frame_or_seriesobjrO   ra   s        r)   test_fillna_downcast_falsez%TestFillNA.test_fillna_downcast_false7  s    oiiix8880'SAAA 	4 	4ZZUZ33F	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4
$$$$$s   AAAc                 f    |g dt           j                  }d}t          j        t          |          5  |                    dt          j        t           j                            }d d d            n# 1 swxY w Y   |                    t           j                  }t          j	        ||           |                    t           j
                  }t          j        t          |          5  |                    dd          }d d d            n# 1 swxY w Y   |}t          j	        ||           t          j        t          |          5  |                    dt          j        t           j                            }	d d d            n# 1 swxY w Y   t          j	        |	|           d S )Nr   r]   r   r?   r   r   r   )r   int64r    rG   rH   r   r^   int32astyper   float64)
r$   r   r   rO   r   r(   obj2res2	expected2res3s
             r)   test_fillna_downcast_noopz$TestFillNA.test_fillna_downcast_noop?  sH    oiiirx8880'SAAA 	A 	A**URXbh-?-?*@@C	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A ::bh''
X&&&zz"*%%'SAAA 	8 	8;;uw;77D	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8	
i((('SAAA 	C 	C;;urx/A/A;BBD	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	h'''''s5   4A77A;>A;0DDD4FFFr   )r   r   r   r   c                 $   t          t          j        ddg|          }t          j        d           5  |                    ddi          }d d d            n# 1 swxY w Y   |                                }d|d<   t          j        ||           d S )Nr   r   rF   r   r           )r   r   r   r    rG   r   r/   r!   )r$   r   r&   ra   r(   s        r)   -test_fillna_dictlike_value_duplicate_colnamesz8TestFillNA.test_fillna_dictlike_value_duplicate_colnamesY  s     rvaVW==='-- 	) 	)YYQx((F	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 7799
fh/////s   AAAc                    t          g dg d          }|j        }t          t          j        d          gdz  g d          }t          j        ||           |                    d          }t          dg dg d          }t          j        ||           t          t          d          d	d
gd          }|                    d          }t          dt          d          d	d
g          }t          j        ||           d S )Nr   )r   r   r   r   r<   r   r   r<   rF   r   r   r   r   r   )rF   r   r^   r   )
r   dtypesr   r   r^   r    r   r   r!   ranger$   r&   ra   r(   s       r)   test_fillna_dtype_conversionz'TestFillNA.test_fillna_dtype_conversiond  s   ___oooFFF28H--.2///JJJ
vx0001QoooOOO
fh/// U1XXSzKKK5!!U%((S#JGGG
fh/////r+   r   r   r   r   c                     t          dt          j        gddgd          }|                    t          j        |          }|                    |          }t          j        ||           d S )Nr   r   r   r   )r   r   r   replacer   r    r!   )r$   r   r&   r(   ra   s        r)   *test_fillna_dtype_conversion_equiv_replacez5TestFillNA.test_fillna_dtype_conversion_equiv_replaceu  s^    a[Sz::;;::bfc**3
fh/////r+   c                    t          ddt          j        gt          dd          g dg ddt          d	d          
          }|                    d          }t          g dt          dd          g dg ddt          d	d          
          }t          j        ||           t          ddt          j        gt          d          t          d          t          gg dg ddt          d	d          
          }|                    d          }t          g dt          d          t          d          dgg dg ddt          d	d          
          }t          j        ||           d S )Nr0   r   r   )r   )r   barN)foo2bar2Nr   r   r   r[   20130110r   ?)r0   r   r   )r   r   r   )r   r   r   z
2013-01-01z
2013-01-02)	r   r   r   r   r   r    r!   r
   r   r   s       r)   test_fillna_datetime_columnsz'TestFillNA.test_fillna_datetime_columns|  s   "bf%
A666)))+++	  Z333
 
 
 3"]]
A666(((***	  Z333
 
 
 	fh///"bf%--y/F/FL)))+++	  Z333
 
 
 3"]]--y/F/FL(((***	  Z333
 
 
 	fh/////r+   c                 v   t           j        |j        |j        d d         df<   t           j        |j        |j        dd          df<   d}t	          j        t          |          5  |                    d          }d d d            n# 1 swxY w Y   t	          j        |	                                |           d S )Nr<   r   r=   r>   r?   rD   rB   )
r   r   rE   rF   r    rG   rH   r   r!   rD   r$   rL   rO   alts       r)   
test_ffillzTestFillNA.test_ffill  s    <>F>/3S89=?V>/4c9:<'SAAA 	8 	8 ''w'77C	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8
n2244c:::::   $BBBc                 v   t           j        |j        |j        d d         df<   t           j        |j        |j        dd          df<   d}t	          j        t          |          5  |                    d          }d d d            n# 1 swxY w Y   t	          j        |	                                |           d S )Nr<   r   r=   r>   r?   r   rB   )
r   r   rE   rF   r    rG   rH   r   r!   r   r   s       r)   
test_bfillzTestFillNA.test_bfill  s    <>F>/3S89=?V>/4c9:<'SAAA 	8 	8 ''w'77C	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	n2244c:::::r   c                 p   t          j        d          }t          t           j                            d                              d          |          }|d d                             |dd          }d}t          j        t          |	          5  |d d                             |          
                    d
          }d d d            n# 1 swxY w Y   t           j        |j        dd <   t          j        ||           |dd                              |dd          }t          j        t          |	          5  |dd                              |          
                    d
          }d d d            n# 1 swxY w Y   t           j        |j        d d<   t          j        ||           d S )Nrr   r   rr   r   r   rA   r<   rC   ru   r>   r?   rB   r   re   r   r   aranger   rv   rw   rx   r_   r    rG   rH   r   r   r#   r!   r$   rF   r&   ra   rO   r(   s         r)   test_frame_pad_backfill_limitz(TestFillNA.test_frame_pad_backfill_limit  s   	"ry,,Q//??HHPUVVVBQBe1==<'SAAA 	B 	B"1"v~~e,,3353AAH	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	BVbcc
fh///BCCzCC'SAAA 	H 	H"##wu--44J4GGH	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	HFbqb
fh/////s$   2CCC2F  FFc                    t          j        d          }t          t           j                            d                              d          |          }|d d                             |          }d}t          j        t          |          5  |
                    dd	          }d d d            n# 1 swxY w Y   t          j        t          |          5  |d d                             |          
                    d
          }d d d            n# 1 swxY w Y   t           j        |j        dd <   t          j        ||           |dd                              |          }t          j        t          |          5  |
                    dd	          }d d d            n# 1 swxY w Y   t          j        t          |          5  |dd                              |          
                    d
          }d d d            n# 1 swxY w Y   t           j        |j        d d<   t          j        ||           d S )Nrr   r   r   r   r>   r?   rA   r<   r   rB   r   r   re   r   r   r   s         r)   test_frame_fillna_limitz"TestFillNA.test_frame_fillna_limit  s   	"ry,,Q//??HHPUVVVBQB&&<'SAAA 	: 	:]]%q]99F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 'SAAA 	B 	B"1"v~~e,,3353AAH	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	BVbcc
fh///BCC'''SAAA 	? 	?]]*A]>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 'SAAA 	H 	H"##wu--44J4GGH	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	HFbqb
fh/////sH   B44B8;B82DDDF**F.1F.2HHHc                     t          t          j                            d                              d                              t                              }|                    t          j                   d S )Nr   r   )	r   r   rv   rw   rx   r   intr   r   )r$   r&   s     r)   test_fillna_skip_certain_blocksz*TestFillNA.test_fillna_skip_certain_blocks  sZ     ry,,Q//??HHOOPSTTUU 			"&r+   typec                 D   t          t          j                            d                              d                                        |          }d}t          j        t          |          5  |	                    dd           d d d            d S # 1 swxY w Y   d S )Nr   r   zLimit must be greater than 0r?   r   r=   rt   
r   r   rv   rw   rx   r   rI   rJ   rK   r   r$   r   r&   rO   s       r)   test_fillna_positive_limitz%TestFillNA.test_fillna_positive_limit  s    ry,,Q//??HHIIPPQUVV,]:S111 	# 	#IIarI"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#   0BBBc                 D   t          t          j                            d                              d                                        |          }d}t          j        t          |          5  |	                    dd           d d d            d S # 1 swxY w Y   d S )Nr   r   zLimit must be an integerr?   r   g      ?rt   r   r   s       r)   test_fillna_integer_limitz$TestFillNA.test_fillna_integer_limit  s    ry,,Q//??HHIIPPQUVV(]:S111 	$ 	$IIasI###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$r   c                 n   t          t          j                            d                              d                    }t          j        |j        d ddf<   t          j        |j        dd df<   |                    d          }||usJ |                    dd	
           t          j	        ||           |                    ddid	
          }|J t          j        |j        d ddf<   t          j        |j        dd df<   d}t          j
        t          |          5  |                    d          }d d d            n# 1 swxY w Y   ||usJ t          j
        t          |          5  |                    dd	           d d d            n# 1 swxY w Y   t          j	        ||           d S )Nr   r   r   r   r   r   rU   TrV   r   r>   r?   rD   rB   rf   )r   r   rv   rw   rx   r   rE   r   r    r!   rG   rH   )r$   r&   r(   rO   s       r)   test_fillna_inplacezTestFillNA.test_fillna_inplace  s!   ry,,Q//??HHIIrr1urssAv9919%%r!!!!
		4	(((
b(+++99Aq64988rr1urssAv<'SAAA 	1 	1yyy00H	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1r!!!!'SAAA 	4 	4IIWdI333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4
b(+++++s$   "EE	E	1FFFc           	         t          t          j        ddt          j        t          j        gdddt          j        t          j        gt          j        ddddgd          }|                    ddd          }|                                }|d	                             d          |d	<   |d
                             d          |d
<   t          j        ||           |                    dddd          }|                    |                                          }|                    |                                                                          }t          j        ||           t          j
        t          d          5  |                    |                    d          d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   rk   rl   rm   r   r<   )rk   rl   rk   rl   rs   )rk   rl   r   zcolumn by columnr?   )axis)r   r   r   r   r/   r    r!   maxto_dictrI   rJ   NotImplementedErrorr   s       r)   test_fillna_dict_seriesz"TestFillNA.test_fillna_dict_series  s   faBFBF3Arvrv.faAq) 
 
 ++,,7799 ,,Q// ,,Q//
fh/// 3344 26688$$99RVVXX--//00
fh/// ].6HIII 	) 	)IIbffQiiaI(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   +F==GGc           	      T   t          t          j        ddt          j        t          j        gdddt          j        t          j        gt          j        ddddgdt          d                    }t          t          j        dd	d
dgg ddgdz  dt          d                    }|                    |          }t          t          j        ddt          j        dgdddt          j        dgt          j        ddddgdt          d                    }t          j        ||           d S )Nr   r   r   r   r   VWXYZr   rr   rS      r-   )r.   <   F   P   Z   r   r<   )rk   rl   r   VWXuZr	  r   r   r   listr   r    r!   )r$   r&   df2ra   r(   s        r)   test_fillna_dataframez TestFillNA.test_fillna_dataframe2  s7   faBFBF3Arvrv.faAq) 
 w--
 
 
 fb"b"-)))w{ 
 w--
 
 
 3 faBFB/Arvr*faAq) 
 w--
 
 
 	fh/////r+   c                    t           j                            d                              d          }t           j        |d d d d df<   t          |          }d}t          j        t          |          5  |	                    dd          }d d d            n# 1 swxY w Y   t          j        t          |          5  |j
        	                    d	          j
        }d d d            n# 1 swxY w Y   t          j        ||           |                    d
dd           t          j        t          |          5  |	                    dd          }d d d            n# 1 swxY w Y   t          j        t          |          5  |                    t                    	                    dd          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   )rr   rr   r>   r?   rD   r   )rC   r   rA   rB      r   r<   )r   rv   rw   rx   r   r   r    rG   rH   r   Tr!   insertr   float)r$   r9   r&   rO   ra   r(   s         r)   test_fillna_columnszTestFillNA.test_fillna_columnsU  s   i##A&&66x@@fAAAsssFs^^<'SAAA 	7 	7YYgAY66F	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7'SAAA 	3 	3t{{%{002H	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3
fh///
		!UA'SAAA 	7 	7YYgAY66F	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7'SAAA 	G 	Gyy''..gA.FFH	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G
fh/////sH   5BB B?!C,,C03C0>E""E&)E&0GGGc                     t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nffilr?   rB   )rI   rJ   rK   r   )r$   float_frames     r)   test_fillna_invalid_methodz%TestFillNA.test_fillna_invalid_methodh  s    ]:V444 	. 	.f---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   A  AAc                 .   d}t          j        t          |                    d                    5  |                    ddg           d d d            n# 1 swxY w Y   t          j        t          |                    d                    5  |                    d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |j        d d d	f                             |           d d d            d S # 1 swxY w Y   d S )
NzA"value" parameter must be a scalar or dict, but you passed a "{}"r  r?   r   r   tuple)r   r   zP"value" parameter must be a scalar, dict or Series, but you passed a "DataFrame"r   )rI   rJ   r   formatr   r#   )r$   r  rO   s      r)   test_fillna_invalid_valuez$TestFillNA.test_fillna_invalid_valuel  s   Q]9CJJv,>,>??? 	' 	'1v&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' ]9CJJw,?,?@@@ 	' 	'v&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'# 	 ]9C000 	7 	7QQQT"))+666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s5   AAAB00B47B4%D

DDc                    d t          ddd          D             }t          j                            d                              d          }t	          t          d          ||          }d	}t          j        t          |
          5  |                    d          }d d d            n# 1 swxY w Y   |j	        
                                |j	        
                                k    sJ d S )Nc                 2    g | ]}d t          |          z   S )zCOL.)str).0is     r)   
<listcomp>z9TestFillNA.test_fillna_col_reordering.<locals>.<listcomp>}  s"    999AQ999r+   r<   r   r0   r   )rS   r<   rS   )rF   r   datar>   r?   rD   rB   )r   r   rv   rw   r   r    rG   rH   r   r   tolist)r$   colsr#  r&   rO   filleds         r)   test_fillna_col_reorderingz%TestFillNA.test_fillna_col_reordering|  s   99q!R999y$$Q''..w77U2YY4@@@<'SAAA 	/ 	/YYgY..F	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/z  ""fn&;&;&=&=======s   
B--B14B1c                    |}t           j        |j        |j        dd         df<   t           j        |j        |j        dd          df<   |                    d          }|j        |j        dd         df         dk                                    sJ |d= |                    g                               d           d S )	Nr<   rS   r   rT   r   r   rU   r\   )r   r   rE   rF   r   r4   r_   )r$   r  rW   rX   r&  s        r)   test_fill_cornerzTestFillNA.test_fill_corner  s    (*rx"~u$%&(frx~s"##***33
6<"-u45:??AAAAAu%B''..Q.77777r+   c                 0   t          ddt          j        gi          }d}t          j        t
          |          5  |                    ddiddi          }d d d            n# 1 swxY w Y   t          dddgi          }t          j        ||           d S )Ncol1r   r   r?   r   r   r   r   r   s        r)   test_fillna_downcast_dictz$TestFillNA.test_fillna_downcast_dict  s    BF,--0'SAAA 	H 	HYY{fg5FYGGF	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hfq!f-..
fh/////s   A##A'*A'c           	      D   t          t          j        dt          j        dgddt          j        dgt          j        t          j        t          j        dgt          j        dt          j        dggt          d                    }|                    dd	d
          }|                    dd	d
          }t          t          g dd          ddt          j        dgt          j        d	t          j        t          j        gt          g dd          dg d          }t          t          g dd          t          g dd          d	d	t          j        d	gt          g dd          dg d          }t          j        ||           t          j        ||           d S )Nr   r   r   r   r   r<   ABCDr\   d   r   rV   ru   )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&   ra   result2r(   r   s         r)   "test_fillna_with_columns_and_limitz-TestFillNA.test_fillna_with_columns_and_limit  s   BFA&Arvq!+BFA&	 LL
 
 
 A66))#Q)77...i@@@BFA&fc26262LLL	:::	  ,,
 
 
 ...i@@@NNN)<<<3,LLL	:::	  ,,
 
 
	 	fh///
gy11111r+   c                     t          t          dd g          t          dd g          d          }|                                }|                    t          j        d           t          j        ||           d S )Nz
2018-05-30z
2018-09-30)date1date2Tr   )r   r   r/   r   r   r   r    r!   r$   r&   r(   s      r)   test_fillna_datetime_inplacez'TestFillNA.test_fillna_datetime_inplace  s{    $lD%9::$lD%9:: 
 
 7799
		"&$	'''
b(+++++r+   c           	         t          t          j        dt          j        dgddt          j        dgt          j        t          j        t          j        dgt          j        dt          j        dggt          d                    }|                    dd	d
          }||usJ |                    dd	dd           t          j        ||           d S )Nr   r   r   r   r   r<   r.  r\   r/  r0  T)r   rV   ru   r   r  r6  s      r)   0test_fillna_inplace_with_columns_limit_and_valuez;TestFillNA.test_fillna_inplace_with_columns_limit_and_value  s    BFA&Arvq!+BFA&	 LL
 
 
 99!3a988r!!!!
		q1d	;;;
b(+++++r+   r0   rd   yc                 v   t          t          j        dgt          j        dgd          }|                                }|d d          }|                    |d           t          ddgddgd          }t          j        ||           |rt          j        ||           d S t          j        ||           d S )Nr   r:  Tr   r0   r         )r   r   r   r/   r   r    r!   )r$   r   r%   r&   df_origresult_viewr(   s          r)   test_inplace_dict_update_viewz(TestFillNA.test_inplace_dict_update_view  s     bfa[{;;<<''))e
		#t	$$$B9D!9==>>
b(+++ 	9!+w77777!+x88888r+   c           
         t          ddt          j        dt          j        gdt          j        t          j        ddgdt          j        dddgt          j        ddt          j        d	gd
          }|                    ddd          }t          g dddt          j        dgdt          j        ddgg dg dgg d
          }t	          j        ||           d S )Nr<   r   rr   rs   r      r   r      )r+  col2col3col4r.   )ru   r   )      @g      @g      (@      I@r   rH  r   )g      $@rG  r   rH  )rH        @r   g      2@r\   rn   r   s       r)   )test_single_block_df_with_horizontal_axisz4TestFillNA.test_single_block_df_with_horizontal_axis  s    Arvr262BFBFAq1RVQ1-Arvr2	 
 
 2QQ//&&&dBFC(rvsC(&&&&&& 544	
 	
 	
 	fh/////r+   c                 
   t          t          j        ddgddt          j        gddt          j        gd          }t          g dg dddt          j        gd          }t          j        |                    ddi          |           t          j        |                    dd	d
          |           t          g dg dddt          j        gd          }t          j        |                    d	dd          |           d S )Nr   rI  r   ))rd   rk   rd   rl   )r;  rm   )r=  r   rI  )r   r   r=  rd   r0   r   )rd   rL  )r   r   g       )rL  rd   )r   r   r   r    r!   r   )r$   pdfr(   s      r)   "test_fillna_with_multi_index_framez-TestFillNA.test_fillna_with_multi_index_frame  s*   VS#. #rv. #rv. 
 
 ,,,,,, #rv. 
 
 	cjj#r33X>>>
cjjrr)B)BCCXNNN,,,,,, #rv. 
 
 	cjjbr)B)BCCXNNNNNr+   N)7__name__
__module____qualname__r*   td&skip_array_manager_not_yet_implementedr:   rQ   rY   rb   ri   rp   rz   r~   r   r   r   r   r   r   r   rI   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r  r  r  r  r  r'  r)  r,  r2  r7  r9  skip_array_manager_invalid_testr@  rJ  rN   r+   r)   r   r      s~       D D D. .0 0 /.0"5 5 5.$ $ $
6 
6 
6	& 	& 	&$ $ $ 
0 
0 
00 0 0( ( (>0 0 0(*+ *+ *+X"8 "8 "8H0 0 0"% % %( ( (4 [Y3*(EFF0 0 GF00 0 0" [URBFC$8990 0 :90*0 *0 *0X; ; ;; ; ;0 0 0&0 0 0.   [Vc5\22# # 32# [Vc5\22$ $ 32$, , ,2) ) )8!0 !0 !0F0 0 0&. . .7 7 7 > > >	8 	8 	80 0 0"2 "2 "2H
, 
, 
,, , ,$ '[URr););$<==9 9 >= ('90 0 0.O O O O Or+   r   c                     t          g dg dg dgg d          } |                     dd          }|                    d	          }|                                                                                                d	k    sJ d S )
N)r   r   r   r   )r   r   r   r   )r   r   r   rI  )i1i2i3f1r\   rY  rZ  r   r   )r   pivotr   isnasum)r&   df_nonconsolra   s      r)   !test_fillna_nonconsolidated_framera    s    	NNNNNN	

 )((
 
 
B 88$855L  ##F;;==""$$))))))r+   c                      t          d d gd d ggddg          } t          j        d          5  |                     dddd	           d d d            n# 1 swxY w Y   t          ddgddggddg          }t          j        | |           d S )
Nr   r   r\   Fr   r   r   Tr   )r   r    rG   r   r!   )r&   r(   s     r)   test_fillna_nones_inplacerc  .  s    	
d|$c

 
 
B 
	#E	*	* 8 8
		aa(($	7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1a&1a&)C:>>>H"h'''''s   AAAfuncrA   re   c                     t          dg di          }t          j        t                    5   t	          ||                        d d d            d S # 1 swxY w Y   d S )Nrk   r   )r   r    rG   rH   getattr)rd  r&   s     r)   test_pad_backfill_deprecatedrg  ;  s     
C#	$	$B		#M	2	2  D                 s   AAA)numpyr   rI   pandas.util._test_decoratorsutil_test_decoratorsrR  pandasr   r   r   r   r   r   r	   r
   r   r   pandas._testing_testingr    pandas.tests.frame.commonr   r   ra  rc  rT  rU  rg  rW  r+   r)   <module>rp     sg        ) ) ) ) ) ) ) ) )                              8 8 8 8 8 8FO FO FO FO FO FO FO FOR* * *
( 
( 
( %!455  65  r+   