Я новичок в Python, поэтому все еще учусь. Простите меня, если этот вопрос неосведомлен, но у меня возникли проблемы с применением функции к столбцу во фрейме данных, в котором уже есть данные. По сути, я пытаюсь создать функцию, которая считывает каждую строку в столбце x df и в зависимости от того, равна ли она 0, а строка над ней равна 1 или -1, выполнит расчет и применит его к столбцу a. В противном случае, если он не соответствует ни одному из этих условий, я просто хочу, чтобы он оставил столбец равным, а не изменял число, которое было там ранее. x, y, z, a — это столбцы в кадре данных.
Код: Выделить всё
def goFlat(x, y, z, a):
if (x == 0) & (x.shift(1) == 1):
return y*z*-1
elif (x == 0) & (x.shift(1) == -1):
return y*z*1
else:
a
df1['a'] = goFlat(df1['x'], df1['y'], df1['z'], df1['a'])
Опять же, я уверен, что есть лучший способ решить эту проблему, поэтому, если у кого-то есть какие-либо предложения, мы будем очень признательны. ТИА
Подробнее здесь:
https://stackoverflow.com/questions/783 ... ith-values