擅长:python、mysql、java
<p>我喜欢这个解决方案</p>
<pre><code>ID=[171,171,182,182]
Report=[11,12,13,14]
DaysLeft=[5,9,1,2]
df=pd.DataFrame({'id':ID,'report':Report,'daysleft':DaysLeft})
df=df.sort_values(by="daysleft",ascending=True)\
.assign(order=lambda x: x.groupby("id").cumcount())\
.sort_values(by=['order','daysleft'])
output:
id report daysleft order
2 182 13 1 0
0 171 11 5 0
3 182 14 2 1
1 171 12 9 1
</code></pre>