Использование функции с помощью apply Python

#python #pandas

#python #pandas

Вопрос:

У меня есть столбец в моем фрейме данных, который я хочу проанализировать и вернуть определенное значение в новый столбец под названием «Торговля». Данные в анализируемом столбце выглядят следующим образом:

  QTY 
 (1.00)
1,418,999.89 
 328,536.93 
-100
  

Если значение в столбце количество больше 0, я хочу вернуть «Buy_Code», если нет, верните «Sell_Code»

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

 def trade_type():
for index,row in df_loan_tape.iterrows():
    if row['QTY'] > 0:
        df_loan_tape['Trade'] = 'Buy_Code'
    else:
        df_loan_tape['Trade'] = 'Sell_Code'

df_loan_tape['Trade'] = df_loan_tape['QTY'].apply(trade_type)
  

Комментарии:

1. df_loan_tape['Trade'] = np.where(df_loan_tape['QTY'] > 0, 'Buy_Code', 'Sell_Code') . Не повторяйте строки для простого двоичного выбора, это векторизовано и намного быстрее

2. apply работает по строкам в цикле Python (следовательно, медленнее), но без явного for синтаксиса цикла. Здесь вы apply создаете функцию, которая сама затем выполняет итерации по строкам. Это двойная итерация массива.

3. Спасибо, это сработало хорошо