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

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

Pandas 排序 A 列排名 B 列排序

Pandas 排序 A 列排名 B 列排序

富國滬深 2021-08-24 19:28:24
目前我有以下python代碼forumposts = pd.DataFrame({'UserId': [1,1,2,3,2,1,3], 'FirstPostDate': [2018,2018,2017,2019,2017,2018,2019], 'PostDate': [201801,201802,201701,201901,201801,201803,201902]})data = forumposts.groupby(['UserId', 'PostDate','FirstPostDate']).size().reset_index()rankedUserIdByFirstPostDate = data.groupby(['UserId', 'FirstPostDate']).size().reset_index().sort_values('FirstPostDate').reset_index(drop=True).reset_index()data.loc[:,'Rank'] = data.merge(rankedUserIdByFirstPostDate , how='left', on='UserId')['index'].values該代碼按預(yù)期工作,但它很復(fù)雜,是否有更多類似熊貓的方法?意圖如下:在UserId按 排序的列上創(chuàng)建一個(gè)密集排名,使得FirstPostDate發(fā)布最早的用戶獲得排名 0,而發(fā)布第二早的第一次發(fā)布的用戶獲得排名 1,依此類推。Usingforumposts.UserId.rank(method='dense')給了我一個(gè)排名,但它按 UserId 的順序排序。
查看完整描述

1 回答

?
躍然一笑

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

使用map由詞典通過創(chuàng)建sort_values與drop_duplicates訂單有拉鏈np.arange:


data = (forumposts.groupby(['UserId', 'PostDate','FirstPostDate'])

                  .size()

                  .reset_index(name='count'))


users = data.sort_values('FirstPostDate').drop_duplicates('UserId')['UserId']

d = dict(zip(users, np.arange(len(users))))

data['Rank'] = data['UserId'].map(d)

print (data)

   UserId  PostDate  FirstPostDate  count  Rank

0       1    201801           2018      1     1

1       1    201802           2018      1     1

2       1    201803           2018      1     1

3       2    201701           2017      1     0

4       2    201801           2017      1     0

5       3    201901           2019      1     2

6       3    201902           2019      1     2

另一種解決方案:


data['Rank'] = (data.groupby('UserId')['FirstPostDate']

                   .transform('min')

                   .rank(method='dense')

                   .sub(1)

                   .astype(int))


查看完整回答
反對 回復(fù) 2021-08-24
  • 1 回答
  • 0 關(guān)注
  • 213 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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