Strange behaviour with nested "groupby"s
If I execute the following code:

```
import pandas

df = pandas.DataFrame([['test', -2], ['b', -2], ['b', -2]], columns=['surname', 'new_id'])

def process_by_last_name(group):
    if len(group) == 1:
        if "%" in str(group['new_id']):
            import ipdb; ipdb.set_trace()
        return group['new_id']
    group['colour'] = range(len(group))

    useless = group.groupby('new_id').apply(lambda *x : -1)
    return group['new_id']

df.groupby('surname').apply(process_by_last_name)
```

I get dropped to an ipdb shell, where curious things happen:

```
ipdb> group
  surname  new_id  colour
0    test      -2       0
               -2       1
ipdb> group.new_id
0   -2
%s   %s
Name: new_id, dtype: int64
ipdb> group.shape
(1, 3)
ipdb> group.values.shape
*** ValueError: could not broadcast input array from shape (2,2) into shape (2,1)
ipdb> group.new_id.shape
(1,)
ipdb> group.new_id.values.shape
(2,)
```

As far as I can judge, my code is weird but does not do "forbidden" things: in particular, the return values are coherent across groups.

Even more confusingly to me, I am unable to reproduce with a simpler example.
