亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按兩個標準對列進行排序

按兩個標準對列進行排序

慕容森 2022-12-27 17:13:42
我得到了一個結果列表,我想按兩個標準對其進行排序。我對 sys 列進行了第一次排序:systems = {'BzBz_S':0,'BzBz_PD34':1,'MeMe':2}sorted_results = sorted(results, key = lambda e: (systems[e[0]]))并傳遞給 DataFramedf = pd.DataFrame(sorted_results,columns = ['sys','dis','basis','Energy'])這給了我以下輸出:,sys,dis,system,basis,Energy0,BzBz_S,10.0,BzBz_S_10.0,S,0.025624651,BzBz_S,3.2,BzBz_S_3.2,S,1.485102972,BzBz_S,3.3,BzBz_S_3.3,S,-0.250864983,BzBz_S,6.0,BzBz_S_6.0,S,-0.118279754,BzBz_S,3.9,BzBz_S_3.9,S,-2.447052445,BzBz_PD34,0.4,BzBz_PD34_0.4,PD34,-1.881723126,BzBz_PD34,0.2,BzBz_PD34_0.2,PD34,-1.505190347,MeMe,5.0,MeMe_5.0,5,-0.121942838,MeMe,5.4,MeMe_5.4,5,-0.07556324除了 sys 之外,我如何創建第二個排序標準來對 dis 列進行排序,以獲得這樣的最終結果:,sys,dis,system,basis,Energy0,BzBz_S,3.2,BzBz_S_3.2,S,1.485102971,BzBz_S,3.3,BzBz_S_3.3,S,-0.250864982,BzBz_S,3.9,BzBz_S_3.9,S,-2.44705244 3,BzBz_S,6.0,BzBz_S_6.0,S,-0.118279754,BzBz_S,10.0,BzBz_S_10.0,S,0.025624655,BzBz_PD34,0.2,BzBz_PD34_0.2,PD34,-1.505190346,BzBz_PD34,0.4,BzBz_PD34_0.4,PD34,-1.881723127,MeMe,5.0,MeMe_5.0,5,-0.121942838,MeMe,5.4,MeMe_5.4,5,-0.07556324
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

獲得第一個輸出后,您可以執行以下操作以獲得最終輸出,希望對您有所幫助!


df['sys_cat']=df['sys'].astype('category')  #creating a categorical column in the dataframe


d = dict(zip(df.sys_cat,df.sys_cat.cat.codes)) # converting categorical column into codes


# reassigning categories

count=0

for i in d:

    d[i]=count

    count+=1


df['sys_cat']=df['sys_cat'].map(d).astype(int)

df.sort_values(by=['sys_cat', 'dis'],ascending=[True, True], inplace=True)

df.drop(['sys_cat'], inplace=True, axis=1)

df.reset_index(inplace=True, drop=True)

df

給出:


          sys   dis            system   basis      Energy

0      BzBz_S   3.2        BzBz_S_3.2   S        1.485103

1      BzBz_S   3.3        BzBz_S_3.3   S       -0.250865

2      BzBz_S   3.9        BzBz_S_3.9   S       -2.447052

3      BzBz_S   6.0        BzBz_S_6.0   S       -0.118280

4      BzBz_S   10.0      BzBz_S_10.0   S        0.025625

5   BzBz_PD34   0.2     BzBz_PD34_0.2   PD34    -1.505190

6   BzBz_PD34   0.4     BzBz_PD34_0.4   PD34    -1.881723

7        MeMe   5.0          MeMe_5.0   5       -0.121943

8        MeMe   5.4          MeMe_5.4   5       -0.075563


查看完整回答
反對 回復 2022-12-27
  • 1 回答
  • 0 關注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號