计算python熊猫中的条件日期差异

问题描述

我将尝试简要介绍我的查询,如果需要更多信息,请告诉我。

我的查询是基于滚动时间窗口概念创建“ Date_Diff”列。此df的Date_Diff

举个例子:

dict = { 'Store' : ['A','A','B','B'],'Date':['4/1/2020','4/5/2020','4/7/2020','4/8/2020','4/10/2020','4/12/2020','4/16/2020','4/4/2020','4/6/2020','4/17/2020'],'Rule1':[ '','',''],'Rule2':[ '','Rule3':[ '','Rule4':[ '','']
}
df = pd.DataFrame(dict)

数据框看起来像这样:

    Store   Date    Rule1   Rule2   Rule3   Rule4
0   A   4/1/2020    
1   A   4/5/2020    
2   A   4/7/2020    
3   A   4/8/2020    
4   A   4/10/2020   
5   A   4/12/2020   
6   A   4/16/2020   
7   B   4/4/2020                
8   B   4/6/2020                
9   B   4/7/2020                

以下是选择开始日期的条件:

  1. 按商店分组,和
  2. 规则列应至少包含一个“有效”

滚动窗口以索引“ 0”开始,处理索引0至索引4(10天窗口)并应用方法。列规则“ X”将相应更新。现在,将index1选择为下一个开始日期,因为Rule1具有“有效”记录。

    Store   Date    Date_Diff   Rule1   Rule2   Rule3   Rule4
0   A   4/1/2020    0           Invalid Valid   Valid   Valid
1   A   4/5/2020    4           Valid   Invalid Invalid Invalid
2   A   4/7/2020    6           Invalid Invalid Invalid Invalid
3   A   4/8/2020    7           Invalid Invalid Valid   Invalid
4   A   4/10/2020   9           Valid   Invalid Valid   Valid
5   A   4/12/2020   11          
6   A   4/16/2020   15          
7   B   4/4/2020    0           
8   B   4/6/2020    2           
9   B   4/18/2020   14          

第一次迭代后,索引1成为开始日期“ Date_Diff”,应该这样计算,并且看起来应该像这样

    Store   Date    Date_Diff   Rule1   Rule2   Rule3   Rule4
0   A   4/1/2020    0           Invalid Valid   Valid   Valid
1   A   4/5/2020    0           Valid   Invalid Invalid Invalid
2   A   4/7/2020    2           Invalid Invalid Invalid Invalid
3   A   4/8/2020    3           Invalid Invalid Valid   Invalid
4   A   4/10/2020   5           Valid   Invalid Valid   Valid
5   A   4/12/2020   7           Invalid Valid   Invalid Invalid
6   A   4/16/2020   11          Valid   Invalid Valid   Valid
7   B   4/4/2020    0           
8   B   4/6/2020    2           
9   B   4/18/2020   14          

我遇到了障碍,不知道如何进行。非常感谢您在这里的帮助。谢谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)