Skip to content

Commit 13b52a2

Browse files
authored
Merge pull request #28 from kthyng/add_index_checks
added index checks
2 parents ff16ed1 + b82de85 commit 13b52a2

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

cf_pandas/accessor.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,23 @@ def __setitem__(self, key: str, values: Union[Sequence, Series]):
149149
# make new column
150150
self._obj[key] = values
151151
# return self._obj[key]
152+
elif isinstance(col, pd.Index):
153+
# which of possible multi index it is
154+
# does single and multi index need to be separated?
155+
# ilev = self._obj.index.names.index(col.name)
156+
# self._obj.index = self._obj.index.set_levels(values, level=ilev)
157+
158+
# loop over levels in index so we know which level to replace
159+
inds = []
160+
for lev in range(self._obj.index.nlevels):
161+
ind = self._obj.index.get_level_values(lev)
162+
if self._obj.index.names[lev] == col.name:
163+
save_type = type(col)
164+
ind = save_type(values)
165+
ind.name = col.name
166+
inds.append(ind)
167+
self._obj = self._obj.set_index(inds)
168+
152169
else:
153170
raise ValueError("Setting item only works if key matches one column only.")
154171

0 commit comments

Comments
 (0)