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

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

如何在pandas中按組獲取最大限制的前n行

如何在pandas中按組獲取最大限制的前n行

慕娘9325324 2023-06-27 18:15:45
我有一個看起來像這樣的數(shù)據(jù)框pd.DataFrame({'A': ['C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'],  ...:                    'B': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C'],  ...:                    'R': [9, 1, 7, 4, 3, 5, 2, 6, 8, 10]})Out[3]:      A  B   R0   C1  A   91   C2  A   12   C3  A   73   C4  B   44   C5  B   35   C6  B   56   C7  B   27   C8  C   68   C9  C   89  C10  C  10R 列是我的排名列,我想獲取排名前 5 的項(xiàng)目(A 列),但是,B 列中每組最多可以選擇 3 個項(xiàng)目。我知道我可以執(zhí)行以下操作來選擇排名前 5 的項(xiàng)目df.sort_values('R').head(5)Out[10]:     A  B  R1  C2  A  16  C7  B  24  C5  B  33  C4  B  45  C6  B  5但這會從 B 組中選擇 4 個項(xiàng)目。我如何限制它每組最多只能選擇 3 個項(xiàng)目?我生成的數(shù)據(jù)框應(yīng)該如下所示    A  B  R1  C2  A  16  C7  B  24  C5  B  33  C4  B  45  C8  C  6邏輯 - 項(xiàng)目 C6 未被選擇,因?yàn)樗墙M B 的第 4 個項(xiàng)目,因此要選擇的下一個可用項(xiàng)目是 C8,它具有下一個最佳排名并且不違反組限制。
查看完整描述

2 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊

我們可以嘗試GroupBy.head

new_df = df.sort_values('R').groupby('B', sort=False).head(3).head(5)

print(new_df)

? ? A? B? R

1? C2? A? 1

6? C7? B? 2

4? C5? B? 3

3? C4? B? 4

7? C8? C? 6


查看完整回答
反對 回復(fù) 2023-06-27
?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個贊

top = df.merge(

    df.groupby('B').R.nsmallest(3) # get the 3 top ranked rows for each group

        .reset_index('B'),

        # `nsmallest` will return a new df with B and df.index as MultiIndex

        # so we reset B to a column

        # however column A is not in this new df, so we merge with the original df

    how='right') # and drop any rows not in the new df

輸出


     A  B   R

0   C2  A   1

1   C3  A   7

2   C1  A   9

3   C7  B   2

4   C5  B   3

5   C4  B   4

6   C8  C   6

7   C9  C   8

8  C10  C  10


查看完整回答
反對 回復(fù) 2023-06-27
  • 2 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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