10
10
from pandas .core .algorithms import factorize
11
11
from pandas .core .base import PandasObject , PandasDelegate
12
12
import pandas .core .common as com
13
- from pandas .util .decorators import cache_readonly
13
+ from pandas .util .decorators import cache_readonly , deprecate_kwarg
14
14
15
15
from pandas .core .common import (CategoricalDtype , ABCSeries , ABCIndexClass , ABCPeriodIndex , ABCCategoricalIndex ,
16
16
isnull , notnull , is_dtype_equal ,
@@ -1168,7 +1168,8 @@ def to_dense(self):
1168
1168
"""
1169
1169
return np .asarray (self )
1170
1170
1171
- def fillna (self , fill_value = None , method = None , limit = None ):
1171
+ @deprecate_kwarg (old_arg_name = 'fill_value' , new_arg_name = 'value' )
1172
+ def fillna (self , value = None , method = None , limit = None ):
1172
1173
""" Fill NA/NaN values using the specified method.
1173
1174
1174
1175
Parameters
@@ -1187,8 +1188,8 @@ def fillna(self, fill_value=None, method=None, limit=None):
1187
1188
filled : Categorical with NA/NaN filled
1188
1189
"""
1189
1190
1190
- if fill_value is None :
1191
- fill_value = np .nan
1191
+ if value is None :
1192
+ value = np .nan
1192
1193
if limit is not None :
1193
1194
raise NotImplementedError ("specifying a limit for fillna has not "
1194
1195
"been implemented yet" )
@@ -1203,24 +1204,23 @@ def fillna(self, fill_value=None, method=None, limit=None):
1203
1204
# we only have one NA in categories
1204
1205
values [values == nan_pos ] = - 1
1205
1206
1206
-
1207
1207
# pad / bfill
1208
1208
if method is not None :
1209
1209
1210
- values = self .to_dense ().reshape (- 1 ,len (self ))
1210
+ values = self .to_dense ().reshape (- 1 , len (self ))
1211
1211
values = com .interpolate_2d (
1212
- values , method , 0 , None , fill_value ).astype (self .categories .dtype )[0 ]
1212
+ values , method , 0 , None , value ).astype (self .categories .dtype )[0 ]
1213
1213
values = _get_codes_for_values (values , self .categories )
1214
1214
1215
1215
else :
1216
1216
1217
- if not isnull (fill_value ) and fill_value not in self .categories :
1217
+ if not isnull (value ) and value not in self .categories :
1218
1218
raise ValueError ("fill value must be in categories" )
1219
1219
1220
1220
mask = values == - 1
1221
1221
if mask .any ():
1222
1222
values = values .copy ()
1223
- values [mask ] = self .categories .get_loc (fill_value )
1223
+ values [mask ] = self .categories .get_loc (value )
1224
1224
1225
1225
return Categorical (values , categories = self .categories , ordered = self .ordered ,
1226
1226
name = self .name , fastpath = True )
0 commit comments