Я пытаюсь написать функцию python, которая позволит мне добавлять функции в pandas df для машинного обучения.Я думаю, что я неправильно понимаю, как можно использовать строки в функциях Python.
Функция просматривает строку из df, проверяет, будет ли идентификатор строки как много месяцев в будущем (количество строк ниже) имеет такой же идентификатор.Если это так, то добавляется значение функции «начало» будущей строки в столбец новой функции, иначе «конец» начальной строки.Это настраиваемая функция смены.
Как только я добавлю эту функцию, я бы хотел добавить еще один столбец с 1 или 0 как новую функцию к df с меткой столбца approriate.Это будет помечено что-то вроде 'feat_so_many_months_in_future_is_higher_or_lower'.
Проблема в том, что я не могу даже добраться до второго двоичного файла вокруг пороговой части.У меня проблема с добавлением первой новой функции с соответствующим именем.
def binary_up_down(name_of_new_feature, months_in_future, percent_threshold):
name_of_new_feature = []
for i in range(0, df.shape[0], 1):
try:
if df['identifier'][i]==df['identifier'][i + months_in_future]:
name_of_new_feature.append(df['start'][i + months_in_future])
else:
name_of_new_feature.append(df['end'][i])
except KeyError:
name_of_new_feature.append(df['end'][i])
df[str(name_of_new_feature)]=name_of_new_feature
### Add test to check if shifted value is above or below threshold and name new feature
appropriately ###
return df
Моя мысль состоит в том, чтобы вызвать функцию следующим образом:
binary_up_down('feat_value_in_1m', 1, 5)
#Then
binary_up_down('feat_value_in_3m', 3, 5) # and on an on...
Когда я запускаю код, эта строка кажется проблемой:
df[str(name_of_new_feature)] = name_of_new_feature
... потому что он добавляет все новые значения столбцов объектов в качестве имени столбца!
Любые указатели очень ценятся!