亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將時間戳舍入到微秒 - 熊貓

將時間戳舍入到微秒 - 熊貓

Qyouu 2023-04-25 16:37:29
我似乎找不到這個,但我確定它在 SO 的某個地方。我希望將時間戳四舍五入到一微秒。其他舍入頻率正在工作,但是當我嘗試將以下舍入到一個小數位時它不起作用。df = pd.DataFrame({    'time' : ['2019-08-02 09:50:10.040','2019-08-02 09:50:10.080','2019-08-02 09:50:10.170','2019-08-02 09:50:10.180'],                          })df['time'] = pd.to_datetime(df['time'])df["time"] = df.time.dt.round("1L")預期輸出:                     time0 2019-08-02 09:50:10.01 2019-08-02 09:50:10.12 2019-08-02 09:50:10.23 2019-08-02 09:50:10.2
查看完整描述

2 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

我認為您可能忽略了組合偏移量別名。

四舍五入100L應該在您的情況下給出正確的答案。100L將使用 100 毫秒(或 0.1 秒)的仲裁進行舍入,這正是您在這種情況下所需要的。您正在使用1L,這已經是數據框中的默認值。

df = pd.DataFrame({

? ? 'time' : ['2019-08-02 09:50:10.040','2019-08-02 09:50:10.080','2019-08-02 09:50:10.170','2019-08-02 09:50:10.180'],? ? ? ? ? ? ? ? ??

? ? ? ? })


df['time'] = pd.to_datetime(df['time'])


df['time'] = df.time.dt.round('100L')

輸出是:


0? ?2019-08-02 09:50:10.000

1? ?2019-08-02 09:50:10.100

2? ?2019-08-02 09:50:10.200

3? ?2019-08-02 09:50:10.200

額外的零不能被截斷,但在計算方面,您將獲得預期的結果。


查看完整回答
反對 回復 2023-04-25
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

一種解決方案是:


df["time"] = df.time.dt.round("100ms")

輸出


                     time

0 2019-08-02 09:50:10.000

1 2019-08-02 09:50:10.100

2 2019-08-02 09:50:10.200

3 2019-08-02 09:50:10.200

以下是所有有效字符串:


    'A': 'A-DEC',

    'AS': 'AS-JAN',

    'BA': 'BA-DEC',

    'BAS': 'BAS-JAN',

    'BY': 'BA-DEC',

    'BYS': 'BAS-JAN',

    'Min': 'T',

    'Q': 'Q-DEC',

    'W': 'W-SUN',

    'Y': 'A-DEC',

    'YS': 'AS-JAN',

    'min': 'T',

    'ms': 'L',

    'ns': 'N',

    'us': 'U',


查看完整回答
反對 回復 2023-04-25
  • 2 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號