日期范围上的数据帧

2024-06-28 21:07:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有“DateTime”列的数据帧。我需要过滤掉数据框中所有有这个日期的行,并在目标日期前加上-7天和+7天。你知道吗

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

实现这一目标的最佳方法是什么?你知道吗


Tags: 数据方法test目标datetimedatasetlocvalues
1条回答
网友
1楼 · 发布于 2024-06-28 21:07:09

其思想是通过^{}在上面和下面创建datetimes,然后使用start和end datetimes进行筛选,对于按列名筛选,也可以将其添加到^{}

#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

相关问题 更多 >