2017-09-23 74 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只能移动一个固定的距离。 使用偏移量创建新的日期时间索引并使用新索引检索值。注意截断第一年的日期。