@@ -176,6 +176,54 @@ def test_resample_with_timedeltas(self):
176
176
177
177
assert_frame_equal (result , expected )
178
178
179
+ def test_resample_rounding (self ):
180
+ # GH 8371
181
+ # odd results when rounding is needed
182
+
183
+ data = """date,time,value
184
+ 11-08-2014,00:00:01.093,1
185
+ 11-08-2014,00:00:02.159,1
186
+ 11-08-2014,00:00:02.667,1
187
+ 11-08-2014,00:00:03.175,1
188
+ 11-08-2014,00:00:07.058,1
189
+ 11-08-2014,00:00:07.362,1
190
+ 11-08-2014,00:00:08.324,1
191
+ 11-08-2014,00:00:08.830,1
192
+ 11-08-2014,00:00:08.982,1
193
+ 11-08-2014,00:00:09.815,1
194
+ 11-08-2014,00:00:10.540,1
195
+ 11-08-2014,00:00:11.061,1
196
+ 11-08-2014,00:00:11.617,1
197
+ 11-08-2014,00:00:13.607,1
198
+ 11-08-2014,00:00:14.535,1
199
+ 11-08-2014,00:00:15.525,1
200
+ 11-08-2014,00:00:17.960,1
201
+ 11-08-2014,00:00:20.674,1
202
+ 11-08-2014,00:00:21.191,1"""
203
+
204
+ from pandas .compat import StringIO
205
+ df = pd .read_csv (StringIO (data ), parse_dates = {'timestamp' : ['date' , 'time' ]}, index_col = 'timestamp' )
206
+ df .index .name = None
207
+ result = df .resample ('6s' , how = 'sum' )
208
+ expected = DataFrame ({'value' : [4 ,9 ,4 ,2 ]},index = date_range ('2014-11-08' ,freq = '6s' ,periods = 4 ))
209
+ assert_frame_equal (result ,expected )
210
+
211
+ result = df .resample ('7s' , how = 'sum' )
212
+ expected = DataFrame ({'value' : [4 ,10 ,4 ,1 ]},index = date_range ('2014-11-08' ,freq = '7s' ,periods = 4 ))
213
+ assert_frame_equal (result ,expected )
214
+
215
+ result = df .resample ('11s' , how = 'sum' )
216
+ expected = DataFrame ({'value' : [11 ,8 ]},index = date_range ('2014-11-08' ,freq = '11s' ,periods = 2 ))
217
+ assert_frame_equal (result ,expected )
218
+
219
+ result = df .resample ('13s' , how = 'sum' )
220
+ expected = DataFrame ({'value' : [13 ,6 ]},index = date_range ('2014-11-08' ,freq = '13s' ,periods = 2 ))
221
+ assert_frame_equal (result ,expected )
222
+
223
+ result = df .resample ('17s' , how = 'sum' )
224
+ expected = DataFrame ({'value' : [16 ,3 ]},index = date_range ('2014-11-08' ,freq = '17s' ,periods = 2 ))
225
+ assert_frame_equal (result ,expected )
226
+
179
227
def test_resample_basic_from_daily (self ):
180
228
# from daily
181
229
dti = DatetimeIndex (
0 commit comments