Skip to content

BUG: SeriesGroupBy.apply sets name attribute if result is DataFrame #49907

Closed

Description

@MarcoGorelli

Pandas version checks

  • I have checked that this issue has not already been reported.

  • I have confirmed this bug exists on the latest version of pandas.

  • I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

def f(piece):
    return DataFrame({"value": piece, "demeaned": piece - piece.mean()})

df = pd.DataFrame({'a': [1,2,3], 'b': [4, 5, 5]})
res = df.groupby('a')['b'].apply(f)
print(res.name)

Issue Description

This prints 'b'. But .name shouldn't be an attribute of DataFrame...

Expected Behavior

AttributeError: 'DataFrame' object has no attribute 'name'

Installed Versions

Details

INSTALLED VERSIONS

commit : 3b09765
python : 3.8.15.final.0
python-bits : 64
OS : Linux
OS-release : 5.10.102.1-microsoft-standard-WSL2
Version : #1 SMP Wed Mar 2 00:30:59 UTC 2022
machine : x86_64
processor : x86_64
byteorder : little
LC_ALL : None
LANG : en_GB.UTF-8
LOCALE : en_GB.UTF-8

pandas : 2.0.0.dev0+759.g3b09765bc9
numpy : 1.23.5
pytz : 2022.6
dateutil : 2.8.2
setuptools : 65.5.1
pip : 22.3.1
Cython : 0.29.32
pytest : 7.2.0
hypothesis : 6.58.0
sphinx : 4.5.0
blosc : None
feather : None
xlsxwriter : 3.0.3
lxml.etree : 4.9.1
html5lib : 1.1
pymysql : 1.0.2
psycopg2 : 2.9.3
jinja2 : 3.0.3
IPython : 8.6.0
pandas_datareader: 0.10.0
bs4 : 4.11.1
bottleneck : 1.3.5
brotli :
fastparquet : 2022.11.0
fsspec : 2021.11.0
gcsfs : 2021.11.0
matplotlib : 3.6.2
numba : 0.56.4
numexpr : 2.8.3
odfpy : None
openpyxl : 3.0.10
pandas_gbq : 0.17.9
pyarrow : 9.0.0
pyreadstat : 1.2.0
pyxlsb : 1.0.10
s3fs : 2021.11.0
scipy : 1.9.3
snappy :
sqlalchemy : 1.4.44
tables : 3.7.0
tabulate : 0.9.0
xarray : 2022.11.0
xlrd : 2.0.1
zstandard : 0.19.0
tzdata : None
qtpy : None
pyqt5 : None
None

Activity

  1. added
    ApplyApply, Aggregate, Transform, Map
    RegressionFunctionality that used to work in a prior pandas version
    on Nov 25, 2022
  2. MarcoGorelli commented on Nov 25, 2022

    @MarcoGorelli
    MemberAuthor

    This was fine in 1.4.4, so I'm labelling it as a regression

  3. changed the title [-]BUG: groupby apply (lambda ...: DataFrame) sets `name` attribute[/-] [+] BUG: SeriesGroupBy.apply sets name attribute if result is DataFrame[/+] on Nov 25, 2022
  4. MarcoGorelli commented on Nov 25, 2022

    @MarcoGorelli
    MemberAuthor

    Looks like this was caused by #46623

    cc @ma3da (just FYI, no blame!)

  5. ma3da commented on Nov 29, 2022

    @ma3da
    Contributor

    👌 Still, sorry for the glitch!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ApplyApply, Aggregate, Transform, MapGroupbyRegressionFunctionality that used to work in a prior pandas version

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions