#python #pandas
#python #панды
Вопрос:
Это мой фрейм данных:
utc_timestamp data
2015-10-13 11:00:00 00:00 1
2015-10-13 12:00:00 00:00 5
2015-10-13 13:00:00 00:00 6
2015-10-13 14:00:00 00:00 10
2015-10-13 15:00:00 00:00 11
Значения data
являются кумулятивными.
Как я могу получить этот результат:
utc_timestamp data
2015-10-13 11:00:00 00:00 1
2015-10-13 12:00:00 00:00 4
2015-10-13 13:00:00 00:00 1
2015-10-13 14:00:00 00:00 4
2015-10-13 15:00:00 00:00 1
Я знаю, что это возможно использовать df["data"].diff()
, но как я могу получить полный финал df
с utc_timestamp
помощью?
Ответ №1:
Я думаю, вам нужно fillna
:
df['data'] = df['data'].diff(1).fillna(df['data'])
Или используйте shift
fill_value
опцию with, чтобы вы не опускали свои данные до float:
df['data'] -= df['data'].shift(fill_value=0)
Вывод:
utc_timestamp data
0 2015-10-13 11:00:00 00:00 1
1 2015-10-13 12:00:00 00:00 4
2 2015-10-13 13:00:00 00:00 1
3 2015-10-13 14:00:00 00:00 4
4 2015-10-13 15:00:00 00:00 1
Ответ №2:
Попробуйте назначить его обратно
df['data'] = df['data'].diff()