Skip to content

Commit 5e82396

Browse files
committed
DEPR: deprecate TimeSeries officially
1 parent 35f1eaf commit 5e82396

14 files changed

+54
-26
lines changed

doc/source/whatsnew/v0.17.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,7 @@ Deprecations
664664
can easily be replaced by using the ``add`` and ``mul`` methods:
665665
``DataFrame.add(other, fill_value=0)`` and ``DataFrame.mul(other, fill_value=1.)``
666666
(:issue:`10735`).
667+
- ``TimeSeries`` deprecated in favor of ``Series`` (note that this has been alias since 0.13.0), (:issue:`10890`)
667668

668669
.. _whatsnew_0170.prior_deprecations:
669670

pandas/core/series.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ def _set_axis(self, axis, labels, fastpath=False):
261261

262262
is_all_dates = labels.is_all_dates
263263
if is_all_dates:
264+
264265
if not isinstance(labels, (DatetimeIndex, PeriodIndex, TimedeltaIndex)):
265266
labels = DatetimeIndex(labels)
266267

@@ -2779,7 +2780,14 @@ def _try_cast(arr, take_fast_path):
27792780
return subarr
27802781

27812782
# backwards compatiblity
2782-
TimeSeries = Series
2783+
class TimeSeries(Series):
2784+
2785+
def __init__(self, *args, **kwargs):
2786+
# deprecation TimeSeries, #10890
2787+
warnings.warn("TimeSeries is deprecated. Please use Series",
2788+
FutureWarning, stacklevel=2)
2789+
2790+
super(TimeSeries, self).__init__(*args, **kwargs)
27832791

27842792
#----------------------------------------------------------------------
27852793
# Add plotting methods to Series

pandas/io/pytables.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
import os
1414

1515
import numpy as np
16-
from pandas import (Series, TimeSeries, DataFrame, Panel, Panel4D, Index,
16+
import pandas as pd
17+
from pandas import (Series, DataFrame, Panel, Panel4D, Index,
1718
MultiIndex, Int64Index, Timestamp)
1819
from pandas.sparse.api import SparseSeries, SparseDataFrame, SparsePanel
1920
from pandas.sparse.array import BlockIndex, IntIndex
@@ -164,7 +165,7 @@ class DuplicateWarning(Warning):
164165

165166
Series: u('series'),
166167
SparseSeries: u('sparse_series'),
167-
TimeSeries: u('series'),
168+
pd.TimeSeries: u('series'),
168169
DataFrame: u('frame'),
169170
SparseDataFrame: u('sparse_frame'),
170171
Panel: u('wide'),

pandas/io/tests/generate_legacy_storage_files.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
""" self-contained to write legacy storage (pickle/msgpack) files """
22
from __future__ import print_function
33
from distutils.version import LooseVersion
4-
from pandas import (Series, TimeSeries, DataFrame, Panel,
5-
SparseSeries, SparseTimeSeries, SparseDataFrame, SparsePanel,
4+
from pandas import (Series, DataFrame, Panel,
5+
SparseSeries, SparseDataFrame, SparsePanel,
66
Index, MultiIndex, PeriodIndex, bdate_range, to_msgpack,
77
date_range, period_range, bdate_range, Timestamp, Categorical,
88
Period)
@@ -36,7 +36,7 @@ def _create_sp_tsseries():
3636
arr[-1:] = nan
3737

3838
date_index = bdate_range('1/1/2011', periods=len(arr))
39-
bseries = SparseTimeSeries(arr, index=date_index, kind='block')
39+
bseries = SparseSeries(arr, index=date_index, kind='block')
4040
bseries.name = 'btsseries'
4141
return bseries
4242

@@ -78,7 +78,7 @@ def create_data():
7878
series = dict(float=Series(data['A']),
7979
int=Series(data['B']),
8080
mixed=Series(data['E']),
81-
ts=TimeSeries(np.arange(10).astype(np.int64), index=date_range('20130101',periods=10)),
81+
ts=Series(np.arange(10).astype(np.int64), index=date_range('20130101',periods=10)),
8282
mi=Series(np.arange(5).astype(np.float64),
8383
index=MultiIndex.from_tuples(tuple(zip(*[[1, 1, 2, 2, 2], [3, 4, 3, 4, 5]])),
8484
names=['one', 'two'])),

pandas/sparse/series.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from numpy import nan, ndarray
99
import numpy as np
10-
10+
import warnings
1111
import operator
1212

1313
from pandas.core.common import isnull, _values_from_object, _maybe_match_name
@@ -770,4 +770,11 @@ def from_coo(cls, A, dense_index=False):
770770
bool_method=None, use_numexpr=False, force=True)
771771

772772
# backwards compatiblity
773-
SparseTimeSeries = SparseSeries
773+
class SparseTimeSeries(SparseSeries):
774+
775+
def __init__(self, *args, **kwargs):
776+
# deprecation TimeSeries, #10890
777+
warnings.warn("SparseTimeSeries is deprecated. Please use SparseSeries",
778+
FutureWarning, stacklevel=2)
779+
780+
super(SparseTimeSeries, self).__init__(*args, **kwargs)

pandas/sparse/tests/test_sparse.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import pandas.sparse.frame as spf
3131

3232
from pandas._sparse import BlockIndex, IntIndex
33-
from pandas.sparse.api import (SparseSeries, SparseTimeSeries,
33+
from pandas.sparse.api import (SparseSeries,
3434
SparseDataFrame, SparsePanel,
3535
SparseArray)
3636
import pandas.tests.test_frame as test_frame
@@ -160,6 +160,12 @@ def test_iteration_and_str(self):
160160
[x for x in self.bseries]
161161
str(self.bseries)
162162

163+
def test_TimeSeries_deprecation(self):
164+
165+
# deprecation TimeSeries, #10890
166+
with tm.assert_produces_warning(FutureWarning):
167+
pd.SparseTimeSeries(1,index=pd.date_range('20130101',periods=3))
168+
163169
def test_construct_DataFrame_with_sp_series(self):
164170
# it works!
165171
df = DataFrame({'col': self.bseries})
@@ -258,7 +264,7 @@ def _check_const(sparse, name):
258264
# Sparse time series works
259265
date_index = bdate_range('1/1/2000', periods=len(self.bseries))
260266
s5 = SparseSeries(self.bseries, index=date_index)
261-
tm.assertIsInstance(s5, SparseTimeSeries)
267+
tm.assertIsInstance(s5, SparseSeries)
262268

263269
# pass Series
264270
bseries2 = SparseSeries(self.bseries.to_dense())

pandas/tests/test_groupby.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -502,9 +502,8 @@ def test_groupby_bounds_check(self):
502502
self.assertRaises(AssertionError, pd.algos.groupby_object,a, b)
503503

504504
def test_groupby_grouper_f_sanity_checked(self):
505-
import pandas as pd
506505
dates = date_range('01-Jan-2013', periods=12, freq='MS')
507-
ts = pd.TimeSeries(np.random.randn(12), index=dates)
506+
ts = Series(np.random.randn(12), index=dates)
508507

509508
# GH3035
510509
# index.map is used to apply grouper to the index

pandas/tests/test_series.py

+6
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,12 @@ def test_astype(self):
666666
self.assertEqual(astyped.dtype, dtype)
667667
self.assertEqual(astyped.name, s.name)
668668

669+
def test_TimeSeries_deprecation(self):
670+
671+
# deprecation TimeSeries, #10890
672+
with tm.assert_produces_warning(FutureWarning):
673+
pd.TimeSeries(1,index=date_range('20130101',periods=3))
674+
669675
def test_constructor(self):
670676
# Recognize TimeSeries
671677
self.assertTrue(self.ts.is_time_series)

pandas/tests/test_strings.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
from pandas.compat import range, lrange, u, unichr
1717
import pandas.compat as compat
18-
from pandas import (Index, Series, TimeSeries, DataFrame, isnull, notnull,
18+
from pandas import (Index, Series, DataFrame, isnull, notnull,
1919
bdate_range, date_range, MultiIndex)
2020
import pandas.core.common as com
2121

pandas/tseries/tests/test_period.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from numpy.random import randn
2525
from pandas.compat import range, lrange, lmap, zip
2626

27-
from pandas import Series, TimeSeries, DataFrame, _np_version_under1p9
27+
from pandas import Series, DataFrame, _np_version_under1p9
2828
from pandas import tslib
2929
from pandas.util.testing import(assert_series_equal, assert_almost_equal,
3030
assertRaisesRegexp)
@@ -1191,7 +1191,7 @@ def test_hash_error(self):
11911191
def test_make_time_series(self):
11921192
index = PeriodIndex(freq='A', start='1/1/2001', end='12/1/2009')
11931193
series = Series(1, index=index)
1194-
tm.assertIsInstance(series, TimeSeries)
1194+
tm.assertIsInstance(series, Series)
11951195

11961196
def test_astype(self):
11971197
idx = period_range('1990', '2009', freq='A')

pandas/tseries/tests/test_resample.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -980,7 +980,7 @@ def _simple_ts(start, end, freq='D'):
980980

981981
def _simple_pts(start, end, freq='D'):
982982
rng = period_range(start, end, freq=freq)
983-
return TimeSeries(np.random.randn(len(rng)), index=rng)
983+
return Series(np.random.randn(len(rng)), index=rng)
984984

985985

986986
class TestResamplePeriodIndex(tm.TestCase):
@@ -1177,7 +1177,7 @@ def test_resample_to_quarterly(self):
11771177
def test_resample_fill_missing(self):
11781178
rng = PeriodIndex([2000, 2005, 2007, 2009], freq='A')
11791179

1180-
s = TimeSeries(np.random.randn(4), index=rng)
1180+
s = Series(np.random.randn(4), index=rng)
11811181

11821182
stamps = s.to_timestamp()
11831183

@@ -1191,12 +1191,12 @@ def test_resample_fill_missing(self):
11911191

11921192
def test_cant_fill_missing_dups(self):
11931193
rng = PeriodIndex([2000, 2005, 2005, 2007, 2007], freq='A')
1194-
s = TimeSeries(np.random.randn(5), index=rng)
1194+
s = Series(np.random.randn(5), index=rng)
11951195
self.assertRaises(Exception, s.resample, 'A')
11961196

11971197
def test_resample_5minute(self):
11981198
rng = period_range('1/1/2000', '1/5/2000', freq='T')
1199-
ts = TimeSeries(np.random.randn(len(rng)), index=rng)
1199+
ts = Series(np.random.randn(len(rng)), index=rng)
12001200

12011201
result = ts.resample('5min')
12021202
expected = ts.to_timestamp().resample('5min')
@@ -1402,7 +1402,7 @@ def test_evenly_divisible_with_no_extra_bins(self):
14021402
'COOP_DLY_TRN_QT': 30, 'COOP_DLY_SLS_AMT': 20}] * 28 +
14031403
[{'REST_KEY': 2, 'DLY_TRN_QT': 70, 'DLY_SLS_AMT': 10,
14041404
'COOP_DLY_TRN_QT': 50, 'COOP_DLY_SLS_AMT': 20}] * 28,
1405-
index=index.append(index)).sort()
1405+
index=index.append(index)).sort_index()
14061406

14071407
index = date_range('2001-5-4',periods=4,freq='7D')
14081408
expected = DataFrame(
@@ -1430,7 +1430,7 @@ def test_apply(self):
14301430

14311431
grouped = self.ts.groupby(grouper)
14321432

1433-
f = lambda x: x.order()[-3:]
1433+
f = lambda x: x.sort_values()[-3:]
14341434

14351435
applied = grouped.apply(f)
14361436
expected = self.ts.groupby(lambda x: x.year).apply(f)

pandas/tseries/tests/test_timeseries.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import numpy as np
1010
randn = np.random.randn
1111

12-
from pandas import (Index, Series, TimeSeries, DataFrame,
12+
from pandas import (Index, Series, DataFrame,
1313
isnull, date_range, Timestamp, Period, DatetimeIndex,
1414
Int64Index, to_datetime, bdate_range, Float64Index, TimedeltaIndex, NaT)
1515

@@ -60,7 +60,7 @@ def setUp(self):
6060
self.dups = Series(np.random.randn(len(dates)), index=dates)
6161

6262
def test_constructor(self):
63-
tm.assertIsInstance(self.dups, TimeSeries)
63+
tm.assertIsInstance(self.dups, Series)
6464
tm.assertIsInstance(self.dups.index, DatetimeIndex)
6565

6666
def test_is_unique_monotonic(self):

pandas/tseries/tests/test_timeseries_legacy.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import numpy as np
99
randn = np.random.randn
1010

11-
from pandas import (Index, Series, TimeSeries, DataFrame,
11+
from pandas import (Index, Series, DataFrame,
1212
isnull, date_range, Timestamp, DatetimeIndex,
1313
Int64Index, to_datetime, bdate_range)
1414

pandas/tseries/util.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def pivot_annual(series, freq=None):
2828
2929
Parameters
3030
----------
31-
series : TimeSeries
31+
series : Series
3232
freq : string or None, default None
3333
3434
Returns

0 commit comments

Comments
 (0)