У меня есть панда данных, и я хочу установить значение в одном столбце на основе значения в другом столбце. Существует 6 возможных сценариев, поэтому один if / else не будет работать. Я не могу заставить комбинацию If / else работать со сценариями, где SBT равен> = x и <= y. Ниже приводится итерационный макрос в моем коде Excel VBA, который я пытаюсь воссоздать в Python. Он двигается вниз по каждому ряду, делая проверкуЯ знаю, что это может быть намного эффективнее в Python. </p>
If SBT > 3.6 Then
ActiveCell.Offset(0, -1) = "2"
ElseIf SBT >= 2.95 And SBT <= 3.6 Then
ActiveCell.Offset(0, -1) = "3"
ElseIf SBT >= 2.6 And SBT <= 2.95 Then
ActiveCell.Offset(0, -1) = "4"
ElseIf SBT >= 2.05 And SBT <= 2.6 Then
ActiveCell.Offset(0, -1) = "5"
ElseIf SBT >= 1.31 And SBT <= 2.05 Then
ActiveCell.Offset(0, -1) = "6"
ElseIf SBT < 1.31 Then
ActiveCell.Offset(0, -1) = "7"
Else
End If
Я смотрел на
np.where(a < 4, -1, 100)
и
df['desired_output'] = df['data'].apply(lambda x: 'true' if x <= 2.5 else 'false')
Являются ли какие-либо из этих жизнеспособных вариантов? Как мне разместить вложенные операторы (особенно части «между этими значениями», или есть ли другой более эффективный способ сделать это? Фрагмент приведенных ниже данных (SBT) и ожидаемый результат (SBTno).
SBT SBTn
7.00 2
1.28 7
3.64 2
2.97 3
2.83 4