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

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

減少python中數(shù)據(jù)框的維度

減少python中數(shù)據(jù)框的維度

函數(shù)式編程 2021-07-23 15:01:20
我有數(shù)據(jù)框,包含三列。我想減少數(shù)據(jù)框的尺寸。  data = [[1, 876, 0.98],[1, 888, 0.58],[1, 976, 0.48],[1, 648, 0.98],[2, 765, 0.28], [2, 986, 0.28], [2, 765, 1.0], [2, 876, 0.45]]    sample = pd.DataFrame(data, columns=['col1','col2', 'col3'])   col1  col2  col30     1   876  0.981     1   888  0.582     1   976  0.483     1   648  0.984     2   765  0.285     2   986  0.286     2   765  1.007     2   876  0.45我希望下面是基于條件的所需輸出: 1. 對(duì)于 col1 中的每個(gè)值,應(yīng)該有一行,col 4 應(yīng)該是元組列表(col2, col3) 2. col4 應(yīng)該只有基于值的前兩個(gè)元組第 3 列 例如,在樣本數(shù)據(jù)幀中,col2 765 出現(xiàn)了兩次,最終的數(shù)據(jù)幀應(yīng)該取在 col3 中具有最高值和第二高的那個(gè)data = [[1, [(876, 0.98),(648, 0.98)]],[2, [(876, 0.45), (765, 1.0)]]]desired_output = pd.DataFrame(data, columns=['col1', 'col2'])   col1                        col40     1  [(876, 0.98), (648, 0.98)]1     2   [(876, 0.45), (765, 1.0)]我想存儲(chǔ)在元組列表中,以便我可以將它用于其他目的。這只是解決更大問題的一部分。
查看完整描述

1 回答

?
白板的微信

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

FWIW


sample = sample.sort_values(['col1', 'col3'], ascending=[True, False])

sample.groupby('col1')[['col2', 'col3']].apply(

    lambda d: [*d.head(2).itertuples(index=False)]

).reset_index(name='col4')


   col1                        col4

0     1  [(876, 0.98), (648, 0.98)]

1     2   [(765, 1.0), (876, 0.45)]

這些將被命名為元組。你可以避免這種情況name=None


sample = sample.sort_values(['col1', 'col3'], ascending=[True, False])

sample.groupby('col1')[['col2', 'col3']].apply(

    lambda d: [*d.head(2).itertuples(index=False, name=None)]

).reset_index(name='col4')


查看完整回答
反對(duì) 回復(fù) 2021-07-28
  • 1 回答
  • 0 關(guān)注
  • 257 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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