BUG: GroupBy.size doesn't attach index name properly if grouped by TimeGrouper · Issue #9925 · pandas-dev/pandas (original) (raw)
import numpy as np
import pandas as pd
import datetime
df = pd.DataFrame({'A': [1, 1, 1, 2, 2, 2], 'B': [1, 2, 3, 4, 5, 6]})
grouped = df.groupby('A')
n = 20
data = np.random.randn(n, 4)
dt_df = pd.DataFrame(data, columns=['A', 'B', 'C', 'D'])
dt_df['key'] = [datetime.datetime(2013, 1, 1), datetime.datetime(2013, 1, 2), pd.NaT,
datetime.datetime(2013, 1, 4), datetime.datetime(2013, 1, 5)] * 4
# OK, index is named as 'key'
grouped = dt_df.groupby('key')
grouped.size()
# key
#2013-01-01 4
#2013-01-02 4
#2013-01-04 4
#2013-01-05 4
# dtype: int64
# NG (no index name)
grouper = dt_df.groupby(pd.TimeGrouper(key='key', freq='D'))
grouper.size()
#2013-01-01 4
#2013-01-02 4
#2013-01-03 0
#2013-01-04 4
#2013-01-05 4
# dtype: int64
# other agg methods looks ok
grouper.count()
# A B C D
# key
#2013-01-01 4 4 4 4
#2013-01-02 4 4 4 4
#2013-01-03 0 0 0 0
#2013-01-04 4 4 4 4
#2013-01-05 4 4 4 4