第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

忽略某些值對(duì) pandas DataFrame 進(jìn)行排序

忽略某些值對(duì) pandas DataFrame 進(jìn)行排序

富國(guó)滬深 2022-12-06 16:33:45
有一個(gè)值接近 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),})根據(jù)值排序給出(排序colB顯然沒(méi)有效果):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但是,我只想根據(jù)較大的值進(jìn)行排序,比如> 0.5. 這將忽略較小的值colA并切換到以colB進(jìn)行進(jìn)一步排序。排序后的 DataFrame 看起來(lái)像這樣(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 回答

?
冉冉說(shuō)

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

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


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

細(xì)節(jié):


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


查看完整回答
反對(duì) 回復(fù) 2022-12-06
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

構(gòu)建一個(gè)與“a”相同但忽略較小值的新列,并使用此新值和“b”進(jìn)行排序:


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)

結(jié)果:


   colA  colB

0  0.97  0.01

1  0.88  0.03

3  0.02  0.99

2  0.03  0.87


查看完整回答
反對(duì) 回復(fù) 2022-12-06
?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

根據(jù)條件過(guò)濾數(shù)據(jù)場(chǎng),然后排序,然后追加


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


查看完整回答
反對(duì) 回復(fù) 2022-12-06
  • 3 回答
  • 0 關(guān)注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)