BUG: resample and apply modify the index type for empty Series · Issue #14313 · pandas-dev/pandas (original) (raw)

A small, complete example of the issue

Consider the following two resamplings on empty Series:

import pandas as pd

These work:

pd.Series(index=pd.DatetimeIndex([]), data=[]).resample('H').apply(np.sum).index DatetimeIndex([], dtype='datetime64[ns]', freq='H')

pd.Series(index=pd.DatetimeIndex([]), data=[], name="foobar").resample('H').apply(np.sum).name 'foobar'

These don't work properly:

pd.Series(index=pd.DatetimeIndex([]), data=[]).resample('H').apply(lambda x: 1).index Index([], dtype='object')

pd.Series(index=pd.DatetimeIndex([]), data=[], name="foobar").resample('H').apply(lambda x: 1).name

no output

Expected Output

I would have expected that the index in the second example would be the same as in the first one. That is, the expected output:

pd.Series(index=pd.DatetimeIndex([]), data=[]).resample('H').apply(lambda x: 1).index DatetimeIndex([], dtype='datetime64[ns]', freq='H')

Also, name attribute shouldn't get lost:

pd.Series(index=pd.DatetimeIndex([]), data=[], name="foobar").resample('H').apply(lambda x: 1).name 'foobar'

I suspect that there might be other attributes / metadata that is lost too.

Output of pd.show_versions()

## INSTALLED VERSIONS

commit: None
python: 3.5.2.final.0
python-bits: 64
OS: Linux
OS-release: 4.7.5-gnu-1
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8

pandas: 0.19.0rc1
nose: 1.3.6
pip: 8.1.2
setuptools: 27.3.0
Cython: 0.24.1
numpy: 1.11.1
scipy: 0.18.1
statsmodels: None
xarray: None
IPython: 5.0.0
sphinx: 1.4.5
patsy: None
dateutil: 2.5.3
pytz: 2016.6.1
blosc: None
bottleneck: None
tables: 3.2.3.1
numexpr: 2.6.1
matplotlib: 1.5.2
openpyxl: None
xlrd: 1.0.0
xlwt: None
xlsxwriter: None
lxml: None
bs4: 4.5.1
html5lib: None
httplib2: 0.9.2
apiclient: 1.5.1
sqlalchemy: 1.0.15
pymysql: None
psycopg2: 2.6.2 (dt dec pq3 ext lo64)
jinja2: 2.8
boto: None
pandas_datareader: None