我是熊猫的新手。我有一个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)
但我不知道如何为shift定义频率值!因此,我的数据将在我的第一个日期(01-01-2010)之后移动一年。!?
答案 0 :(得分:0)
df['last_year'] = df['date'].apply(lambda x: x - pd.DateOffset(years=1))
df['new_value'] = df.loc[df['last_year'],:]
df.shift
只能按固定距离移动。
使用offset创建新的日期时间索引并使用新索引检索值。请注意截断第一年的日期。