Skip to content

Commit 59ed030

Browse files
committed
BUG: address groupby bug described in GH #131
1 parent 321f9e1 commit 59ed030

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

pandas/core/groupby.py

+14-11
Original file line numberDiff line numberDiff line change
@@ -938,18 +938,21 @@ def _wrap_applied_output(self, keys, values, not_indexed_same=False):
938938
if len(self.groupings) > 1:
939939
keys = MultiIndex.from_tuples(keys, names=key_names)
940940

941-
# obj = self._obj_with_exclusions
942-
943-
if self.axis == 0:
944-
stacked_values = np.vstack([np.asarray(x) for x in values])
945-
columns = values[0].index
946-
index = keys
941+
if isinstance(values[0], np.ndarray):
942+
if self.axis == 0:
943+
stacked_values = np.vstack([np.asarray(x)
944+
for x in values])
945+
columns = values[0].index
946+
index = keys
947+
else:
948+
stacked_values = np.vstack([np.asarray(x)
949+
for x in values]).T
950+
index = values[0].index
951+
columns = keys
952+
return DataFrame(stacked_values, index=index,
953+
columns=columns)
947954
else:
948-
stacked_values = np.vstack([np.asarray(x) for x in values]).T
949-
index = values[0].index
950-
columns = keys
951-
952-
return DataFrame(stacked_values, index=index, columns=columns)
955+
return Series(values, index=keys)
953956

954957
def transform(self, func, *args, **kwargs):
955958
"""

pandas/tests/test_groupby.py

+6
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,12 @@ def f(piece):
686686
self.assert_(isinstance(result, DataFrame))
687687
self.assert_(result.index.equals(ts.index))
688688

689+
def test_apply_frame_to_series(self):
690+
grouped = self.df.groupby(['A', 'B'])
691+
result = grouped.apply(len)
692+
expected = grouped.count()['C']
693+
assert_series_equal(result, expected)
694+
689695
def test_apply_transform(self):
690696
grouped = self.ts.groupby(lambda x: x.month)
691697
result = grouped.apply(lambda x: x * 2)

0 commit comments

Comments
 (0)