2015-11-20 48 views
0

我有以下代碼函數應用到數據框柱(datetime.date)

def func (datas): 

       giorno=calendar.day_name[int(datas.day)] 
       mese=calendar.month_name[int(datas.month)] 
       day = getattr(result,'beta') 
       day=getattr(day,'%s'%(giorno)) 
       month= getattr(result,'beta') 
       month=getattr(month,'%s'%(mese)) 
       intercept=result.beta.intercept 
       d = datetime.date(2015, 1, 1) 
       holiday_map = dict(cal.holidays(d.year)) 
       holiday_=holiday_map.get(d, '?') 
       holiday= getattr(result,'beta') 
       holiday=getattr(holiday,holiday_) 
       return int(intercept)+int(month)+int(day)+int(holiday) 

我試圖在數據幀列「日」(datetime.date型)套用這個公式:

df_reg['regression']=df_reg['days'].map(lambda datas: data(datas)) 

,但我得到了以下錯誤:

C:\Anaconda3\lib\calendar.py in __getitem__(self, i) 
    73 
    74  def __getitem__(self, i): 
---> 75   funcs = self._days[i] 
    76   if isinstance(i, slice): 
    77    return [f(self.format) for f in funcs] 

IndexError: list index out of range 
+0

請包含執行此代碼所需的所有「輸入」和任何其他信息。謝謝。 – RobertL

+0

嗨,你可以發佈幾個原始數據和預期的結果嗎? – WoodChopper

回答

0

檢查的datas.day在第一線的值。它超出範圍。

有效值爲[0,1,2,3,4,5,6]