如何在pandas中将时间戳列舍入到上分钟

时间:2017-03-06 07:41:08

标签: python-3.x pandas

我的数据框有时间戳值,我希望将时间戳四舍五入到高分钟。

但我没有得到理想的输出。 我使用以下链接做同样的事情:

 [1]: http://stackoverflow.com/questions/32344533/how-do-i-round-datetime-column-to-nearest-quarter-hour/32344636

我怎么能用熊猫做到这一点?

example:  output:
05:06:34  05:07
05:09:43  05:10

1 个答案:

答案 0 :(得分:0)

您可以编写一个向上舍入到最近的分钟的函数:

<强>代码:

import datetime as dt
def round_up_to_minute(timestamp):
    return timestamp + dt.timedelta(
        seconds=60-timestamp.second,
        microseconds=-timestamp.microsecond)

测试代码:

要将其应用于数据框,您可以执行以下操作:

now = dt.datetime.now()
now_plus = now + dt.timedelta(minutes=1)
df = pd.DataFrame(data=[[now, now], [now_plus, now_plus]],
                  columns=['datetime', 'datetime_rounded'])

df['datetime_rounded'] = df['datetime_rounded'].apply(round_up_to_minute)

print(df)

<强>结果:

                 datetime    datetime_rounded
0 2017-03-06 07:36:54.794 2017-03-06 07:37:00
1 2017-03-06 07:37:54.794 2017-03-06 07:38:00