Skip to content

Commit 3b82634

Browse files
committed
Merge branch 'resampleex' of https://github.com/sinhrks/pandas into sinhrks-resampleex
Conflicts: doc/source/v0.14.1.txt
2 parents 7b59ebf + 4935c27 commit 3b82634

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

doc/source/v0.14.1.txt

+1
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,4 @@ Bug Fixes
6666
~~~~~~~~~
6767

6868
- Bug in ``Index.min`` and ``max`` doesn't handle ``nan`` and ``NaT`` properly (:issue:`7261`)
69+
- Bug in ``TimeGrouper`` doesn't exclude column specified by ``key`` (:issue:`7227`)

pandas/core/groupby.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -1927,7 +1927,10 @@ def _get_grouper(obj, key=None, axis=0, level=None, sort=True):
19271927
# a passed in Grouper, directly convert
19281928
if isinstance(key, Grouper):
19291929
binner, grouper, obj = key._get_grouper(obj)
1930-
return grouper, [], obj
1930+
if key.key is None:
1931+
return grouper, [], obj
1932+
else:
1933+
return grouper, set([key.key]), obj
19311934

19321935
# already have a BaseGrouper, just return it
19331936
elif isinstance(key, BaseGrouper):

pandas/tseries/tests/test_resample.py

+26
Original file line numberDiff line numberDiff line change
@@ -699,6 +699,32 @@ def test_resample_consistency(self):
699699
assert_series_equal(s10_2, r10_2)
700700
assert_series_equal(s10_2, rl)
701701

702+
def test_resample_timegrouper(self):
703+
# GH 7227
704+
dates = [datetime(2014, 10, 1), datetime(2014, 9, 3),
705+
datetime(2014, 11, 5), datetime(2014, 9, 5),
706+
datetime(2014, 10, 8), datetime(2014, 7, 15)]
707+
708+
df = DataFrame(dict(A=dates, B=np.arange(len(dates))))
709+
result = df.set_index('A').resample('M', how='count')
710+
exp_idx = pd.DatetimeIndex(['2014-07-31', '2014-08-31', '2014-09-30',
711+
'2014-10-31', '2014-11-30'], freq='M', name='A')
712+
expected = DataFrame({'B': [1, 0, 2, 2, 1]}, index=exp_idx)
713+
assert_frame_equal(result, expected)
714+
715+
result = df.groupby(pd.Grouper(freq='M', key='A')).count()
716+
assert_frame_equal(result, expected)
717+
718+
df = DataFrame(dict(A=dates, B=np.arange(len(dates)), C=np.arange(len(dates))))
719+
result = df.set_index('A').resample('M', how='count')
720+
expected = DataFrame({'B': [1, 0, 2, 2, 1], 'C': [1, 0, 2, 2, 1]},
721+
index=exp_idx, columns=['B', 'C'])
722+
assert_frame_equal(result, expected)
723+
724+
result = df.groupby(pd.Grouper(freq='M', key='A')).count()
725+
assert_frame_equal(result, expected)
726+
727+
702728
def _simple_ts(start, end, freq='D'):
703729
rng = date_range(start, end, freq=freq)
704730
return Series(np.random.randn(len(rng)), index=rng)

0 commit comments

Comments
 (0)