@@ -152,6 +152,30 @@ def test_agg_regression1(self):
152
152
expected = grouped .mean ()
153
153
assert_frame_equal (result , expected )
154
154
155
+ def test_agg_datetimes_mixed (self ):
156
+ data = [[1 , '2012-01-01' , 1.0 ],
157
+ [2 , '2012-01-02' , 2.0 ],
158
+ [3 , None , 3.0 ]]
159
+
160
+ df1 = DataFrame ({'key' : [x [0 ] for x in data ],
161
+ 'date' : [x [1 ] for x in data ],
162
+ 'value' : [x [2 ] for x in data ]})
163
+
164
+ data = [[row [0 ], datetime .strptime (row [1 ], '%Y-%m-%d' ).date ()
165
+ if row [1 ] else None , row [2 ]] for row in data ]
166
+
167
+ df2 = DataFrame ({'key' : [x [0 ] for x in data ],
168
+ 'date' : [x [1 ] for x in data ],
169
+ 'value' : [x [2 ] for x in data ]})
170
+
171
+ df1 ['weights' ] = df1 ['value' ]/ df1 ['value' ].sum ()
172
+ gb1 = df1 .groupby ('date' ).aggregate (np .sum )
173
+
174
+ df2 ['weights' ] = df1 ['value' ]/ df1 ['value' ].sum ()
175
+ gb2 = df2 .groupby ('date' ).aggregate (np .sum )
176
+
177
+ assert (len (gb1 ) == len (gb2 ))
178
+
155
179
def test_agg_must_agg (self ):
156
180
grouped = self .df .groupby ('A' )['C' ]
157
181
self .assertRaises (Exception , grouped .agg , lambda x : x .describe ())
0 commit comments