Skip to content

Commit af45103

Browse files
committed
added copy/deepcopy to ndframe, fixes pandas-dev#15370
1 parent 5959fe1 commit af45103

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

pandas/core/generic.py

+7
Original file line numberDiff line numberDiff line change
@@ -3156,6 +3156,13 @@ def copy(self, deep=True):
31563156
data = self._data.copy(deep=deep)
31573157
return self._constructor(data).__finalize__(self)
31583158

3159+
__copy__ = copy
3160+
3161+
def __deepcopy__(self, memo=None):
3162+
if memo is None:
3163+
memo = {}
3164+
return self.copy(deep=True)
3165+
31593166
def _convert(self, datetime=False, numeric=False, timedelta=False,
31603167
coerce=False, copy=True):
31613168
"""

pandas/tests/frame/test_misc_api.py

+9
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,15 @@ def test_deepcopy(self):
332332
for idx, value in compat.iteritems(series):
333333
self.assertNotEqual(self.frame['A'][idx], value)
334334

335+
def test_deepcopy_empty(self):
336+
# This test covers empty frame copying with non-empty column sets
337+
# as reported in issue #15370
338+
# https://github.com/pandas-dev/pandas/issues/15370
339+
empty_frame = DataFrame(data=[], index=[], columns=['A'])
340+
empty_frame_copy = deepcopy(empty_frame)
341+
342+
self.assertEqual(empty_frame, empty_frame_copy)
343+
335344
# ---------------------------------------------------------------------
336345
# Transposing
337346

0 commit comments

Comments
 (0)