将条件移动平均到其他列

时间:2019-08-28 15:08:14

标签: python pandas pandas-groupby

我想对包含过去属性日历及其可用天数,预订天数和预订天数的表进行条件移动平均。表格示例

   Date    | ID | Reservation Day | Booked | Conditional 30 MA|
2019-03-30   11      2019-02-26       1
2019-03-29   11      2019-02-26       0
    .         .           .           .
    .         .           .           .
    .         .           .           .
2019-03-20   11      2019-03-06       1
    .         .           .           .
    .         .           .           .
    .         .           .           .
2019-03-01   11      2019-02-26       1
2019-04-31   20      2019-04-26       1
2019-04-29   20      2019-04-26       0
    .         .           .           .
    .         .           .           .
    .         .           .           .
2019-04-20 . 20      2019-03-06       1
    .         .           .           .
    .         .           .           .
    .         .           .           .
2019-04-01   20      2019-03-06       1

例如,我想得到的是什么。对于ID = 11的属性以及日期为“ 2019-03-01”的行,我需要获取Booked列的30天ma,但是将保留日>到行日期的天数设为0得到马。在这种情况下,我将必须平均将“ 2019-03-20”天算作0,因为其预订天数大于“ 2019-03-01”,依此类推。假设现在我们获取日期为“ 2019-03-19”的ma,在这种情况下,现在将“ 2019-03-20”视为1。我将不得不对其他ID执行此操作,因此是移动平均线的一组。我已经阅读了与此相关的其他问题,但是他们没有解决此问题。

1 个答案:

答案 0 :(得分:0)

嗨,我认为您需要这样的东西:

dataframe.groupby('ID')['booked'].rolling(30).mean()

您还必须订购预定日期才能使用此功能