
    [6gl                        d dl Zd dlZd dlm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ej                            dej        ej        dej        ej        ej        dej        ej        g	ej        ej        dddddej        ej        g	dddifej        ej        dej        ej        ej        dej        ej        g	ej        ej        ddej        ej        dej        ej        g	ddddfej        ej        dej        ej        ej        dej        ej        g	ej        ej        dej        ej        ej        dddg	dddifej        ej        dej        ej        ej        dej        ej        g	ej        ej        dej        ej        ej        ddej        g	ddddfej        ej        ej        ej        ej        ej        ej        gej        ej        ej        ej        ej        ej        ej        gddddf e d           e d          ddddfej        ej        dej        ej        ej        dej        ej        g	ej        ej        dddddej        ej        g	dddifej        ej        dej        ej        ej        dej        ej        g	ej        ej        dej        ej        ddej        ej        g	ddddfej        ej        dej        ej        ej        dej        ej        g	dddej        ej        ej        dej        ej        g	dddifej        ej        dej        ej        ej        dej        ej        g	ej        ddej        ej        ej        dej        ej        g	ddddff
          d             Z!dS )    N)using_pyarrow_string_dtype)
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ej	        
                     e            d          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/ej	        
                     e            d          d-             Z0d. Z1d/ Z2d0 Z3d1 Z4ej5        ej	                            dd2d2d2d3g          d4                         Z6d5 Z7d6 Z8d7S )8
TestFillNAc                    t          t          j        gdz  t          t	          d          t          gt          j        ddgd          }g d|_        |d d          }t          j        |          5  |                    ddid	           d d d            n# 1 swxY w Y   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tmassert_cow_warningfillnaassert_frame_equalshares_memoryiloc)selfusing_copy_on_writewarn_copy_on_writedforigexpecteds         e/var/www/surfInsights/venv3-11/lib/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 "#566 	. 	.IIsAhI---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. %!)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Cs   0BBBc                    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 ntt	          j	        t          d	          5  |d                             dd           d d d            n# 1 swxY w Y   |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   zinplace methodmatchr   )r   fullr   r   r    raises_chained_assignment_errorr"   isnanallassert_produces_warningFutureWarninglen_mgrarraysr$   values)r&   r'   arrr)   s       r,   test_fillna_on_column_viewz%TestFillNA.test_fillna_on_column_view4   s    gh''s''' 	+355 / /1R.../ / / / / / / / / / / / / / /8C1I&&**,,,,,,+MAQRRR / /1R.../ / / / / / / / / / / / / / /1IO((***** 27>""a''''	3///////s$   A00A47A4	C33C7:C7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 deprecatedr3   padmethodz'Must specify a fill 'value' or 'method'z(Cannot specify both 'value' and 'method'ffill)r   r   locindexr"   r8   r    r9   r:   r7   pytestraises
ValueError)r&   datetime_frametfzero_filledmsgpaddeds         r,   test_fillna_datetimezTestFillNA.test_fillna_datetimeG   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:zcan't fill 0 in string)reasonc                 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 )NrB      r   r   r   valuerD   r3   rE   rF   )r   r   rI   rJ   r"   r    r9   r:   )r&   float_string_framemfrQ   s       r,   test_fillna_mixed_typez!TestFillNA.test_fillna_mixed_type^   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   rW   r   r   rX   r   dtyperD   r3   rE   rF   )
reindexr   r   rI   rJ   r"   r   r    r9   r:   )r&   mixed_float_framer[   resultrQ   s        r,   test_fillna_mixed_floatz"TestFillNA.test_fillna_mixed_floati   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_   )rE   backfillz)Series.fillna with 'method' is deprecatedr3   TrG   r   rF   )rK   skipr   r    r9   r:   rg   r"   )r&   r'   r)   mrQ   s        r,   test_fillna_emptyzTestFillNA.test_fillna_emptyu   s     	UKSTTTu%%%$ 	& 	&A=C+MEEE & &1d3331%%%& & & & & & & & & & & & & & &	& 	&s   	8BB	B	c                    t          ddt          j        dgddt          j        dgddt          j        dgg          }|rKt          j        t
          d          5  |                    ddi          }d d d            n# 1 swxY w Y   n|                    ddi          }t          g dg d	g d
g          }t          j        ||           |rMt          j        t
          d          5  |                    ddid          }d d d            n# 1 swxY w Y   n|                    ddid          }t          j        ||           |J d S )NabcDowncastingr3   r   r   )rn   rn   r   rn   )ro   ro   r   ro   )rp   rp   r   rp   Tr   r   r   r   r    r9   r:   r"   r#   )r&   using_infer_stringr)   rd   r+   return_values         r,   test_fillna_different_dtypez&TestFillNA.test_fillna_different_dtype   s   3$sC&=S"&RU?VW
 
  	++MOOO / /Au:../ / / / / / / / / / / / / / / YY5z**F###%;%;%;=S=S=ST
 
 	fh/// 	?+MOOO C C!yy!UTyBBC C C C C C C C C C C C C C C 99aZ9>>L
b(+++#####s$   A>>BB+DDD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   rB   i  )r   r   )r   r   r   limit)r   r   randomdefault_rngstandard_normalr   r%   r1   r"   r    r#   r&   r)   r+   rd   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/////    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   rX   )	r   r   r   r1   r"   rI   rJ   r    r#   r~   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:00rD   r3   rE   rF   bfill)r   r   r   r    r9   r:   r"   r#   )r&   r)   exprQ   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   rD   r3   rE   rF   )      ?r   r   r   )	r   r   r   r   r    r9   r:   r"   r#   r&   r)   rQ   rd   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   )
categoriesrn   ro   dcatsvals)r   r   r   r   )rn   ro   ro   r   rX   z3Cannot setitem on a Categorical with a new categoryr3   r   rp   rD   rE   rF   r   )subset)rn   ro   rn   )r   r   r   r   r"   r    r#   rK   rL   	TypeErrorr9   r:   dropna)r&   catr   r)   cat2vals2df_exp_fillcat3vals3df_exp_drop_catscat4vals4df_exp_drop_allr   rQ   rp   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:45rn   rX   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   rd   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 )	Nrn   r   z.The 'downcast' keyword in fillna is deprecatedr3   r   inferdowncastr   rr   r   s        r,   test_fillna_downcastzTestFillNA.test_fillna_downcast6  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 fillnar3    Fr   )r    r9   r:   r"   assert_equal)r&   frame_or_seriesobjrQ   rd   s        r,   test_fillna_downcast_falsez%TestFillNA.test_fillna_downcast_falseG  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   r3   r   r   r   )r   int64r    r9   r:   r"   ra   int32astyper   float64)
r&   r   r   rQ   r   r+   obj2res2	expected2res3s
             r,   test_fillna_downcast_noopz$TestFillNA.test_fillna_downcast_noopO  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   rJ   r   r           )r   r   r   r    r9   r"   r1   r#   )r&   r   r)   rd   r+   s        r,   -test_fillna_dictlike_value_duplicate_colnamesz8TestFillNA.test_fillna_dictlike_value_duplicate_colnamesi  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          j        t          |          5  |	                    d	          }d d d            n# 1 swxY w Y   t          d	g dg d          }t          j
        ||           t          t          d
          ddgd          }|rIt          j        t          d          5  |	                    d          }d d d            n# 1 swxY w Y   n|	                    d          }t          dt          d
          ddg          }t          j
        ||           d S )Nr   )r   r   r   r   rB   r   r   rB   rJ   Downcasting object dtype arraysr3   r   r   r   r   r   )rJ   r   ra   rq   r   )r   dtypesr	   r   ra   r    r   r9   r:   r"   r#   range)r&   rs   r)   rd   r+   rQ   s         r,   test_fillna_dtype_conversionz'TestFillNA.test_fillna_dtype_conversiont  s   ___oooFFF28H--.2///JJJ
vx000/'SAAA 	" 	"YYq\\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"QoooOOO
fh/// U1XXSzKKK 	&+MOOO * *5))* * * * * * * * * * * * * * * YYu%%FU%((S#JGGG
fh/////s$   8BB!BD00D47D4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+   rd   s        r,   *test_fillna_dtype_conversion_equiv_replacez5TestFillNA.test_fillna_dtype_conversion_equiv_replace  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 )Nr2   r   r   )r   )r   barN)foo2bar2Nr   r   r   r^   20130110r   ?)r2   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&   r)   rd   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 )NrB   r   rC   rD   r3   rH   rF   )
r   r   rI   rJ   r    r9   r:   r"   r#   rH   r&   rN   rQ   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 )NrB   r   rC   rD   r3   r   rF   )
r   r   rI   rJ   r    r9   r:   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 )Nrw   r   rw   r   r   rE   rB   rG   rz   rD   r3   rF   r   rh   r   r   aranger   r{   r|   r}   rb   r    r9   r:   r"   r   r%   r#   r&   rJ   r)   rd   rQ   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 )Nrw   r   r   r   rD   r3   rE   rB   r   rF   r   r   rh   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   r{   r|   r}   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 0r3   r   rC   ry   
r   r   r{   r|   r}   r   rK   rL   rM   r"   r&   r   r)   rQ   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 integerr3   r   g      ?ry   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   rX   TrY   r   rD   r3   rH   rF   ri   )r   r   r{   r|   r}   r   rI   r"   r    r#   r9   r:   )r&   r)   r+   rQ   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   rn   ro   rp   r   rB   )rn   ro   rn   ro   rx   )rn   ro   r   zcolumn by columnr3   )axis)r   r   r   r"   r1   r    r#   maxto_dictrK   rL   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   rw   rV      r/   )r0   <   F   P   Z   r   rB   )rn   ro   r   VWXuZr  r   r   r   listr"   r    r#   )r&   r)   df2rd   r+   s        r,   test_fillna_dataframez TestFillNA.test_fillna_dataframeH  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   )rw   rw   rD   r3   rH   r   )rG   r  rE   rF      r   rB   )r   r{   r|   r}   r   r   r    r9   r:   r"   Tr#   insertr   float)r&   r?   r)   rQ   rd   r+   s         r,   test_fillna_columnszTestFillNA.test_fillna_columnsk  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ffilr3   rF   )rK   rL   rM   r"   )r&   float_frames     r,   test_fillna_invalid_methodz%TestFillNA.test_fillna_invalid_method~  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  r3   r   r   tuple)r   r   zP"value" parameter must be a scalar, dict or Series, but you passed a "DataFrame"r   )rK   rL   r   formatr"   r%   )r&   r  rQ   s      r,   test_fillna_invalid_valuez$TestFillNA.test_fillna_invalid_value  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   rB   r   r2   r   )rV   rB   rV   )rJ   r   datarD   r3   rH   rF   )r   r   r{   r|   r   r    r9   r:   r"   r   tolist)r&   colsr)  r)   rQ   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 )	NrB   rV   r   rW   r   r   rX   r_   )r   r   rI   rJ   r"   r8   rb   )r&   r  rZ   r[   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   r3   r   r   r   rr   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   rB   ABCDr_   d   r  rY   rz   )r5  r   r5  r5  r   r`   )r   r   rB   r   r   )r   r   r   r   r   )r   r   r5  r   )r   r   r   r  r"   r	   r    r#   )r&   r)   rd   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   r1   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   rB   r4  r_   r5  r6  T)r  rY   rz   r   r  r<  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   r2   rg   yc                    t          t          j        dgt          j        dgd          }|                                }|d d          }t	          j        |          5  |                    |d           d d d            n# 1 swxY w Y   t          ddgddgd          }t	          j        ||           |rt	          j        ||           d S t	          j        ||           d S )Nr   r@  Tr   r2   r         )r   r   r   r1   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"#566 	) 	)IIc4I(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)B9D!9==>>
b(+++ 	9!+w77777!+x88888s   BBB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 )NrB   r   rw   rx   r      r   r      )r1  col2col3col4r0   )rz   r  )      @      @g      (@      I@r   rO  r   )g      $@rM  r   rO  )rO        @r   g      2@r_   )r   r   r   r"   r    r#   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   rP  r   ))rg   rn   rg   ro   )rA  rp   )rC  r   rP  )r   r   rC  rg   r2   r   )rg   rS  )r   r   g       )rS  rg   )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)9__name__
__module____qualname__r-   td&skip_array_manager_not_yet_implementedr@   rS   rK   markxfailr   r\   re   rl   ru   r   r   r   r   r   r   r   r   r   parametrizer   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r  r  r  r  r"  r-  r/  r2  r8  r=  r?  skip_array_manager_invalid_testrF  rQ  rU   r   r,   r   r      s       D D D6 .0 0 /.0$5 5 5. [1133<TUU$ $ VU$
6 
6 
6	& 	& 	&$ $ $0
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 > > > [1133<TUU	8 	8 VU	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   rP  )i1i2i3f1r_   ra  rb  r   r   )r   pivotr"   isnasum)r)   df_nonconsolrd   s      r,   !test_fillna_nonconsolidated_frameri  9  s    	NNNNNN	

 )((
 
 
B 88$855L  ##F;;==""$$))))))r   c                  2   t          d d gd d ggddg          } d}t          j        t          |          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_   r   r3   r   r   r   Tr   )r   r    r9   r:   r"   r#   )r)   rQ   r+   s      r,   test_fillna_nones_inplacerk  H  s    	
d|$c

 
 
B ,C		#M	=	=	= 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"funcrE   rh   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 )Nrn   r   )r   r    r9   r:   getattr)rl  r)   s     r,   test_pad_backfill_deprecatedro  V  s     
C#	$	$B		#M	2	2  D                 s   AAAz#data, expected_data, method, kwargsr   rx   rP  rN  rH   
limit_areainsider   )rp  rz   outsiderB   r   c                     t          |           }t          |          } t          ||          di |}t          j        ||           d S )Nr_  )r   rn  r    r#   )r)  expected_datarG   kwargsr)   r+   rd   s          r,   test_ffill_bfill_limit_arearv  ^  sU    F 
4B''H WR  **6**F&(+++++r   )"numpyr   rK   pandas._configr   pandas.util._test_decoratorsutil_test_decoratorsrY  pandasr   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr    pandas.tests.frame.commonr   r   ri  rk  r[  r]  ro  r   r   rv  r_  r   r,   <module>r     s        5 5 5 5 5 5 ) ) ) ) ) ) ) ) )                              8 8 8 8 8 8^O ^O ^O ^O ^O ^O ^O ^OB* * *( ( ( %!455  65 ) VRVQ2626JVRVS#sCbfbfE8$		
 VRVQ2626JVRVS#rvrvsBFBFK#a00		
 VRVQ2626JVRVS"&"&"&#sCH9%		
 VRVQ2626JVRVS"&"&"&#sBFK$q11		
 VRVRVRVRVRVRVDVRVRVRVRVRVRVD$q11		
 E!HHE!HH$q11		
 VRVQ2626JVRVS#sCbfbfE8$		
 VRVQ2626JVRVS"&"&#sBFBFK#a00		
 VRVQ2626J#sBFBFBFCH9%		
 VRVQ2626JVS#rvrvrvsBFBFK$q11		
o=@ @B, ,C@ @B, , ,r   