【问题标题】:How to find the difference between today's date and a column of dates from a dataframe如何从数据框中找到今天的日期和日期列之间的差异
【发布时间】:2017-04-03 23:52:14
【问题描述】:

我正在尝试根据到期日期(我的数据框中的一列)和今天的日期之间的差异对数据框进行子集化

我首先使用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'

【问题讨论】:

  • ["Deadline"]-today... 其中一个是列表,另一个是日期时间。换句话说,这不是你想要做的 Numpy 语法

标签: python date datetime


【解决方案1】:

你可能想使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多