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

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

嵌套的 If-else pandas 數(shù)據(jù)框

嵌套的 If-else pandas 數(shù)據(jù)框

湖上湖 2023-10-11 16:16:14
我有一個輸入數(shù)據(jù)框df,我想在其中轉(zhuǎn)換列A...A   B    asd0   dsf1   ewr2   dfds3   sdf...進(jìn)入我的預(yù)期輸出df1:        Aa  Ab  Ac              Bb                                asd        0   0   0               dsf        1   0   0               ewr        1   1   0               dfds        1   1   1               sdf代碼:if df['A'] == '' :    df1['Aa'] = ''elif df['A'] == 1 :    df1['Aa'] == 1elif df['A'] == 0 :    df1['Aa'] == 0else:    df1['Aa'] == 1錯誤:if df['A'] == '' :                                                                                                                                                         File "C:\Python\Python38\lib\site-packages\pandas\core\generic.py", line 1478, in __nonzero__                                                                                                  raise ValueError(                                                                                                                                                                        ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().excel中類似的公式 B2 =IF(A2=1,1,IF(A2="","",IF(A2=0,0,1)))相似地; C2 = IF(A2=2,1,IF(A2="","",IF(A2=0,0,1)))嘗試用 python 實(shí)現(xiàn)類似的東西。請幫忙?。∵壿嫞篿f value in df['A'] == ''; new column 'Aa,Ab,Ac' in df1 == ''if value in df['A'] == 1; new column 'Aa' in df1 == 1, and rest (Ab,Ac) == 0if value in df['A'] == 2; new column 'Aa, Ab' in df1== 1, and rest (Ac) == 0if value in df['A'] == 3; new column 'Aa,Ab,Ac' in df1 == 1因此,流程可能類似于:df1:A   Aa  Ab  Ac              Bb                            asd0   0   0   0               dsf1   1   0   0               ewr2   1   1   0               dfds3   1   1   1               sdf稍后只需刪除列即可A。所以Final df1        Aa  Ab  Ac              Bb                                asd        0   0   0               dsf        1   0   0               ewr        1   1   0               dfds        1   1   1               sdf
查看完整描述

2 回答

?
守著一只汪

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

找到了一種方法來做到這一點(diǎn),只需將其放入函數(shù)中,您也可以將其用于其他嵌套循環(huán)


   conditions = [

        (df['A'] == 0),

        (df['A'] == 1),

        (df['A'] > 1)]

    choices = [0, 1, 1]

    df1['Aa'] = np.select(conditions, choices, default='null')


查看完整回答
反對 回復(fù) 2023-10-11
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個贊

IIUC,嘗試:


import pandas as pd    

df = pd.DataFrame({'a':["",0,1,2,3]})

df['new_a'] = pd.to_numeric(df['a'], errors='coerce')

df['Aa'] = df['new_a'].apply(lambda x: np.nan if math.isnan(x) else (0 if x==0 else (OTHER CONDITION)))

您可以使用類似的邏輯來創(chuàng)建“Ab”、“Ac”和“Bb”


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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