基本上我的代碼從配置文件中導(dǎo)入一些配置,用戶可以在其中打開/關(guān)閉部分代碼。配置文件看起來像,它是一個(gè) json 文件:條件1:['str1',1] 條件2:['str2',1]字符串是將分配給 df 列的名稱,整數(shù)可以是 1 或 0 以打開或關(guān)閉部分代碼。在代碼的開頭,如果整數(shù)設(shè)置為 1,則字符串用于在數(shù)據(jù)框中創(chuàng)建列。for (k, v) in config_file.items(): if v[1] == 1: df[v[0]] = np.nan所以現(xiàn)在我只有在條件 1 的整數(shù)為 1 時(shí)才會(huì)有一個(gè)名為“str1”的列。在代碼中的某個(gè)點(diǎn),我需要首先驗(yàn)證兩個(gè)條件的整數(shù)都設(shè)置為 1,然后我需要選擇所有包含值 1 的行。if condition1[1] == 1 or condition2[1] == 1: if (len(df[df['str1'] == 1]) > 0 or len(df[df['str2'] == 1]) > 0):現(xiàn)在的問題是,如果兩個(gè)條件之一設(shè)置為 0,比如說條件 1,那么列 df['str2'] 將不會(huì)被創(chuàng)建并且 len(df[df['str2'] == 1]) > 0 將引發(fā)錯(cuò)誤。有沒有辦法告訴python僅在列/變量存在時(shí)才評(píng)估部分條件?非常感謝您的支持。
1 回答

青春有我
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
您應(yīng)該將檢查嵌套在另一個(gè)檢查中,以驗(yàn)證數(shù)據(jù)框是否有一個(gè)名為“str2”的列并處理出現(xiàn)的不同可能性。
您要添加到代碼中的檢查是:
if 'str2' in df.columns:
# check df['str2']
# nested if ...
elif 'str3' in df.columns:
#keep going checking conditions or whatever
else:
#last case in your checking loop
添加回答
舉報(bào)
0/150
提交
取消