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

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

如何在分組數據幀中獲取每個組的前5個項目?

如何在分組數據幀中獲取每個組的前5個項目?

慕森王 2022-08-02 15:44:47
df = pd.DataFrame({'Weekday':list('MMMMMMMMMMTTTTTTTTTT'),                  'Items': list("AAABBCDEFGBBBCCADEFG")                  })grouped = df.groupby(['Weekday','Items'],sort=True).agg({'Items': 'count'})然后,我得到分組的結果:Weekday Items       M       A          3        B          2        C          1        D          1        E          1        F          1        G          1T       A          1        B          3        C          2        D          1        E          1        F          1        G          1因此,如何為每個“工作日”輸出前5個項目(“M”和“T”為5),例如:Weekday Items       M       A          3        B          2        C          1        D          1        E          1T        B          3        C          2        A          1        D          1        E          1任何人都可以幫忙嗎?
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

df = pd.DataFrame({'Weekday':list('MMMMMMMMMMTTTTTTTTTT'),

              'Item': list("AAABBCDEFGBBBCCADEFG")

              })


grouped = df.groupby(['Weekday','Item'],sort=True).agg(count=('Item', 'count'))


grouped.sort_values(['Weekday','count'],ascending=False).groupby('Weekday').head(5)



           count

Weekday Item    

   T    B   3

        C   2

        A   1

        D   1

        E   1

    M   A   3

        B   2

        C   1

        D   1

        E   1


查看完整回答
反對 回復 2022-08-02
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

 grouped = (df.groupby(['Weekday','Items'])

            .Items.agg(counter='count')

            .groupby(['Weekday'],

            as_index=False))


pd.concat([group.nlargest(5,'counter') for name,group in grouped])


              counter

Weekday Items   

M       A       3

        B       2

        C       1

        D       1

        E       1

T       B       3

        C       2

        A       1

        D       1

        E       1

分組兩次,首先獲取計數器變量。第二個組允許通過組進行迭代,以使用 nlargest 獲得前 5 個。最后一步是將列表中的數據幀合并為一個。


vb_rise的解決方案應該更快,因為它避免了迭代過程。


查看完整回答
反對 回復 2022-08-02
  • 2 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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