2016-06-07 15 views
0

我嘗試添加假日列法國的數據幀,但它給了我的使用workalendar包添加假期列在數據幀在Python

錯誤

系列對象有沒有屬性‘工作日’

下面是我的代碼;

from workalendar.europe import France 
df1 = pd.read_csv('C:\Users\ABC.csv') 
df1['Date'] = pd.to_datetime(df1['Date'], format= '%d/%m/%Y %H:%M:%S') 
df1['Date1'] = df1.Date.dt.date 
dr = df1['Date1'] 
cal = France() 
df1['Holiday'] = cal.is_working_day(df1['Date1']) 
df1.head() 

該文件中的原始數據如下所示;

Date    Value 
17/10/2012 19:00:00 0 
17/10/2012 20:00:00 0.1 
17/10/2012 21:00:00 0 
17/10/2012 22:00:00 0 
17/10/2012 23:00:00 0 
18/10/2012 00:00:00 0 
18/10/2012 01:00:00 0 
18/10/2012 02:00:00 0 
18/10/2012 03:00:00 0.1 
18/10/2012 04:00:00 0 
18/10/2012 05:00:00 0 
18/10/2012 06:00:00 0 
18/10/2012 07:00:00 0 
18/10/2012 08:00:00 0.2 
18/10/2012 09:00:00 0.5 

`

+0

試試這個'DF1 [ '日期1'] = df1.Date.dt.dayofweek'。 – shivsn

+0

仍然無法正常工作。 – Muhammad

回答

0

試試這個。

df1['Holiday'] = df1.Date.apply(lambda x: cal.is_working_day(pd.to_pydatetime(x))) 

您必須將對象類型轉換爲datetime

順便說一句,我認爲working_day將可能無法Holiday ...

Converting between datetime, Timestamp and datetime64

+0

謝謝,但它輸出2016-03-25和2016-03-28爲真(意味着他們是工作日),他們不是因爲這些是星期五和復活節星期一。我在檢查'cal.is_working_day(日期(2016,3,28))' – Muhammad

+0

編輯的答案時得到正確的結果。數據格式應該是python的日期時間。 ('to_pydatetime') – adamist521

+0

http://stackoverflow.com/questions/22825349/converting-between-datetime-and-pandas-timestamp-objects 可以幫助 – adamist521