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

青春有我
TA貢獻1784條經驗 獲得超8個贊
您應該將檢查嵌套在另一個檢查中,以驗證數據框是否有一個名為“str2”的列并處理出現的不同可能性。
您要添加到代碼中的檢查是:
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
添加回答
舉報
0/150
提交
取消