擅长:python、mysql、java
<p>要确定连续工作日的跨度,您需要添加周末(可能还有带有<code>holidays=</code>参数的假日),这样您就可以检查所有日期之间是否有1天的间隔来组成您的组</p>
<p>首先将列表转换为一系列<code>datetime64</code>值,并连接数据中的所有周末。排序并删除重复项。然后找到差异所在<code>!=1</code>以创建组,并希望最小值和最大值获得开始和结束</p>
<pre><code>import pandas as pd
list_of_dates = ["15/02/2021", "16/02/2021", "17/02/2021",
"19/02/2021", "22/02/2021", "23/02/2021"]
</code></pre>
<hr/>
<pre><code>s = pd.Series(pd.to_datetime(list_of_dates, format='%d/%m/%Y'))
sweekend = pd.Series(pd.bdate_range(s.min(), end=s.max(), freq='C',
weekmask='Sat Sun', holidays=None))
s = pd.concat([s, sweekend]).drop_duplicates().sort_values()
gps = s.diff().dt.days.ne(1).cumsum()
s.to_frame().groupby(gps).agg(start_date=(0, min), end_date=(0, max))
</code></pre>
<hr/>
<pre><code> start_date end_date
1 2021-02-15 2021-02-17
2 2021-02-19 2021-02-23
</code></pre>