收集Pandas的时间戳

2024-06-02 07:42:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我随身带着熊猫的时间戳。它应该是15分钟分开,但由于一些测量误差,可能会在几分钟内出错。在

我想把时间戳四舍五入到下一个最接近的15分钟。在

我知道我可以使用来自pandas的Timestamp.round()来取整时间戳。但问题是,它的数量接近15个造币厂。我总是想凑到下一刻钟。在

例如

如果我有下面给出的时间戳

ts = pd.Timestamp('2017-12-31 23:50:00+0530')

rounded = ts.round(freq='15T')

我得到的结果是Timestamp('2017-12-31 23:45:00+0530', tz='pytz.FixedOffset(330)')。在

我不想发生这种事,我希望结果是下一个15分钟的时间戳

^{pr2}$

同时,我会有表格的时间戳

^{pr2}$

如果我使用Timestamp.ceil作为我的用途,我将得到这样的输出

Timestamp('2018-01-01 00:15:00+0530', tz='pytz.FixedOffset(330)')

我不想这样。在

输出必须是

 Timestamp('2018-01-01 00:00:00+0530', tz='pytz.FixedOffset(330)')

简言之,如果时间戳是正确的,就不必进行任何清洗,如果时间戳不在15分钟,则必须将其封顶。在

我怎么能轻松地和熊猫一起玩呢。?在


Tags: pandas数量时间timestamptzpdtsround
3条回答

@jazrael发布的解决方案非常棒,而且对基本情况有效。这也很好,我可以延长每小时我想通过提供一个15分钟的时间戳每小时的列表。它需要列出一个96元素并在下面显示的代码中检查它。在

from datetime import time

ts = pd.Timestamp('2018-01-01 00:00:00+0530')

print (ts.ceil(freq='15T') if ts.strftime('%H:%M:%S') != [list of 15 mints timestamps]
                           else ts)

我生成了一个所需时间的列表,并像这样处理检查。在

^{pr2}$

我认为需要if-else

ts = pd.Timestamp('2018-01-01 00:00:00+0530')

print (ts.ceil(freq='15T') if ts.strftime('%H:%M:%S') != '00:00:00' 
                           else ts)
2018-01-01 00:00:00+05:30

from datetime import time

print (ts.ceil(freq='15T') if ts.time() != time(0,0,0)  else ts)
2018-01-01 00:00:00+05:30

您想要ceil,而不是round

ts.ceil(freq='15T')

^{pr2}$

相关问题 更多 >