在两个时间戳中的特定时间从时间索引的熊猫数据帧获取值

时间:2019-05-29 08:23:59

标签: python pandas datetime

我有以下熊猫数据框df:

                     C1  C2   C3
Date                             
2000-01-01 00:00:00   2  175  160
2000-01-01 01:00:00   4  192  164
2000-01-01 02:00:00   6  210  189
2000-01-01 03:00:00   8  217  199
2000-01-01 04:00:00  10  176  158

我需要从中获取特定日期时间的C1,C2和C3值:

import datetime
my_specific_time = str(datetime.datetime(2000, 1, 1, 1, 0, 0))
print(df['C1'].loc[mytime]) # prints 4

问题是我只能获取df中存储的日期的值。例如,无法获得时间C1的{​​{1}}的值,除非我重新采样数据帧:

2000-01-01 01:30:00

请注意,upsampled = df.resample('30min').ffill() my_specific_time = str(datetime.datetime(2000, 1, 1, 1, 30, 0)) print(upsampled['C1'].loc[mytime]) # again prints 4 C1的时间跨度之间2000-01-01 01:00:00的所有值都是2000-01-01 02:00:00。现在的问题是4可以是任意随机时间,我将需要使用足够小的值对df进行重新采样才能获得该值。我认为这不是解决此问题的最佳方法。

在寻找可能的解决方案时,我只遇到了time spans大熊猫,但我不太了解如何在问题中使用它。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用DataFrame.asof方法:

print(df['C1'].asof(my_specific_time))

4