Skip to content

Commit 9721041

Browse files
bmcfeejreback
authored andcommitted
added copy/deepcopy to ndframe, fixes pandas-dev#15370
1 parent 12f2c6a commit 9721041

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
@@ -3161,6 +3161,13 @@ def copy(self, deep=True):
31613161
data = self._data.copy(deep=deep)
31623162
return self._constructor(data).__finalize__(self)
31633163

3164+
__copy__ = copy
3165+
3166+
def __deepcopy__(self, memo=None):
3167+
if memo is None:
3168+
memo = {}
3169+
return self.copy(deep=True)
3170+
31643171
def _convert(self, datetime=False, numeric=False, timedelta=False,
31653172
coerce=False, copy=True):
31663173
"""

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)