【发布时间】:2019-11-09 18:20:32
【问题描述】:
我有一个包含日期列和金额列的数据框。日期列由小时和日期信息组成。每天每个小时都有 24 个条目。我需要创建一个新列来显示该行的日期和时间之前 24 小时的金额。
例如对于“2019-11-06 18:00:00”,新列应显示“2019-11-05 18:00:00”的金额信息。问题是我们应该如何处理第一个条目,因为它没有之前的日期。我想我可以在创建新列时删除第一个条目,但现在我得到 KeyError,因为第一个条目没有之前的日期。如何绕过 KeyError?
数据框是什么样子的:screenshot of dataframe
[输入]:
hours24_c = df["Date"]-timedelta(hours=24)
df["hours24"] = df["amount"].loc[hours24_c]
[出]:
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]"
【问题讨论】: