@@ -721,13 +721,13 @@ def __setstate__(self, state):
721
721
# to avoid definitional recursion
722
722
# e.g. say fill_value needing _data to be
723
723
# defined
724
- for k in self ._internal_names :
724
+ for k in self ._internal_names_set :
725
725
if k in state :
726
726
v = state [k ]
727
727
object .__setattr__ (self , k , v )
728
728
729
729
for k , v in state .items ():
730
- if k not in self ._internal_names :
730
+ if k not in self ._internal_names_set :
731
731
object .__setattr__ (self , k , v )
732
732
733
733
else :
@@ -938,15 +938,22 @@ def to_clipboard(self, excel=None, sep=None, **kwargs):
938
938
@classmethod
939
939
def _create_indexer (cls , name , indexer ):
940
940
""" create an indexer like _name in the class """
941
- iname = '_%s' % name
942
- setattr (cls , iname , None )
943
941
944
- def _indexer (self ):
945
- if getattr (self , iname , None ) is None :
946
- setattr (self , iname , indexer (self , name ))
947
- return getattr (self , iname )
942
+ if getattr (cls , name , None ) is None :
943
+ iname = '_%s' % name
944
+ setattr (cls , iname , None )
948
945
949
- setattr (cls , name , property (_indexer ))
946
+ def _indexer (self ):
947
+ i = getattr (self , iname )
948
+ if i is None :
949
+ i = indexer (self , name )
950
+ setattr (self , iname , i )
951
+ return i
952
+
953
+ setattr (cls , name , property (_indexer ))
954
+
955
+ # add to our internal names set
956
+ cls ._internal_names_set .add (iname )
950
957
951
958
def get (self , key , default = None ):
952
959
"""
@@ -1831,9 +1838,9 @@ def fillna(self, value=None, method=None, axis=0, inplace=False,
1831
1838
pad / ffill: propagate last valid observation forward to next valid
1832
1839
backfill / bfill: use NEXT valid observation to fill gap
1833
1840
value : scalar, dict, or Series
1834
- Value to use to fill holes (e.g. 0), alternately a dict/Series of
1835
- values specifying which value to use for each index (for a Series) or
1836
- column (for a DataFrame). (values not in the dict/Series will not be
1841
+ Value to use to fill holes (e.g. 0), alternately a dict/Series of
1842
+ values specifying which value to use for each index (for a Series) or
1843
+ column (for a DataFrame). (values not in the dict/Series will not be
1837
1844
filled). This value cannot be a list.
1838
1845
axis : {0, 1}, default 0
1839
1846
0: fill column-by-column
@@ -1845,8 +1852,8 @@ def fillna(self, value=None, method=None, axis=0, inplace=False,
1845
1852
limit : int, default None
1846
1853
Maximum size gap to forward or backward fill
1847
1854
downcast : dict, default is None
1848
- a dict of item->dtype of what to downcast if possible,
1849
- or the string 'infer' which will try to downcast to an appropriate
1855
+ a dict of item->dtype of what to downcast if possible,
1856
+ or the string 'infer' which will try to downcast to an appropriate
1850
1857
equal type (e.g. float64 to int64 if possible)
1851
1858
1852
1859
See also
0 commit comments