2016-10-02 85 views
2

我有一個熊貓dateframe和下面的代碼工作Python的大熊貓 - 索引」對象有沒有屬性‘小時’

df['hour'] = df.index.hour 
df['c'] = df['hour'].apply(circadian) 

,但我試圖減少需要做一個‘小時’coloumn,使用下面的代碼

df['c'] = df.apply(lambda x: circadian(x.index.hour), axis=1) 

,但我得到的錯誤信息

AttributeError: ("'Index' object has no attribute 'hour'", u'occurred at index 2015-09-25 01:00:00') 

人知道如何做到這一點?

回答

4

方法1:

轉換的DateTimeIndexSeries和使用apply

df['c'] = df.index.to_series().apply(lambda x: circadian(x.hour)) 

方法2:

使用axis=0沿行指數計算。

df['c'] = df.apply(lambda x: circadian(x.index.hour), axis=0) 
1

溶液
使用datetime存取dt

df['c'] = df.index.to_series().dt.hour.apply(circadian) 
相關問題