Skip to content

Commit c97b2ee

Browse files
committed
prevent infinite recursion error
1 parent a3f688a commit c97b2ee

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

pandas/core/generic.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -6004,7 +6004,7 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
60046004
# {'A': NA} -> 0
60056005
elif not is_list_like(value):
60066006
keys = [(k, src) for k, src in compat.iteritems(to_replace)
6007-
if k in self]
6007+
if k in self and len(src) > 0]
60086008
keys_len = len(keys) - 1
60096009
for i, (k, src) in enumerate(keys):
60106010
convert = i == keys_len
@@ -6018,7 +6018,8 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
60186018
raise TypeError('value argument must be scalar, dict, or '
60196019
'Series')
60206020

6021-
elif is_list_like(to_replace): # [NA, ''] -> [0, 'missing']
6021+
# [NA, ''] -> [0, 'missing']
6022+
elif is_list_like(to_replace):
60226023
if is_list_like(value):
60236024
if len(to_replace) != len(value):
60246025
raise ValueError('Replacement lists must match '
@@ -6030,7 +6031,8 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
60306031
inplace=inplace,
60316032
regex=regex)
60326033

6033-
else: # [NA, ''] -> 0
6034+
# [NA, ''] -> 0
6035+
elif len(to_replace) > 0:
60346036
new_data = self._data.replace(to_replace=to_replace,
60356037
value=value, inplace=inplace,
60366038
regex=regex)

0 commit comments

Comments
 (0)