2017-09-23 78 views
1

我是熊貓新手。我有一個TTI的數據框,按一天中的小時排序多年。我想添加一個顯示每個值的去年tti值的新列。我寫了這樣的代碼:熊貓滯後參數?

import pandas as pd 
tti = pd.read_csv("c:\\users\\Mehrdad\\desktop\\Hourly_TTI.csv") 
tti['new_date'] = pd.to_datetime(tti['Date']) 
tti['last_year'] = tti['TTI'].shift(1,freq='1-Jan-2009') 
print tti.head(10) 

但我不知道如何定義班次的頻率值!因此,它會使我的數據在我的第一個日期即01-01-2010之後改變一年。!?

+0

你不想'freq ='Y''一年嗎? –

+0

嗨,約翰。我確實使用'Y'作爲頻率,但是我收到了'valueError'消息。 –

回答

0
df['last_year'] = df['date'].apply(lambda x: x - pd.DateOffset(years=1)) 
df['new_value'] = df.loc[df['last_year'],:] 

df.shift只能移動一個固定的距離。 使用偏移量創建新的日期時間索引並使用新索引檢索值。注意截斷第一年的日期。