Skip to content

Commit 8f0a6c5

Browse files
committed
fixed NumPy 1.6 broadcasting bug, groupby bugfix
1 parent feed242 commit 8f0a6c5

File tree

3 files changed

+8
-9
lines changed

3 files changed

+8
-9
lines changed

pandas/core/groupby.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -345,22 +345,22 @@ def transform(self, func):
345345
if not isinstance(group, list):
346346
group = list(group)
347347

348+
subframe = self.obj.reindex(group)
349+
subframe.groupName = val
350+
348351
if self.axis == 0:
349352
indexer, _ = common.get_indexer(self.obj.index,
350353
subframe.index, None)
351354
else:
352355
indexer, _ = common.get_indexer(self.obj.columns,
353356
subframe.columns, None)
354357

355-
subframe = self.obj.reindex(group)
356-
subframe.groupName = val
357-
358358
try:
359359
res = func(subframe)
360360
except Exception:
361361
res = subframe.apply(func, axis=self.axis)
362362

363-
result_values[indexer] = res
363+
result_values[indexer] = res.values
364364

365365
# result[val] = res
366366

pandas/core/panel.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -317,19 +317,18 @@ def __setitem__(self, key, value):
317317
if isinstance(value, DataFrame):
318318
value = value.reindex(index=self.major_axis,
319319
columns=self.minor_axis)
320-
321-
mat = value.values.reshape((1, N, K))
320+
mat = value.values
322321

323322
elif np.isscalar(value):
324-
mat = np.empty((1, N, K), dtype=float)
323+
mat = np.empty((N, K), dtype=float)
325324
mat.fill(value)
326325

327326
if key in self.items:
328327
loc = self.items.indexMap[key]
329328
self.values[loc] = mat
330329
else:
331330
self.items = Index(list(self.items) + [key])
332-
331+
mat = mat.reshape((1, N, K))
333332
# Insert item at end of items for now
334333
self.values = np.row_stack((self.values, mat))
335334

pandas/core/tests/test_frame.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1209,7 +1209,7 @@ def test_groupby(self):
12091209
for name, group in grouped:
12101210
mean = group.mean()
12111211
for idx in group.index:
1212-
self.assertEqual(transformed[idx], mean)
1212+
assert_almost_equal(transformed.xs(idx), mean)
12131213

12141214
# iterate
12151215
for weekday, group in grouped:

0 commit comments

Comments
 (0)