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

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

如何重新分類熊貓數(shù)據(jù)框列?

如何重新分類熊貓數(shù)據(jù)框列?

皈依舞 2021-06-16 17:54:37
我有一個(gè) Pandas 數(shù)據(jù)框,看起來(lái)像這樣:> print(df)           image_name                       tags0                img1       class1 class2 class31                img2                     class22                img3              class2 class33                img4                     class1如何重新分類tags列,以便為任何具有class3值的行分配字符串“yes”,其他所有字符串都分配字符串“no”?我知道我可以使用以下方法檢查搜索詞的實(shí)例:df['tags'].str.contains('class3')但是,我不確定如何將其集成到手頭的任務(wù)中。以下是預(yù)期的輸出:           image_name                       tags0                img1                        yes1                img2                         no2                img3                        yes3                img4                         no
查看完整描述

3 回答

?
www說(shuō)

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

使用np.where如:


df['tags'] = np.where(df['tags'].str.contains('class3'),'yes','no')

或者


df['tags'] = 'no'

df.loc[df['tags'].str.contains('class3'),'tags'] = 'yes'

或者


df['tags'] = ['yes' if 'class3' in s else 'no' for s in df3.tags.values]

上述方法的輸出:


print(df)

  image_name tags

0       img1  yes

1       img2   no

2       img3  yes

3       img4   no


查看完整回答
反對(duì) 回復(fù) 2021-06-29
?
守著一只汪

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

你也可以這樣做:


df['tags'] = df.tags.str.contains('class3').map({True:'Yes',False:'No'})

>>> df

  image_name tags

0       img1  Yes

1       img2   No

2       img3  Yes

3       img4   No


查看完整回答
反對(duì) 回復(fù) 2021-06-29
?
UYOU

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

也許這會(huì)比 str.contains


v=np.array(['Yes','No'])[np.array(['class3' in x for x in df.tags]).astype(int)]

v

Out[267]: array(['No', 'Yes', 'No', 'Yes'], dtype='<U3')

#df['tags']=v

下面的時(shí)間列表


#df=pd.concat([df]*1000)

#sacul

%timeit df.tags.str.contains('class3').map({True:'Yes',False:'No'})

The slowest run took 10.12 times longer than the fastest. This could mean that an intermediate result is being cached.

100 loops, best of 3: 3.11 ms per loop

#Mine

%timeit np.array(['Yes','No'])[np.array(['class3' in x for x in df.tags]).astype(int)]

1000 loops, best of 3: 390 μs per loop

#Borealis

%timeit np.where(df['tags'].str.contains('class3'),'yes','no')

100 loops, best of 3: 2.46 ms per loop


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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