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

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

Pandas 數(shù)據(jù)框中帶有 group_by 的 If-else 語句

Pandas 數(shù)據(jù)框中帶有 group_by 的 If-else 語句

瀟湘沐 2023-06-20 14:05:02
我有一個 pdf df 包含四列:ID, t,x1和x2。import pandas as pddat = {'ID': [1,1,1,1,2,2,2,3,3,3,3,4,4,4,5,5,6,6,6],        't': [0,1,2,3,0,1,2,0,1,2,3,0,1,2,0,1,0,1,2],        'x1' : [3.5,3.5,3.5,3.5,2.01,2.01,2.01,3.9,3.9,3.9,3.9,2.2,2.2,2.2,1.8,1.8,2.1,2.1,2.1],       'x2': [4,4,4,4,3,3,3,4,4,4,4,3,3,3,2,2,3,3,3]        }df = pd.DataFrame(dat, columns = ['ID', 't', 'x1','x2'])print (df)我需要創(chuàng)建一個新列y和group_by ID這樣if t!=max(t) then y=1,if t==max(t) then y = x1-x2+1.輸出看起來像:請注意,我有數(shù)百萬條記錄,所以解決方案越快越好。
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻1812條經(jīng)驗 獲得超5個贊

我們可以transform max結(jié)合np.where


df['y'] = np.where(df.t != df.groupby('ID').t.transform('max'), 1, df.x1-df.x2+1)

df

Out[221]: 

    ID  t    x1  x2     y

0    1  0  3.50   4  1.00

1    1  1  3.50   4  1.00

2    1  2  3.50   4  1.00

3    1  3  3.50   4  0.50

4    2  0  2.01   3  1.00

5    2  1  2.01   3  1.00

6    2  2  2.01   3  0.01

7    3  0  3.90   4  1.00

8    3  1  3.90   4  1.00

9    3  2  3.90   4  1.00

10   3  3  3.90   4  0.90

11   4  0  2.20   3  1.00

12   4  1  2.20   3  1.00

13   4  2  2.20   3  0.20

14   5  0  1.80   2  1.00

15   5  1  1.80   2  0.80

16   6  0  2.10   3  1.00

17   6  1  2.10   3  1.00

18   6  2  2.10   3  0.10


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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