【发布时间】:2017-10-21 01:15:58
【问题描述】:
我有一个数据框,其中一列是日期(即5/29/2007),然后是 col A 和 col B 以及其他几列。 col A 和 col B 的日期和值唯一标识该行。我想将列添加到数据框中,这些列是其他列(不是 A 或 B)的历史值。例如我有一些行。称它为行i,它对col D 有一些价值。我想在数据框中添加一列,该列对应于col D 的值,但在前一天。这是 col D 的值,其中行,称为行 j,col A 和 col B 的值与行 i 相同,但日期是行 i 的日期减去一天。我怎样才能有效地做到这一点?
我还想对多列执行此操作,而不仅仅是 col D。
这是我想要的一个例子。以下是我当前的数据框 csv。
Date, col-A, col-B, col-C, col-D
5/29/2007, A, B, 0, 1
5/29/2007, AA, Bf, 7, 124
5/29/2007, AV, Bf, 1, 4
5/30/2007, A, B, 10, 1
5/30/2007, AA, Bf, 3, 1
5/30/2007, AV, Bf, 1, 8
这是我希望我的数据框拥有的所需输出数据
Date, col-A, col-B, col-C, col-D, col-D-1
5/30/2007, A, B, 10, 1, 1
5/30/2007, AA, Bf, 3, 1, 124
5/30/2007, AV, Bf, 1, 8, 4
【问题讨论】:
-
我没有足够的想象力来创建您的示例数据...
-
我添加了示例数据。让我知道它是否以某种方式模棱两可,我会尝试消除歧义
-
您想要一排延迟还是一天延迟?见
pd.DataFrame.shift() -
@C8H10N4O2 我想要一个(或一个 x)天的延迟