我有一系列僅包含作業日(無周末)的日期
from datetime import datetime as dtm
df=pd.DataFrame([dtm(2022,3,1),dtm(2022,3,2),dtm(2022,3,3),dtm(2022, 4, 15),dtm(2022,4,18),dtm(2022,4,19),dtm(2022,4,20)],columns=['dates'])
dates
0 2022-03-01
1 2022-03-02
2 2022-03-03
3 2022-04-15
4 2022-04-18
5 2022-04-19
6 2022-04-20
我想創建一個資料框,其中只有連續 WEEKDAY 日期的開始日期和結束日期,使用上面的示例,所需的輸出是
dates
0 2022-03-01
1 2022-03-03
2 2022-04-15
3 2022-04-20
uj5u.com熱心網友回復:
如果與聚合和日期DataFrame.groupby時間類似,則用于天之間的差異,然后通過以下方式重塑:7minmaxDataFrame.stack
df = (df.groupby((~df['dates'].diff().dt.days.le(7)).cumsum())['dates']
.agg(['min','max'])
.stack()
.reset_index(drop=True))
print (df)
0 2022-03-01
1 2022-03-03
2 2022-04-15
3 2022-04-20
dtype: datetime64[ns]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/465577.html
上一篇:根據范圍將日期時間分類到新列中
