python允许根据年龄选择值

python允许根据年龄选择值,python,pandas,Python,Pandas,我正试图弄清楚如何在熊猫身上做到这一点,但到目前为止,我没有运气 我的数据框如下所示: A B C D time 2013-07-19 14:54:03 1354.85 92.20 1453.44 7746.56 2013-07-19 14:56:02 1348.30 44.60 1399.83 7800.17

我正试图弄清楚如何在熊猫身上做到这一点,但到目前为止,我没有运气

我的数据框如下所示:

                        A           B        C          D
time                
2013-07-19 14:54:03     1354.85     92.20   1453.44     7746.56
2013-07-19 14:56:02     1348.30     44.60   1399.83     7800.17
2013-07-19 14:58:02     1285.76     33.93   1325.31     7874.69
...
2013-12-16 14:24:02     1114.74     136.59  1254.04     7945.96
2013-12-16 14:26:03     1180.76     65.39   1248.59     7951.41
2013-12-16 14:28:03     1015.98     126.96  1147.68     8052.32
这些数据更新非常频繁,我希望能够选择过去24小时、上周或上月的所有值,等等

我当前的解决方法是使用如下查询从数据库中提取数据:

24_hour_data = ('select time, A, B, C, D from \
     agg where time >= datetime(\'now\', \'-24 Hours\', \'localtime\')')

谢谢

假设您不必处理时区:

import datetime

now = datetime.datetime.now()
yesterday = now + datetime.timedelta(days=-1)
fmt = '%Y-%m-%d'  #     fmt = '%Y-%m-%d %T' if you want more precision.

df.ix[yesterday.strftime(fmt):now.strftime(fmt)]
以你的例子:

In [17]: now = pd.datetime(2013, 7, 20)  # since thats when the data is from

In [18]: yesterday = now + datetime.timedelta(days=-1)

In [19]: df.ix[yesterday.strftime(fmt):now.strftime(fmt)]
Out[19]: 
                         B        C        D
time                                        
2013-07-19 14:54:03  92.20  1453.44  7746.56
2013-07-19 14:56:02  44.60  1399.83  7800.17
2013-07-19 14:58:02  33.93  1325.31  7874.69

[3 rows x 3 columns]

还可以查看库以替换
datetime
部分。这类东西太棒了。

谢谢。我尝试了该代码,但收到一条KeyError:“2012-12-16”消息。我应该使用一个系列吗?它应该在数据帧上工作。确保您的索引是一个。当您在片段中带有
的DatetimeIndex上使用
.ix
时,不应该得到
键错误。最坏情况下,它将返回一个空数据帧。