Skip to content

pandas.Series.apply fails with IndexError with an empty series #2815

Closed
@lesteve

Description

@lesteve
import pandas as pd
s = pd.Series()
s.apply(lambda x: x)
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-3-a33a9027c226> in <module>()
----> 1 s.apply(lambda x: x)

/usr/local/lib/python2.7/dist-packages/pandas/core/series.pyc in apply(self, func, convert_dtype, args, **kwds)
   2295 
   2296         mapped = lib.map_infer(values, f, convert=convert_dtype)
-> 2297         if isinstance(mapped[0], Series):
   2298             from pandas.core.frame import DataFrame
   2299             return DataFrame(mapped.tolist(), index=self.index)

IndexError: index out of bounds

This happens since 0.10.0 because of the new feature which upcasts the returned object to a dataframe if the function passed as the func argument returns a Series.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions