Skip to content

Commit b897b8e

Browse files
committed
fixup! Add case_when API * Used to support conditional assignment operation.
1 parent fd12a30 commit b897b8e

File tree

1 file changed

+2
-9
lines changed

1 file changed

+2
-9
lines changed

pandas/core/case_when.py

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,9 @@ def case_when(obj: pd.DataFrame | pd.Series, *args, default: Any) -> pd.Series:
140140

141141
# construct series on which we will apply `Series.mask`
142142
if is_list_like(default):
143-
series = pd.Series(default).reset_index(drop=True)
143+
series = pd.Series(default.values, index=obj.index)
144144
else:
145-
series = pd.Series([default] * obj.shape[0])
145+
series = pd.Series([default] * obj.shape[0], index=obj.index)
146146

147147
for i in range(0, len_args, 2):
148148
# get conditions
@@ -154,13 +154,6 @@ def case_when(obj: pd.DataFrame | pd.Series, *args, default: Any) -> pd.Series:
154154
# get replacements
155155
replacements = args[i + 1]
156156

157-
# if `conditions` or `replacements` are series, make sure to reset their index
158-
if isinstance(conditions, pd.Series):
159-
conditions = conditions.reset_index(drop=True)
160-
161-
if isinstance(replacements, pd.Series):
162-
replacements = replacements.reset_index(drop=True)
163-
164157
# `Series.mask` call
165158
series = series.mask(conditions, replacements)
166159

0 commit comments

Comments
 (0)