熊猫的多索引重采样

时间:2019-07-20 16:28:23

标签: python pandas time-series

我有一个由ID标识的对象的数据集,这些对象会在一段时间内移动每个ID:ID,移动的日期,移动的位置。我必须每月重新采样一次。可以使用以下代码完成此操作:

           place
id date
0  2019-01    CH
   2019-06    IT
   2019-07    US
1  2017-03    US
   2018-12    IT
   2019-07    US
...
df.set_index('date',inplace=True)
df2 = df.groupby('id').resample('M').ffill()  

结果如下:

           place
id date
0  2019-01   0    CH
   2019-02   0    CH
   2019-03   0    CH
   2019-04   0    CH
   2019-05   0    CH
   2019-06   0    IT
   2019-07   0    US
1  2017-03   1    US
   2017-04   1    US
   2017-05   1    US
   2017-06   1    US
   2017-07   1    US
...

这几乎是我所需要的!如您所见,例外情况是,由于重新采样是按组完成的,因此每个ID的开始日期和结束日期都不相同,而我需要将缺少的月份添加到给定的日期中(例如,开始日期和结束日期年底)。任何线索如何实现这一目标?

对不起,如果重复的话。我见过很多类似的问题,但没有一个能具体回答这个变体。

1 个答案:

答案 0 :(得分:1)

您可以使用

df.unstack().ffill(1).stack()