添加日期熊猫之间差异的列DataFrame

时间:2019-06-28 07:42:43

标签: python pandas difference

我有这种DataFrame:

season       Date          Holiday_Name  
12-13        11/1/12          NaN        
12-13        11/2/12          Nan        
12-13        3/31/13         Easter        
12-13         4/5/13           NaN           

13-14        11/1/13          NaN.  
13-14        4/18/14          Nan.   
13-14        4/20/14         Easter.  
13-14        4/22/14          Nan.   

等等...

我需要一个新的专栏,其中每个季节的复活节距天数都有所不同。

我已经尝试了groupby,for循环(即使我知道这是错误的),方法,但似乎没有任何作用。

dataset["difference"] = dataset["Date"] -dataset["Date"].where(dataset["holiday_name"]=="Easter").days

但是它给了我这个错误:

  

“系列”对象没有属性“天”

dataset['differenza_pasqua'] = pd.Index(dataset["Data"] -dataset["Data"].where(dataset["holiday_name"]=="Pasqua di Resurrezione").dropna()).days

使用这个设置,我可以将复活节设置为0,但其他设置为NaN。

我期望的是这样的:

season       Date          Holiday_Name      difference  
12-13        11/1/12          NaN               150    
12-13        11/2/12          NaN               149.  
12-13        3/31/13         Easter              0.  
12-13        4/5/13           NaN                5.  

13-14        11/1/13          NaN               150.  
13-14        4/18/14          Nan                 2.  
13-14        4/20/14         Easter               0.   
13-14        4/22/14          Nan                 2.   

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

使用groupby很容易解决。

//@version=4
study("My Script")
dayTms()=>
 yr = year(time)
 mt = month(time)
 dt = dayofmonth(time)
 timestamp(yr, mt, dt, 0, 0)

requiredDayTms(daysAgo) =>
 tt = timenow - 86400 * daysAgo * 1000
 yr = year(tt)
 mt = month(tt)
 dt = dayofmonth(tt)
 timestamp(yr, mt, dt, 0, 0)

// argument value is the indent (in days) from the current bar
d=requiredDayTms(5)
plot(d == dayTms() ? 1:0, color=color.red, style=plot.style_histogram, linewidth=5 )

注意:您需要从“南复活节”中删除数据中的点。