Groupby with matching column and index name emits spurious warning (original) (raw)
xref #14432
Which of these should raise FutureWarnings? I think the idea was to use pd.Grouper(name) to disambiguate? In that case In [21] should not raise a warning?
In [17]: df = pd.DataFrame({"A": [1] * 5 + [2] * 5, "B": ['a', 'b'] * 5, 'C': range(10)}, index=pd.Index(range(10), name='A'))
In [19]: _ = df.groupby('A').mean() /Users/taugspurger/.virtualenvs/pandas-dev/bin/ipython:1: FutureWarning: 'A' is both a column name and an index level. Defaulting to column but this will raise an ambiguity error in a future version #!/Users/taugspurger/Envs/pandas-dev/bin/python3.6
In [20]: _ = df.groupby(['A']).mean() /Users/taugspurger/.virtualenvs/pandas-dev/bin/ipython:1: FutureWarning: 'A' is both a column name and an index level. Defaulting to column but this will raise an ambiguity error in a future version #!/Users/taugspurger/Envs/pandas-dev/bin/python3.6
In [21]: _ = df.groupby(pd.Grouper('A')).mean() /Users/taugspurger/Envs/pandas-dev/lib/python3.6/site-packages/pandas/pandas/core/groupby.py:1699: FutureWarning: 'A' is both a column name and an index level. Defaulting to column but this will raise an ambiguity error in a future version return klass(obj, by, **kwds)
In [22]: _ = df.groupby([pd.Grouper('A')]).mean()
cc @jmmease