Pandas: оператор if с ошибкой: «одиночный позиционный индексатор выходит за рамки», тогда else

#python #pandas

#python #pandas

Вопрос:

Что я хотел бы сделать, так это следующее:

if df.loc[df['proba'] <= proba_plus].iloc[0] не является single positional indexer is out-of-bounds

затем: gamma_plus = df.loc[df['proba'] <= proba_plus].iloc[0]

else gamma_plus =df['gamma'].max()

Есть идеи о том, как это сделать? Спасибо!

Ответ №1:

Вы можете использовать if-else оператор с Series.empty :

 a = df.loc[df['proba'] <= proba_plus, 'gamma']
gamma_plus = df['gamma'].max() if a.empty else a.iat[0]
  

Или используйте next с iter — возможно установить значение по умолчанию, если оно пустое Series :

 a = df.loc[df['proba'] <= proba_plus, 'gamma']
gamma_plus = next(iter(a, df['gamma'].max()))