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

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

查看 groupby 之后每個(gè) ID 是否存在元素

查看 groupby 之后每個(gè) ID 是否存在元素

郎朗坤 2023-01-04 10:28:02
這是我的數(shù)據(jù)框:       ID  Color 0       1   red    1       1   blue2       1   yellow3       2   blue4       2   purple5       3   yellow6       3   green我想創(chuàng)建第三列,告訴我每個(gè) ID 是紅色還是黃色。如果有紅色則第三列將為 1,如果有紫色則第三列將為 0,如果兩者都沒有則留空。不會有紅色和紫色在同一個(gè) ID 中的情況。所以,我的結(jié)果 df 應(yīng)該是這樣的:       ID  Color    col30       1   red     11       1   blue    12       1   yellow  13       2   blue    04       2   purple  05       3   yellow  6       3   green我正在考慮對我的 ID 列進(jìn)行分組,然后檢查顏色列中是否存在紅色或紫色。我不確定如何實(shí)施。請幫忙
查看完整描述

2 回答

?
MMMHUHU

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

這是使用的一種方法np.select

conds = [df.Color.eq('red'), df.Color.eq('purple')]

df['col3'] = np.select(conds, [1,0], '')

df['col3'] = df.groupby('ID').col3.transform('max')

或者我們可以改為將 a 設(shè)置nan為默認(rèn)值,并使用 進(jìn)行轉(zhuǎn)換first:


df['col3'] = np.select(conds, [1,0], np.nan)

df['col3'] = df.groupby('ID').col3.transform('first').fillna('')

print(df)


   ID   Color col3

0   1     red    1

1   1    blue    1

2   1  yellow    1

3   2    blue    0

4   2  purple    0

5   3  yellow     

6   3   green     

請注意,前一種方法利用了以下優(yōu)勢:


max('', '0')

# '0'

max('', '1')

# '1'


查看完整回答
反對 回復(fù) 2023-01-04
?
慕姐4208626

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

numpy如果您出于任何原因不想使用,這里有一個(gè)替代方案:


df['col3'] = df.set_index('ID')['Color'].apply({'red': 1, 'purple': 0}.get).groupby(level=0).transform('max').fillna('').reset_index(drop=True)


   ID   Color col3

0   1     red    1

1   1    blue    1

2   1  yellow    1

3   2    blue    0

4   2  purple    0

5   3  yellow     

6   3   green     


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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