【发布时间】:2019-01-29 21:56:48
【问题描述】:
我将时间序列与间隔分组。我不想填补空白,尊重分组。
date 在每个id 中都是唯一的。
以下工作,但在我不想 NaN 的地方给了我零
data.groupby('id').resample('D', on='date').sum()\
.drop('id', axis=1).reset_index()
以下由于某种原因不起作用
data.groupby('id').resample('D', on='date').asfreq()\
.drop('id', axis=1).reset_index()
data.groupby('id').resample('D', on='date').fillna('pad')\
.drop('id', axis=1).reset_index()
我收到以下错误:
Upsampling from level= or on= selection is not supported, use .set_index(...) to explicitly set index to datetime-like
我尝试将pandas.Grouper 与set_index 多级索引或单级索引一起使用,但它似乎没有对我的日期列进行上采样,因此我得到连续的日期,或者它不尊重id 列。
Pandas 是 0.23 版
自己试试吧:
data = pd.DataFrame({
'id': [1,1,1,2,2,2],
'date': [
datetime(2018, 1, 1),
datetime(2018, 1, 5),
datetime(2018, 1, 10),
datetime(2018, 1, 1),
datetime(2018, 1, 5),
datetime(2018, 1, 10)],
'value': [100, 110, 90, 50, 40, 60]})
# Works but gives zeros
data.groupby('id').resample('D', on='date').sum()
# Fails
data.groupby('id').resample('D', on='date').asfreq()
data.groupby('id').resample('D', on='date').fillna('pad')
【问题讨论】:
标签: python pandas pandas-groupby