Skip to content

Commit 845254d

Browse files
changhiskhanwesm
authored andcommitted
ENH: naming for other axes; index name for date_range/period_range. TST: testing name pass through
1 parent e47b167 commit 845254d

File tree

4 files changed

+27
-16
lines changed

4 files changed

+27
-16
lines changed

pandas/tseries/index.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -1273,7 +1273,7 @@ def _generate_regular_range(start, end, periods, offset):
12731273

12741274

12751275
def date_range(start=None, end=None, periods=None, freq='D', tz=None,
1276-
normalize=False):
1276+
normalize=False, name=None):
12771277
"""
12781278
Return a fixed frequency datetime index, with day (calendar) as the default
12791279
frequency
@@ -1293,6 +1293,8 @@ def date_range(start=None, end=None, periods=None, freq='D', tz=None,
12931293
Asia/Beijing
12941294
normalize : bool, default False
12951295
Normalize start/end dates to midnight before generating date range
1296+
name : str, default None
1297+
Name of the resulting index
12961298
12971299
Notes
12981300
-----
@@ -1303,11 +1305,11 @@ def date_range(start=None, end=None, periods=None, freq='D', tz=None,
13031305
rng : DatetimeIndex
13041306
"""
13051307
return DatetimeIndex(start=start, end=end, periods=periods,
1306-
freq=freq, tz=tz, normalize=normalize)
1308+
freq=freq, tz=tz, normalize=normalize, name=name)
13071309

13081310

13091311
def bdate_range(start=None, end=None, periods=None, freq='B', tz=None,
1310-
normalize=True):
1312+
normalize=True, name=None):
13111313
"""
13121314
Return a fixed frequency datetime index, with business day as the default
13131315
frequency
@@ -1327,6 +1329,8 @@ def bdate_range(start=None, end=None, periods=None, freq='B', tz=None,
13271329
Asia/Beijing
13281330
normalize : bool, default False
13291331
Normalize start/end dates to midnight before generating date range
1332+
name : str, default None
1333+
Name for the resulting index
13301334
13311335
Notes
13321336
-----
@@ -1338,7 +1342,7 @@ def bdate_range(start=None, end=None, periods=None, freq='B', tz=None,
13381342
"""
13391343

13401344
return DatetimeIndex(start=start, end=end, periods=periods,
1341-
freq=freq, tz=tz, normalize=normalize)
1345+
freq=freq, tz=tz, normalize=normalize, name=name)
13421346

13431347

13441348
def _to_m8(key):
@@ -1381,5 +1385,3 @@ def _in_range(start, end, rng_start, rng_end):
13811385
def _time_to_micros(time):
13821386
seconds = time.hour * 60 * 60 + 60 * time.minute + time.second
13831387
return 1000000 * seconds + time.microsecond
1384-
1385-

pandas/tseries/period.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,7 @@ def _validate_end_alias(how):
10901090
def pnow(freq=None):
10911091
return Period(datetime.now(), freq=freq)
10921092

1093-
def period_range(start=None, end=None, periods=None, freq='D'):
1093+
def period_range(start=None, end=None, periods=None, freq='D', name=None):
10941094
"""
10951095
Return a fixed frequency datetime index, with day (calendar) as the default
10961096
frequency
@@ -1100,15 +1100,19 @@ def period_range(start=None, end=None, periods=None, freq='D'):
11001100
----------
11011101
start :
11021102
end :
1103-
normalize : bool, default False
1104-
Normalize start/end dates to midnight before generating date range
1103+
periods : int, default None
1104+
Number of periods in the index
1105+
freq : str/DateOffset, default 'D'
1106+
Frequency alias
1107+
name : str, default None
1108+
Name for the resulting PeriodIndex
11051109
11061110
Returns
11071111
-------
1108-
1112+
prng : PeriodIndex
11091113
"""
11101114
return PeriodIndex(start=start, end=end, periods=periods,
1111-
freq=freq)
1115+
freq=freq, name=name)
11121116

11131117
def _period_rule_to_timestamp_rule(freq, how='end'):
11141118
how = how.lower()

pandas/tseries/resample.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ def resample(self, obj):
7878
else: # pragma: no cover
7979
raise TypeError('Only valid with DatetimeIndex or PeriodIndex')
8080

81-
rs.index.name = obj.index.name
81+
rs_axis = rs._get_axis(self.axis)
82+
rs_axis.name = axis.name
8283
return rs
8384

8485
def get_grouper(self, obj):

pandas/tseries/tests/test_resample.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,14 @@ def test_custom_grouper(self):
8282
self.assertEquals(len(r.index), 2593)
8383

8484
def test_resample_basic(self):
85-
rng = date_range('1/1/2000 00:00:00', '1/1/2000 00:13:00', freq='min')
85+
rng = date_range('1/1/2000 00:00:00', '1/1/2000 00:13:00', freq='min',
86+
name='index')
8687
s = Series(np.random.randn(14), index=rng)
8788
result = s.resample('5min', how='mean', closed='right', label='right')
8889
expected = Series([s[0], s[1:6].mean(), s[6:11].mean(), s[11:].mean()],
8990
index=date_range('1/1/2000', periods=4, freq='5min'))
9091
assert_series_equal(result, expected)
92+
self.assert_(result.index.name == 'index')
9193

9294
result = s.resample('5min', how='mean', closed='left', label='right')
9395
expected = Series([s[:5].mean(), s[5:10].mean(), s[10:].mean()],
@@ -103,7 +105,7 @@ def test_resample_basic(self):
103105

104106
# from daily
105107
dti = DatetimeIndex(start=datetime(2005,1,1), end=datetime(2005,1,10),
106-
freq='D')
108+
freq='D', name='index')
107109

108110
s = Series(np.random.rand(len(dti)), dti)
109111

@@ -153,6 +155,7 @@ def test_resample_basic(self):
153155
self.assertEquals(result.irow(0), s['1/3/2005'])
154156
self.assertEquals(result.irow(1), s['1/4/2005'])
155157
self.assertEquals(result.irow(5), s['1/10/2005'])
158+
self.assert_(result.index.name == 'index')
156159

157160
def test_resample_frame_basic(self):
158161
df = tm.makeTimeDataFrame()
@@ -208,7 +211,7 @@ def test_resample_loffset(self):
208211
def test_resample_upsample(self):
209212
# from daily
210213
dti = DatetimeIndex(start=datetime(2005,1,1), end=datetime(2005,1,10),
211-
freq='D')
214+
freq='D', name='index')
212215

213216
s = Series(np.random.rand(len(dti)), dti)
214217

@@ -218,6 +221,8 @@ def test_resample_upsample(self):
218221
self.assertEquals(result[0], s[0])
219222
self.assertEquals(result[-1], s[-1])
220223

224+
self.assert_(result.index.name == 'index')
225+
221226
def test_upsample_with_limit(self):
222227
rng = date_range('1/1/2000', periods=3, freq='5t')
223228
ts = Series(np.random.randn(len(rng)), rng)
@@ -825,4 +830,3 @@ def test_numpy_reduction(self):
825830
if __name__ == '__main__':
826831
nose.runmodule(argv=[__file__,'-vvs','-x','--pdb', '--pdb-failure'],
827832
exit=False)
828-

0 commit comments

Comments
 (0)