如何确定日期是否在期间结束之后
How to find out if a date is after the end of a period
在此数据集中,我想找出(按元素)date
是否发生在 week
中给出的时间段结束之后。
import pandas as pd
df = pd.DataFrame({
"week": pd.period_range('2018-03-01', '2018-05-01', freq='W'),
"date": pd.date_range('2018-04-09', periods=10, freq='D')
})
预期输出:
week date out
0 2018-02-26/2018-03-04 2018-04-09 True
1 2018-03-05/2018-03-11 2018-04-10 True
2 2018-03-12/2018-03-18 2018-04-11 True
3 2018-03-19/2018-03-25 2018-04-12 True
4 2018-03-26/2018-04-01 2018-04-13 True
5 2018-04-02/2018-04-08 2018-04-14 True
6 2018-04-09/2018-04-15 2018-04-15 False
7 2018-04-16/2018-04-22 2018-04-16 False
8 2018-04-23/2018-04-29 2018-04-17 False
9 2018-04-30/2018-05-06 2018-04-18 False
我尝试了 end_time,但这不适用于一系列时期。
将 Series.to_timestamp
与 .dt
一起使用,因为不能使用 DatetimeIndex
和参数 how='e'
:
df['out'] = df['week'].dt.to_timestamp(how='e') < df['date']
print (df)
week date out
0 2018-02-26/2018-03-04 2018-04-09 True
1 2018-03-05/2018-03-11 2018-04-10 True
2 2018-03-12/2018-03-18 2018-04-11 True
3 2018-03-19/2018-03-25 2018-04-12 True
4 2018-03-26/2018-04-01 2018-04-13 True
5 2018-04-02/2018-04-08 2018-04-14 True
6 2018-04-09/2018-04-15 2018-04-15 False
7 2018-04-16/2018-04-22 2018-04-16 False
8 2018-04-23/2018-04-29 2018-04-17 False
9 2018-04-30/2018-05-06 2018-04-18 False
在此数据集中,我想找出(按元素)date
是否发生在 week
中给出的时间段结束之后。
import pandas as pd
df = pd.DataFrame({
"week": pd.period_range('2018-03-01', '2018-05-01', freq='W'),
"date": pd.date_range('2018-04-09', periods=10, freq='D')
})
预期输出:
week date out
0 2018-02-26/2018-03-04 2018-04-09 True
1 2018-03-05/2018-03-11 2018-04-10 True
2 2018-03-12/2018-03-18 2018-04-11 True
3 2018-03-19/2018-03-25 2018-04-12 True
4 2018-03-26/2018-04-01 2018-04-13 True
5 2018-04-02/2018-04-08 2018-04-14 True
6 2018-04-09/2018-04-15 2018-04-15 False
7 2018-04-16/2018-04-22 2018-04-16 False
8 2018-04-23/2018-04-29 2018-04-17 False
9 2018-04-30/2018-05-06 2018-04-18 False
我尝试了 end_time,但这不适用于一系列时期。
将 Series.to_timestamp
与 .dt
一起使用,因为不能使用 DatetimeIndex
和参数 how='e'
:
df['out'] = df['week'].dt.to_timestamp(how='e') < df['date']
print (df)
week date out
0 2018-02-26/2018-03-04 2018-04-09 True
1 2018-03-05/2018-03-11 2018-04-10 True
2 2018-03-12/2018-03-18 2018-04-11 True
3 2018-03-19/2018-03-25 2018-04-12 True
4 2018-03-26/2018-04-01 2018-04-13 True
5 2018-04-02/2018-04-08 2018-04-14 True
6 2018-04-09/2018-04-15 2018-04-15 False
7 2018-04-16/2018-04-22 2018-04-16 False
8 2018-04-23/2018-04-29 2018-04-17 False
9 2018-04-30/2018-05-06 2018-04-18 False