ENH: added selection to an unordered timeseries the same semantics as… · pandas-dev/pandas@3a173f1 (original) (raw)
`@@ -18,6 +18,7 @@
`
18
18
`import pandas.core.datetools as datetools
`
19
19
`import pandas.tseries.offsets as offsets
`
20
20
`import pandas.tseries.frequencies as fmod
`
``
21
`+
from pandas.tseries.index import TimeSeriesError
`
21
22
`import pandas as pd
`
22
23
``
23
24
`from pandas.util.testing import assert_series_equal, assert_almost_equal
`
`@@ -168,6 +169,32 @@ def test_indexing_over_size_cutoff(self):
`
168
169
`finally:
`
169
170
`_index._SIZE_CUTOFF = old_cutoff
`
170
171
``
``
172
`+
def test_indexing_unordered(self):
`
``
173
+
``
174
`+
GH 2437
`
``
175
`+
from pandas import concat
`
``
176
`+
rng = date_range(start='2011-01-01', end='2011-01-15')
`
``
177
`+
ts = Series(randn(len(rng)), index=rng)
`
``
178
`+
ts2 = concat([ts[0:4],ts[-4:],ts[4:-4]])
`
``
179
+
``
180
`+
for t in ts.index:
`
``
181
`+
s = str(t)
`
``
182
`+
expected = ts[t]
`
``
183
`+
result = ts2[t]
`
``
184
`+
self.assertTrue(expected == result)
`
``
185
+
``
186
`+
result = ts2['2011'].sort_index()
`
``
187
`+
expected = ts['2011']
`
``
188
`+
assert_series_equal(result,expected)
`
``
189
+
``
190
`+
diff freq
`
``
191
`+
rng = date_range(datetime(2005, 1, 1), periods=20, freq='M')
`
``
192
`+
ts = Series(np.arange(len(rng)), index=rng)
`
``
193
`+
ts = ts.take(np.random.permutation(20))
`
``
194
+
``
195
`+
result = ts['2005']
`
``
196
`+
for t in result.index:
`
``
197
`+
self.assertTrue(t.year == 2005)
`
171
198
``
172
199
`def assert_range_equal(left, right):
`
173
200
`assert(left.equals(right))
`
`@@ -2017,13 +2044,6 @@ def test_partial_slice_minutely(self):
`
2017
2044
`self.assert_(s['2005-1-1 23:59:00'] == s.ix[0])
`
2018
2045
`self.assertRaises(Exception, s.getitem, '2004-12-31 00:00:00')
`
2019
2046
``
2020
``
`-
def test_partial_not_monotonic(self):
`
2021
``
`-
rng = date_range(datetime(2005, 1, 1), periods=20, freq='M')
`
2022
``
`-
ts = Series(np.arange(len(rng)), index=rng)
`
2023
``
`-
ts = ts.take(np.random.permutation(20))
`
2024
``
-
2025
``
`-
self.assertRaises(Exception, ts.getitem, '2005')
`
2026
``
-
2027
2047
`def test_date_range_normalize(self):
`
2028
2048
`snap = datetime.today()
`
2029
2049
`n = 50
`