擅长:python、mysql、java
<p>创建一个新的工作日层次结构,其中周六和周日的优先级最低。然后<code>sort_values</code>在这个新排名上+<code>groupby</code>+<code>.tail(1)</code></p>
<pre><code>import numpy as np
wd_map = dict(zip(np.arange(0,7,1), np.roll(np.arange(0,7,1),-2)))
# {0: 2, 1: 3, 2: 4, 3: 5, 4: 6, 5: 0, 6: 1}
df = df.assign(day_mapped = df.dates.dt.weekday.map(wd_map)).sort_values('day_mapped')
df.groupby(df.dates.dt.week).tail(1).sort_index()
</code></pre>
<h3>输出</h3>
<pre><code> dates nums day_mapped
4 2018-11-09 57 6
8 2018-11-15 83 5
10 2018-11-19 96 2
11 2018-12-01 66 0
</code></pre>
<p>如果您的数据跨越多年,则需要在<code>Year</code>+<code>week</code>上分组</p>