2017-03-06 80 views
1

我擁有帶時間戳值的數據幀,並且我想將時間戳四捨五入到最高分鐘。如何將時間戳列四捨五入到大熊貓的最高分鐘

但我沒有得到所需的輸出。 我已經使用了下面的鏈接繼續做同樣的:

[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

A [最小,完整,可驗證](http://stackoverflow.com/help/mcve)例子使我們更容易幫助你。 –

+0

我認爲這是回答[這裏](http://stackoverflow.com/q/42619947/2901002) – jezrael

+0

@StephenRauch但我想基於秒值四捨五入。 – user99

回答

1

你可以寫,將四捨五入到最接近的分鐘數的函數:

代碼:

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 
+0

謝謝。它爲我工作。 – user99