From d97f49dc774de16b63295a9149a7638b4875eb75 Mon Sep 17 00:00:00 2001 From: jreback Date: Tue, 14 Jan 2014 19:56:03 -0500 Subject: [PATCH] BUG: Bug in propogating metadata on resample (GH5862) --- doc/source/release.rst | 1 + pandas/core/generic.py | 2 +- pandas/tests/test_generic.py | 31 ++++++++++++++++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/doc/source/release.rst b/doc/source/release.rst index aa772ef437355..9f0b42dd5b741 100644 --- a/doc/source/release.rst +++ b/doc/source/release.rst @@ -95,6 +95,7 @@ Bug Fixes - Bug in assigning to chained series with a series via ix (:issue:`5928`) - Bug in creating an empty DataFrame, copying, then assigning (:issue:`5932`) - Bug in DataFrame.tail with empty frame (:issue:`5846`) + - Bug in propogating metadata on ``resample`` (:issue:`5862`) pandas 0.13.0 ------------- diff --git a/pandas/core/generic.py b/pandas/core/generic.py index a5a7021d9f4b7..549a199e9e3dd 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -2562,7 +2562,7 @@ def resample(self, rule, how=None, axis=0, fill_method=None, axis=axis, kind=kind, loffset=loffset, fill_method=fill_method, convention=convention, limit=limit, base=base) - return sampler.resample(self) + return sampler.resample(self).__finalize__(self) def first(self, offset): """ diff --git a/pandas/tests/test_generic.py b/pandas/tests/test_generic.py index 14082486f80a0..5ba2a4519db0f 100644 --- a/pandas/tests/test_generic.py +++ b/pandas/tests/test_generic.py @@ -285,7 +285,6 @@ def test_metadata_propagation(self): except (AttributeError): pass - # --------------------------- # non-preserving (by default) # --------------------------- @@ -428,6 +427,19 @@ def test_metadata_propagation_indiv(self): result = o.T self.check_metadata(o,result) + # resample + ts = Series(np.random.rand(1000), + index=date_range('20130101',periods=1000,freq='s'), + name='foo') + result = ts.resample('1T') + self.check_metadata(ts,result) + + result = ts.resample('1T',how='min') + self.check_metadata(ts,result) + + result = ts.resample('1T',how=lambda x: x.sum()) + self.check_metadata(ts,result) + def test_interpolate(self): ts = Series(np.arange(len(self.ts), dtype=float), self.ts.index) @@ -768,6 +780,23 @@ def test_spline(self): expected = Series([1, 2, 3, 4, 5, 6, 7]) assert_series_equal(result, expected) + def test_metadata_propagation_indiv(self): + + # groupby + df = DataFrame({'A': ['foo', 'bar', 'foo', 'bar', + 'foo', 'bar', 'foo', 'foo'], + 'B': ['one', 'one', 'two', 'three', + 'two', 'two', 'one', 'three'], + 'C': np.random.randn(8), + 'D': np.random.randn(8)}) + result = df.groupby('A').sum() + self.check_metadata(df,result) + + # resample + df = DataFrame(np.random.randn(1000,2), index=date_range('20130101',periods=1000,freq='s')) + result = df.resample('1T') + self.check_metadata(df,result) + class TestPanel(tm.TestCase, Generic): _typ = Panel _comparator = lambda self, x, y: assert_panel_equal(x, y)