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

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

忽略某些值對 pandas DataFrame 進行排序

忽略某些值對 pandas DataFrame 進行排序

富國滬深 2022-12-06 16:33:45
有一個值接近 1 和接近 0 的 pandas DataFrame:df = pd.DataFrame({'colA': (0.97, 0.88, 0.03, 0.02),'colB': (0.01, 0.03, 0.87, 0.99),})根據值排序給出(排序colB顯然沒有效果):df.sort_values(['colA','colB'], ascending=False)>>    colA  colB>> 0  0.97  0.01>> 1  0.88  0.03>> 2  0.03  0.87>> 3  0.02  0.99但是,我只想根據較大的值進行排序,比如> 0.5. 這將忽略較小的值colA并切換到以colB進行進一步排序。排序后的 DataFrame 看起來像這樣(row 2并且3已切換):df.some_function(['colA','colB'], ascending=False, condition=i>0.5)>>    colA  colB>> 0  0.97  0.01>> 1  0.88  0.03>> 2  0.02  0.99>> 3  0.03  0.87非常感謝你的幫助!
查看完整描述

3 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

想法是將不匹配的值替換為缺失值然后排序,最后按新索引更改順序:


idx = (df[['colA','colB']].where(df[['colA','colB']] > 0.5)

           .sort_values(['colA','colB'], ascending=False).index)


df1 = df.loc[idx]

print (df1)

   colA  colB

0  0.97  0.01

1  0.88  0.03

3  0.02  0.99

2  0.03  0.87

細節:


print (df[['colA','colB']].where(df[['colA','colB']] > 0.5))

   colA  colB

0  0.97   NaN

1  0.88   NaN

2   NaN  0.87

3   NaN  0.99



print (df[['colA','colB']].where(df[['colA','colB']] > 0.5)

                          .sort_values(['colA','colB'], ascending=False))

   colA  colB

0  0.97   NaN

1  0.88   NaN

3   NaN  0.99

2   NaN  0.87


查看完整回答
反對 回復 2022-12-06
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

構建一個與“a”相同但忽略較小值的新列,并使用此新值和“b”進行排序:


df.assign(simplified_a = np.where(df.colA<0.5, 0, df.colA))\

  .sort_values(["simplified_a", "colB"], ascending=False).drop("simplified_a", axis=1)

結果:


   colA  colB

0  0.97  0.01

1  0.88  0.03

3  0.02  0.99

2  0.03  0.87


查看完整回答
反對 回復 2022-12-06
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

根據條件過濾數據場,然后排序,然后追加


df1 = df.where(df['colA'] > 0.5).sort_values('colA')

df2 = df.where(df['colA'] <= 0.5).sort_values('colB')


final_frame = df1.append(df2).dropna()


   colA  colB

0  0.87  0.01

1  0.88  0.03

2  0.03  0.87

3  0.02  0.99


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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