PYTHON Numpy的时间条件

PYTHON Numpy的时间条件,python,pandas,numpy,where,Python,Pandas,Numpy,Where,我有以下目标:我需要比较同一个表中的两个日期列,并根据比较结果创建第三列。我不知道如何比较np.where语句中的日期 这是我当前的代码: now = datetime.datetime.now() #set the date to compare delta = datetime.timedelta(days=7) #set delta time_delta = now+delta #now+7 days 下面是np.where语句: DB['s_date'] = np.where((DB[

我有以下目标:我需要比较同一个表中的两个日期列,并根据比较结果创建第三列。我不知道如何比较np.where语句中的日期

这是我当前的代码:

now = datetime.datetime.now() #set the date to compare
delta = datetime.timedelta(days=7) #set delta
time_delta = now+delta #now+7 days
下面是np.where语句:

DB['s_date'] = np.where((DB['Start Date']<=time_delta | DB['Start Date'] = (None,"")),DB['Start Date'],RW['date'])

DB['s_date']=np.其中((DB['Start date']lambda会为您应用工作吗Filippo?它会逐行查看序列,然后将您选择的函数应用于该行的每个值。函数中返回的任何内容都会用它返回的值填充序列

def compare(date):
    if date <= time_delta or date == None:
        #return something
    else:
        #return something else
DB['s_date'] = DB.apply(lambda x: compare(x))

lambda apply是否适用于您Filippo?它按行查看序列,然后将您选择的函数应用于该行的每个值。函数中返回的任何内容都将用它返回的值填充序列

def compare(date):
    if date <= time_delta or date == None:
        #return something
    else:
        #return something else
DB['s_date'] = DB.apply(lambda x: compare(x))

感谢您提供的见解。我更新(并针对我的目的进行了调整)了代码,如下所示,代码正常工作:

now = datetime.datetime.now() #set the date to compare
delta = datetime.timedelta(days=7) #set delta
time_delta = now+delta #now+7 days

DB['Start'] = np.where(((DB['Start Date']<=time_delta) | (DB['Start Date'].isnull()) | (DB['Start Date'] == "")),DB['Start'],DB['Start Date'])
now=datetime.datetime.now()#设置要比较的日期
delta=datetime.timedelta(天=7)#设置delta
时间增量=现在+增量#现在+7天

DB['Start']=np.where((DB['Start Date']感谢您的见解。我更新(并为我的目的进行了调整)代码如下,它可以工作:

now = datetime.datetime.now() #set the date to compare
delta = datetime.timedelta(days=7) #set delta
time_delta = now+delta #now+7 days

DB['Start'] = np.where(((DB['Start Date']<=time_delta) | (DB['Start Date'].isnull()) | (DB['Start Date'] == "")),DB['Start'],DB['Start Date'])
now=datetime.datetime.now()#设置要比较的日期
delta=datetime.timedelta(天=7)#设置delta
时间增量=现在+增量#现在+7天

DB['Start']=np.where((DB['Start Date']尝试将
|
更改为
仍不工作。我得到以下结果:“无法将数据类型的[datetime64[ns]]数组与[bool]类型的标量进行比较”
(DB['Start Date']究竟什么是
DB
?另外,什么是
RW
?尝试将
更改为
仍不工作。我得到以下结果:“无法将数据类型的[datetime64[ns]]数组与[bool]类型的标量进行比较”
(DB['Start Date']什么是DB
?还有,什么是RW
?你可以用DB['s_'u date']=DB来简化一点。应用(比较)
而不是你可以用DB['s_date']=DB来简化一点。应用(比较)