我有这种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.
感谢您的帮助。
答案 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 )
注意:您需要从“南复活节”中删除数据中的点。