【发布时间】:2021-08-03 15:53:29
【问题描述】:
我有一个数据框,其格式(日期范围从 start="2018-09-09",end="2020-02-02"),值从 1 到 513
我有另一个格式的数据框(只有 3 个日期)
基于第二个数据框,我想要 2 个日期之前和 1 个日期之后我的意思是这个
【问题讨论】:
标签: python pandas datetime data-cleaning
我有一个数据框,其格式(日期范围从 start="2018-09-09",end="2020-02-02"),值从 1 到 513
我有另一个格式的数据框(只有 3 个日期)
基于第二个数据框,我想要 2 个日期之前和 1 个日期之后我的意思是这个
【问题讨论】:
标签: python pandas datetime data-cleaning
已编辑:根据问题更正答案
如果你这样做:
keep = []
for val in df2['value']:
keep += [val-3, val-2, val-1, val]
df_final = df1.take(keep)
假设:您的 value 列始终从 1 开始并且是连续的。此外,它的数据类型是整数而不是字符串。
它的作用:
每个日期的行号(索引) = 该行的 value - 1,因为索引从 0 开始。
因此,这仅保留value-3(2 天前)、value-2(1 天前)、value-1(df2 中的那一天)和value(1 天后)索引在keep 列表中。
然后DataFrame.take(indices) 为我们完成这项工作,只从提到的DataFrame df1 中取出带有参数indices 中提到的索引的行,一个列表。
【讨论】: