Skip to content

BUG: Multi grouper containing a categorical not dropped from index when using groupby with as_index=False #8869

Closed
@aimboden

Description

@aimboden

Hello,

The following example definitely seems like a bug. The grouper is not dropped from the index of the resulting DataFrame, even when as_index = False.

Actually, even the aggregation step completely fails, so there may be more to it, as shown in this example.

import pandas as pd
d = {'foo': [10, 8, 4, 8, 4, 1, 1], 'bar': [10, 20, 30, 40, 50, 60, 70],
     'baz': ['d', 'c', 'e', 'a', 'a', 'd', 'c']}
df = pd.DataFrame(d)
cat = pd.cut(df['foo'], np.linspace(0, 10, 3))
df['range'] = cat
groups = df.groupby(['range', 'baz'], as_index=False)
result = groups.agg('mean')
result
range baz bar foo
range baz
(0, 5] a NaN NaN NaN NaN
c NaN NaN NaN NaN
d NaN NaN NaN NaN
e NaN NaN NaN NaN
(5, 10] a NaN NaN NaN NaN
c NaN NaN NaN NaN
d NaN NaN NaN NaN
e NaN NaN NaN NaN

Compare to the expected result:

groups2 = df.groupby(['range', 'baz'], as_index=True)
expected = groups2.agg('mean').reset_index()
expected
range baz bar foo
0 (0, 5] a 50 4
1 (0, 5] c 70 1
2 (0, 5] d 60 1
3 (0, 5] e 30 4
4 (5, 10] a 40 8
5 (5, 10] c 20 8
6 (5, 10] d 10 10
7 (5, 10] e NaN
pd.__version__
Out[181]: '0.15.1'

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions