Допустим, у меня есть такой массив:
a = np.array([[1, 2, 3, 4, 5, 6, 7], [20, 25, 30, 35, 40, 45, 50], [2, 4, 6, 8, 10, 12, 14]])
и кадр данных, такой как этот:
num letter
0 1 a
1 2 b
2 3 c
Затем я хотел бы рассчитать разницу между первым и последним числом в каждой последовательности в массиве и в конечном итоге добавить эту разницу в новый столбец в df.
В настоящее время я могу рассчитать желаемую разницу в каждой последовательности следующим образом:
for i in a:
print(i[-1] - i[0])
Дает мне следующие результаты:
6
30
12
Я ожидаю, что смогу сделать это, заменив print
на df['new_col']
, например, так:
df['new_col'] = (i[-1] - i[0])
И чтобы мой df выглядел так:
num letter new_col
0 1 a 6
1 2 b 30
2 3 c 12
Тем не менее, я получаю это:
num letter new_col
0 1 a 12
1 2 b 12
2 3 c 12
Я также был бы очень признателен, если бы кто-нибудь мог сказать мне, что эквивалентно .diff()
и .shift()
, но я попытался сделать то же самое, что и с пандами данных pandas, но только что получили сообщения об ошибках. Это было бы полезно для меня, если я хочу вычислить разницу не только между первым и последним числами, но где-то между ними.
Любая помощь будет очень признательна, ура.