【发布时间】:2021-06-12 19:19:07
【问题描述】:
我正在处理时间序列数据。我需要找到每个条目的前一周值。我的数据有 3 列:ID、日期和值。我想为 LWValue(上周的值)创建第 4 列。示例数据如下所示:
ID Date Value
0 1 2/1/2020 100
1 2 2/1/2020 80
2 1 2/2/2020 105
3 2 2/2/2020 84
4 1 2/8/2020 102
5 2 2/8/2020 82
6 1 2/9/2020 104
7 2 2/9/2020 86
我将如何在 Pandas 中执行此操作?
我试过了:
# create new column
df["LWValues"] = pd.Series()
# test out code on same values
df.loc[((df.ID == df.ID) & (df.Date == (df.Date) )), "LWValues"].values
# test out code with timedelta grabbing last week
df.loc[((df.ID == df.ID) & (df.Date == (df.Date - datetime.timedelta(days=7)) )), "LWValues"].values
当我这样做时,第二个操作有效,但最后一个操作,尝试使用 timedelta 参数从前一周提取数据没有。相反,我得到一个空数组。
我需要如何修复此代码?
或者,有没有比这更好的方法在 Pandas 中获取前一周的数据?
【问题讨论】:
-
请将您的示例数据添加为文本
标签: python pandas time-series