pandas根据另一列计算每个组的滚动和

pandas根据另一列计算每个组的滚动和,pandas,Pandas,我有一个如下的数据集 data = pd.DataFrame( { 'ID':[1,1,1,1, 1, 1,2,2], 'Date': ['2020-01-10', '2020-01-10', '2020-02-01', '2020-03-01', '2020-09-01', '2020-10-01', '2020-01-01', '2020-09-15'], 'Dollar': [5, 10,25,30,15,12,9,7], }

我有一个如下的数据集

data = pd.DataFrame(
    {
    'ID':[1,1,1,1, 1, 1,2,2],
    'Date': ['2020-01-10', '2020-01-10', '2020-02-01', '2020-03-01', '2020-09-01', '2020-10-01',
          '2020-01-01', '2020-09-15'],
    'Dollar': [5, 10,25,30,15,12,9,7],
    }     
    )

data.head(10)
我想计算每个“ID”的“美元”总额,但有条件地基于过去2个月内的“日期”,而不计算当前记录中的“美元”。预期结果如下:

我知道有一种可能

  • 填写每个“ID”记录之间的所有“日期”
  • 将这些已填写月份的“美元”分配给0
  • 按“美元”的每个“ID”换班(1)
  • 对每个“ID”使用滚动(2).sum()
  • 在“ID”和“日期”上重新加入
  • 有什么简单的方法吗

    或者另一种方法是使用数据集与自身连接,然后在获取滚动和之前进行过滤