在日期范围内查找熊猫数据框

时间:2019-12-21 11:07:36

标签: python pandas dataframe machine-learning dataset

我有一个带有“ DateTime”列的Pandas DataFrame。我需要过滤掉DataFrame中具有该日期的所有行,并在目标日期后加上-7天和+7天。

应该是这样的:test = dataset.loc[-7:"4/17/2017":+7].hp1.values

实现此目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

想法是通过Timedelta在上方和下方创建日期时间,然后使用开始和结束日期时间进行过滤,对于按列名进行过滤的情况,请将其添加到DataFrame.loc

#sample data
dataset = pd.DataFrame({'hp1':range(20)}, index=pd.date_range('04-09-2017', periods=20))
#print(dataset)

d = "4/17/2017"
date = pd.to_datetime(d)

td = pd.Timedelta(7, unit='d')
#alternative
#td = pd.offsets.DateOffset(days=7)

start = date - td
end = date + td

test = dataset.loc[start:end, 'hp1']

print (test)
2017-04-10     1
2017-04-11     2
2017-04-12     3
2017-04-13     4
2017-04-14     5
2017-04-15     6
2017-04-16     7
2017-04-17     8
2017-04-18     9
2017-04-19    10
2017-04-20    11
2017-04-21    12
2017-04-22    13
2017-04-23    14
2017-04-24    15
Freq: D, Name: hp1, dtype: int64