Skip to content

Commit 80b9176

Browse files
committed
ENH: support picklability of Index subclasses
1 parent 05995f2 commit 80b9176

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

pandas/core/internals.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,12 @@ def __len__(self):
6868
def __getstate__(self):
6969
# should not pickle generally (want to share ref_items), but here for
7070
# completeness
71-
return (np.asarray(self.items), np.asarray(self.ref_items),
72-
self.values)
71+
return (self.items, self.ref_items, self.values)
7372

7473
def __setstate__(self, state):
7574
items, ref_items, values = state
76-
self.items = Index(items)
77-
self.ref_items = Index(ref_items)
75+
self.items = _ensure_index(items)
76+
self.ref_items = _ensure_index(ref_items)
7877
self.values = values
7978
self.ndim = values.ndim
8079

@@ -153,7 +152,7 @@ def delete(self, item):
153152
y : Block (new object)
154153
"""
155154
loc = self.items.get_loc(item)
156-
new_items = np.delete(np.asarray(self.items), loc)
155+
new_items = self.items.delete(loc)
157156
new_values = np.delete(self.values, loc, 0)
158157
return make_block(new_values, new_items, self.ref_items)
159158

@@ -285,8 +284,8 @@ def set_items_norename(self, value):
285284

286285
def __getstate__(self):
287286
block_values = [b.values for b in self.blocks]
288-
block_items = [np.asarray(b.items) for b in self.blocks]
289-
axes_array = [np.asarray(ax) for ax in self.axes]
287+
block_items = [b.items for b in self.blocks]
288+
axes_array = [ax for ax in self.axes]
290289
return axes_array, block_values, block_items
291290

292291
def __setstate__(self, state):

0 commit comments

Comments
 (0)