Обработка столбцов даты и времени и создание нового столбца в фрейме данных в Python - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть фрейм данных, содержащий столбец даты и столбец суммы. Столбец даты состоит из информации о часах и дате. Для каждого дня есть 24 записи для каждого часа дня. Мне нужно создать новый столбец, который показывает сумму, которая относится к 24 часам до даты и времени для этой строки.

Например, для «2019-11-06 18:00:00», новыйВ столбце должна отображаться информация о сумме для «2019-11-05 18:00:00». Проблема в том, что мы должны делать с первой записью, поскольку у нее нет предыдущих дат. Я думаю, что могу удалить первую запись при создании нового столбца, но сейчас я получаю KeyError, так как первая запись не имеет предыдущей даты. Как обойти KeyError?

Как выглядит фрейм данных: скриншот фрейма данных

[in]:


hours24_c = df["Date"]-timedelta(hours=24)
df["hours24"] = df["amount"].loc[hours24_c]

[out]:


KeyError: "None of [DatetimeIndex(['2015-12-30 00:00:00', '2015-12-30 01:00:00',\n               '2015-12-30 02:00:00', '2015-12-30 03:00:00',\n               '2015-12-30 04:00:00', '2015-12-30 05:00:00',\n               '2015-12-30 06:00:00', '2015-12-30 07:00:00',\n               '2015-12-30 08:00:00', '2015-12-30 09:00:00',\n               ...\n               '2019-11-05 14:00:00', '2019-11-05 15:00:00',\n               '2019-11-05 16:00:00', '2019-11-05 17:00:00',\n               '2019-11-05 18:00:00', '2019-11-05 19:00:00',\n               '2019-11-05 20:00:00', '2019-11-05 21:00:00',\n               '2019-11-05 22:00:00', '2019-11-05 23:00:00'],\n              dtype='datetime64[ns]', length=33744, freq=None)] are in the [index]"

1 Ответ

1 голос
/ 09 ноября 2019

Сортировать по дате, а затем использовать сдвиг:

df.sort_values(by = "Date", inplace = True)
df["hours24"] = df["amount"].shift(24)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...