我试图根据duedates(我的数据框中的一列)和今天的日期之间的差异来对数据框进行子集
我首先使用today = datetime.now()
设置今天的约会对象
我希望找到距离今天不到3天的日期。
以下是我的尝试:
DueIn3Days= data.loc[(["Deadline"]-today).days<=3]
这会返回错误:"unsupported operand type(s) for -: 'list' and 'datetime.datetime'"
DueIn3Days= data[("lDeadline"-today).days<=3]
这会返回错误:'Series' object has no attribute 'days'
答案 0 :(得分:0)
您可能想要使用dt time accessor功能
import pandas as pd
rng = pd.date_range('3/28/2017', periods=12, freq='D')
df = pd.DataFrame(rng, columns = ['Deadline'])
print df
timedelta = (df["Deadline"]-pd.datetime.now().date()).dt.days
DueIn3Days = df[(timedelta <=3) & (timedelta>0)]
print DueIn3Days
结果
Deadline
0 2017-03-28
1 2017-03-29
2 2017-03-30
3 2017-03-31
4 2017-04-01
5 2017-04-02
6 2017-04-03
7 2017-04-04
8 2017-04-05
9 2017-04-06
10 2017-04-07
11 2017-04-08
和
Deadline
7 2017-04-04
8 2017-04-05
9 2017-04-06