我想弄清楚如何在熊猫中做到这一点,到目前为止没有运气.
我的数据框如下所示:
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]
另请查看arrow库以替换datetime部分.对于这些事情来说真是太棒了.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。