我有以下数据帧:
exdiv_date expiry_date
0 2015-09-18 2015-12-18
1 2015-11-20 2015-12-18
2 NaN 2016-01-20
3 2015-12-26 2016-01-15
4 NaN 2015-11-21
我需要标记exdiv日期在今天之后和到期日期之前的每一行。输出应为:
exdiv_date expiry_date flag
0 2015-09-18 2015-12-18 False
1 2015-11-20 2015-12-18 True
2 NaN 2016-01-20 False
3 2015-12-26 2016-01-15 True
4 NaN 2015-11-21 False
根据该示例,有些行没有exdiv\u日期(即:NaN)。我已确保出厂日期和到期日期的类型相同,如下所示:
df['exdiv_date'] = pd.to_datetime(df['exdiv_date'])
df['expiry_date'] = pd.to_datetime(df['expiry_date'])
我试过这样做:
mask = (df['exdiv_date'] > dt.date.today) & (df['exdiv_date'] < df['expiry_date'])
df.loc[mask, 'flag'] = True
但是我得到一个错误:TypeError: Cannot convert input to Timestamp
我想这个错误是因为南的,但我不知道如何绕过它
括号有问题-使用
dt.date.today()
您也可以使用np.where:
相关问题 更多 >
编程相关推荐