日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

oracle 截取时间至小时,如何在pandas中构造/取整到小时的本地化日期时间列

發(fā)布時(shí)間:2024/1/23 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 截取时间至小时,如何在pandas中构造/取整到小时的本地化日期时间列 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我想把pandas python中本地化的datetime列截短/四舍五入到一小時(shí)。例如,如果我有2017-10-15 15:03:25+02:00,我希望獲得2017-10-15 15 15:00:00+02:00。注意,我想保留時(shí)區(qū)信息。

我試過的第一件事是:DF['dtColumn'].dt.floor('H')

這種方法可以將時(shí)區(qū)信息截短到小時(shí)并保留時(shí)區(qū)信息,但問題是在夏時(shí)制到來時(shí)出現(xiàn)的,例如在2017年10月29日。給出以下代碼:

^{pr2}$

它會(huì)產(chǎn)生給定的錯(cuò)誤:

^{3}$

這個(gè)錯(cuò)誤建議使用“歧義”參數(shù),在出現(xiàn)歧義的情況下,有一個(gè)預(yù)定義的決定要做。但在我的數(shù)據(jù)幀中,我不會(huì)說有這樣一個(gè)模糊性,因?yàn)槲矣袝r(shí)區(qū)信息,我仍然想要它在四舍五入后。我寧愿避免模棱兩可。在

我也找到了解決辦法:df.loc[:, 1].values.astype('

除復(fù)雜時(shí)區(qū)外,此方法通常有效。例如,尼泊爾的時(shí)區(qū)(亞洲/加德滿都)是GMT+5:45。同樣,我想做的是將本地時(shí)區(qū)中的datetimes截短到小時(shí),在嘗試了上面的代碼之后,我觀察到它將轉(zhuǎn)換為utc,然后進(jìn)行截?cái)?#xff0c;因此當(dāng)它返回到本地化的datetime時(shí),我沒有將其分組到精確的小時(shí)數(shù)中,而是將其分組到每個(gè)小時(shí):45。在

對(duì)于代碼:dt1 = datetime.datetime(2017, 10, 29, 0, 1)

dt2 = datetime.datetime(2017, 10, 29, 1, 1)

df = pd.DataFrame([('whatever', dt1), ('whatever', dt2)])

df[1] = df[1].dt.tz_localize('Asia/Katmandu')

df[2] = df.loc[:, 1].values.astype('

df[2].dt.tz_localize('UTC').dt.tz_convert('Asia/Katmandu')

我們得到以下結(jié)果:0 2017-10-28 23:45:00+05:45

1 2017-10-29 00:45:00+05:45

Name: 2, dtype: datetime64[ns, Asia/Katmandu]

這證明了我問題的答案不是將日期時(shí)間轉(zhuǎn)換為“utc”或時(shí)間戳,而是構(gòu)造它們并將它們轉(zhuǎn)換回本地化的。在

python的本地庫有一個(gè)replace方法,可以替換0的分鐘和秒信息,但我在pandas中沒有找到類似的datetime列。我想找到一個(gè)不同的解決方案來逐行迭代,因?yàn)槲业臄?shù)據(jù)幀相當(dāng)大。

對(duì)于如何根據(jù)這個(gè)限制將pandas中的datetime列截短到小時(shí)有什么想法嗎?在

總結(jié)

以上是生活随笔為你收集整理的oracle 截取时间至小时,如何在pandas中构造/取整到小时的本地化日期时间列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。