Skip to content

Commit 96d12a6

Browse files
committed
series.map: support dicts with defaults
1 parent e8f9d27 commit 96d12a6

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

pandas/core/series.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# pylint: disable=E1101,E1103
77
# pylint: disable=W0703,W0622,W0613,W0201
88

9+
import collections
910
import types
1011
import warnings
1112

@@ -2132,10 +2133,15 @@ def map_f(values, f):
21322133
else:
21332134
map_f = lib.map_infer
21342135

2135-
if isinstance(arg, (dict, Series)):
2136-
if isinstance(arg, dict):
2137-
arg = self._constructor(arg, index=arg.keys())
2136+
default_dict_types = collections.Counter, collections.defaultdict
2137+
if isinstance(arg, default_dict_types):
2138+
dict_with_default = arg
2139+
arg = lambda x: dict_with_default[x]
21382140

2141+
elif isinstance(arg, dict):
2142+
arg = self._constructor(arg, index=arg.keys())
2143+
2144+
if isinstance(arg, Series):
21392145
indexer = arg.index.get_indexer(values)
21402146
new_values = algorithms.take_1d(arg._values, indexer)
21412147
else:

0 commit comments

Comments
 (0)