1
1
# pylint: disable-msg=E1101,W0612
2
2
import calendar
3
- from datetime import datetime , time , timedelta
4
- import sys
5
3
import operator
4
+ import sys
6
5
import warnings
6
+ from datetime import datetime , time , timedelta
7
+ from numpy .random import rand
8
+ from numpy .testing .decorators import slow
9
+
7
10
import nose
8
11
import numpy as np
9
- import pandas .tseries . frequencies as frequencies
12
+ import pandas .index as _index
10
13
import pandas .lib as lib
11
14
import pandas .tslib as tslib
12
- import pandas .index as _index
13
- import pandas as pd
14
- from pandas import (Index , Series , DataFrame , isnull , date_range , Timestamp ,
15
- Period , DatetimeIndex , Int64Index , to_datetime ,
16
- bdate_range , Float64Index , NaT , timedelta_range , Timedelta )
17
15
18
- from pandas .compat .numpy_compat import np_datetime64_compat
16
+ import pandas as pd
17
+ import pandas .compat as compat
18
+ import pandas .core .common as com
19
19
import pandas .core .datetools as datetools
20
+ import pandas .tseries .frequencies as frequencies
20
21
import pandas .tseries .offsets as offsets
21
22
import pandas .tseries .tools as tools
22
-
23
-
24
- from pandas .util .testing import assert_series_equal , assert_almost_equal ,\
25
- _skip_if_has_locale
26
23
import pandas .util .testing as tm
27
-
28
- from pandas .tslib import iNaT
29
-
24
+ from pandas import (
25
+ Index , Series , DataFrame , isnull , date_range , Timestamp , Period ,
26
+ DatetimeIndex , Int64Index , to_datetime , bdate_range , Float64Index ,
27
+ NaT , timedelta_range , Timedelta , _np_version_under1p8 , concat ,
28
+ PeriodIndex )
30
29
from pandas .compat import range , long , StringIO , lrange , lmap , zip , product
31
- from numpy .random import rand
32
- from pandas .util .testing import assert_frame_equal
30
+ from pandas .compat .numpy_compat import np_datetime64_compat
33
31
from pandas .core .common import PerformanceWarning
34
- import pandas .compat as compat
35
- import pandas .core .common as com
36
- from pandas import concat
37
- from pandas import _np_version_under1p8
38
-
39
- from numpy .testing .decorators import slow
32
+ from pandas .tslib import iNaT
33
+ from pandas .util .testing import (
34
+ assert_frame_equal , assert_series_equal , assert_almost_equal ,
35
+ _skip_if_has_locale )
40
36
41
37
randn = np .random .randn
42
38
@@ -2249,15 +2245,27 @@ def test_concat_datetime_datetime64_frame(self):
2249
2245
def test_period_resample (self ):
2250
2246
# GH3609
2251
2247
s = Series (range (100 ), index = date_range (
2252
- '20130101' , freq = 's' , periods = 100 ), dtype = 'float' )
2248
+ '20130101' , freq = 's' , periods = 100 , name = 'idx' ), dtype = 'float' )
2253
2249
s [10 :30 ] = np .nan
2254
- expected = Series ([34.5 , 79.5 ], index = [Period (
2255
- '2013-01-01 00:00' , 'T' ), Period ('2013-01-01 00:01' , 'T' )])
2250
+ index = PeriodIndex ([
2251
+ Period ('2013-01-01 00:00' , 'T' ),
2252
+ Period ('2013-01-01 00:01' , 'T' )], name = 'idx' )
2253
+ expected = Series ([34.5 , 79.5 ], index = index )
2256
2254
result = s .to_period ().resample ('T' , kind = 'period' ).mean ()
2257
2255
assert_series_equal (result , expected )
2258
2256
result2 = s .resample ('T' , kind = 'period' ).mean ()
2259
2257
assert_series_equal (result2 , expected )
2260
2258
2259
+ def test_empty_period_index_resample (self ):
2260
+ # GH12771
2261
+ index = PeriodIndex (start = '2000' , periods = 0 , freq = 'D' , name = 'idx' )
2262
+ s = Series (index = index )
2263
+ result = s .resample ('M' ).sum ()
2264
+ # after GH12774 is resolved, this should be a PeriodIndex
2265
+ expected_index = DatetimeIndex ([], name = 'idx' )
2266
+ expected = Series (index = expected_index )
2267
+ assert_series_equal (result , expected )
2268
+
2261
2269
def test_period_resample_with_local_timezone_pytz (self ):
2262
2270
# GH5430
2263
2271
tm ._skip_if_no_pytz ()
@@ -2297,7 +2305,7 @@ def test_period_resample_with_local_timezone_dateutil(self):
2297
2305
end = datetime (year = 2013 , month = 11 , day = 2 , hour = 0 , minute = 0 ,
2298
2306
tzinfo = dateutil .tz .tzutc ())
2299
2307
2300
- index = pd .date_range (start , end , freq = 'H' )
2308
+ index = pd .date_range (start , end , freq = 'H' , name = 'idx' )
2301
2309
2302
2310
series = pd .Series (1 , index = index )
2303
2311
series = series .tz_convert (local_timezone )
@@ -2306,7 +2314,8 @@ def test_period_resample_with_local_timezone_dateutil(self):
2306
2314
# Create the expected series
2307
2315
# Index is moved back a day with the timezone conversion from UTC to
2308
2316
# Pacific
2309
- expected_index = (pd .period_range (start = start , end = end , freq = 'D' ) - 1 )
2317
+ expected_index = (pd .period_range (start = start , end = end , freq = 'D' ,
2318
+ name = 'idx' ) - 1 )
2310
2319
expected = pd .Series (1 , index = expected_index )
2311
2320
assert_series_equal (result , expected )
2312
2321
0 commit comments