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

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

如何在熊貓中使用多個(gè)布爾列映射函數(shù)?

如何在熊貓中使用多個(gè)布爾列映射函數(shù)?

吃雞游戲 2022-07-05 19:32:06
我有一個(gè)紐約公寓數(shù)據(jù)庫(kù),其中有數(shù)千套出租公寓。我想要做的是基于“pet_level”創(chuàng)建另一個(gè)列。它們是另外兩列“dog_allowed”和“cat_allowed”,如果允許寵物,則它們的值為 0 或 1我希望在此創(chuàng)建“pet_level”列:0 如果不允許寵物 1 如果貓?jiān)试S 2 如果狗允許 3 如果兩者都允許我最初解決這個(gè)問題的方法如下:df['pet_level'] = df.apply(lambda x: plev(0 = x[x['dog_allowed'] == 0 & x['cat_allowed'] == 0] ,1 = x[x['cat_allowed'] == 1], 2 = x[x['dog_allowed'] == 1], 3 = x[x['dog_allowed'] == 1 & x['cat_allowed'] == 1]))僅僅因?yàn)槲乙灶愃频姆绞酵瓿闪溯^小的測(cè)試數(shù)據(jù)集我使用 apply 方法嘗試了一個(gè) lambda 函數(shù),但這似乎不允許這樣做。
查看完整描述

2 回答

?
幕布斯6054654

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

您可以像這樣對(duì)操作進(jìn)行矢量化,而不是映射:

df['pet_level'] = df['dog_allowed'] * 1 + df['cat_allowed'] * 2


查看完整回答
反對(duì) 回復(fù) 2022-07-05
?
MYYA

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

當(dāng)前有效的方法是使用所需的條件語(yǔ)句定義一個(gè)函數(shù)。


def plvl(db):

    if db['cats_allowed'] == 0 and db['dogs_allowed'] == 0:

        val = 0

    elif db['cats_allowed'] == 1 and db['dogs_allowed'] == 0:

        val = 1

    elif db['cats_allowed'] == 0 and db['dogs_allowed'] == 1:

        val = 2

    elif db['cats_allowed'] == 1 and db['dogs_allowed'] == 1:

        val = 3

    return val

然后通過沿 columns( axis=1) 應(yīng)用函數(shù)來(lái)傳遞該函數(shù)以創(chuàng)建所需的列。


df['pet_level'] = df.apply(plvl, axis=1)

我不確定這是否是性能效率最高的,但出于測(cè)試目的,它目前可以工作。我敢肯定,還有更多的 Pythonic 方法,它們的要求不高,而且對(duì)了解同樣有幫助。


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

添加回答

舉報(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)