我有一個資料框
Testcase Processing_time Pass Fail avg_failure_rate Ranking_value
t1 1.102088 8 26 76.47 69.38
t2 1.718864 19 3 13.63 7.93
t3 25 22 0 0 0
t4 15 22 0 0 0
我想保留上述資料框中的前兩個測驗用例,但我想根據最短處理時間列對其余測驗用例進行排序。
期望的輸出:
TestCase Processing_time Pass Fail avg_failure_rate Ranking_value
t1 1.102088 8 26 76.47 69.38
t2 1.718864 19 3 13.63 7.93
t4 15 22 0 0 0
t3 25 22 0 0 0
如果測驗用例的排序值等于 0,則應根據最短處理時間規則對其進行排序。有什么辦法可以做到這一點嗎?
uj5u.com熱心網友回復:
分兩步做,拆分資料幀然后concat回傳
idx = df.index[df.Ranking_value==0]
out = pd.concat([df.drop(idx),df[idx].sort_values('Processing_time')])
Out[120]:
Testcase Processing_time Pass Fail avg_failure_rate Ranking_value
0 t1 1.102088 8 26 76.47 69.38
1 t2 1.718864 19 3 13.63 7.93
3 t4 15.000000 22 0 0.00 0.00
2 t3 25.000000 22 0 0.00 0.00
uj5u.com熱心網友回復:
使用排名值 0 過濾.loc并按 排序.sort_values()。然后追加回秩值不等于 0 的另一部分 by .append(),如下所示:
df.loc[df['Ranking_value'] != 0].append(df.loc[df['Ranking_value'] == 0].sort_values('Processing_time'))
結果:
Testcase Processing_time Pass Fail avg_failure_rate Ranking_value
0 t1 1.102088 8 26 76.47 69.38
1 t2 1.718864 19 3 13.63 7.93
3 t4 15.000000 22 0 0.00 0.00
2 t3 25.000000 22 0 0.00 0.00
uj5u.com熱心網友回復:
嘗試屏蔽。
mask = df.loc[:,“Ranking_value”] == 0.
df.loc[mask,:].sort_values(“Processing_time”,inplace=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/333893.html
上一篇:這是在c中按頻率排序的陣列
下一篇:如何根據模式組織陣列?
