【发布时间】:2019-02-17 00:33:19
【问题描述】:
我有一个按日期(年份和时间到秒)索引的数据框,我想获取与我计算的特定时间段相对应的行。但是,在使用 datetime 类型或 str 类型进行索引时,我无法摆脱 keyerror。代码如下:
def get_series(self, id_dataset, time=None):
if time == None:
time = dt.datetime.now()
time = time.replace(second=0, microsecond=0)
dataframe_global = pandas.read_csv('../rsc/datasets/' + str(id_dataset).replace(":", "_") + '.csv',
delimiter=',')
dataframe_global['timestamp_index'] = pandas.to_datetime(dataframe_global['timestamp'])
dataframe_global = dataframe_global.set_index('timestamp_index')
# dataframe_global = pandas.read_csv('../rsc/datasets/historic4.csv', delimiter=',')
previous_measures = []
for diff in self.difference_times:
time1 = last_time - dt.timedelta(minutes=(diff - 30))
time2 = last_time - dt.timedelta(minutes=(diff + 30))
ind = str(time2.isoformat(sep=' '))
ind2 = str(time1.isoformat(sep=' '))
prev = dataframe_global[ind:ind2]
Keyerror 出现在最后一行代码中。
价值观:
last_time = datetime(2018-07-04 16:55:59.02000)
时间 = 日期时间(2018-07-04 17:09:59.02000)
time2 = datetime(2018-07-04 16:39:59.02000)
ind = '2018-07-04 16:39:59.02000'
in2 = '2018-07-04 17:09:59.02000'
有什么提示吗?
谢谢!
【问题讨论】:
-
你可以尝试使用.iloc函数
-
我刚刚尝试过,我有同样的错误:(
标签: python pandas datetime indexing