Несколько вложенных, если условия - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть фрейм данных (DF) с размером (2000 строк x 10 столбцов).

Структура кода множественная, если условия:

DF['NewColumn']=''

for i in range (0, len(DF))
  if condition
    define variable etc
    if condition
      DF['NewColumn'].values[i]= some value
    else:
      DF['NewColumn'].values[i]= some value  

и т. Д.

По сути, я зацикливаюсь на каждой строке кадра данных, проверяю условия и заполняю каждую строку нового столбца в соответствии с набором условий if.

Извинения, если мой вопрос недостаточно конкретен, но яищу способ более эффективно кодировать эту проблему.Я хотел бы услышать ваши мысли.

Могу ли я использовать класс или векторизацию?Я не уверен, как реструктурировать мою проблему

Большое спасибо

1 Ответ

0 голосов
/ 13 сентября 2018

Вы можете векторизовать свой цикл следующим образом

temp = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
condition1 = (temp["A"] > 20) & (temp["B"] < 20)
temp["NewColumn"] = condition1.astype(int)
condition2 = (temp["C"] > 20) & (temp["A"] < 50)
temp["NewColumn2"] = np.where(condition2, "between", "out")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...