簡體   English   中英

將 h:mm:ss 更改為 hh:mm:ss

[英]Change h:mm:ss to hh:mm:ss

我正在與 python 合作,我有一個 df:

time
00:01:24
00:22:44
00:12:32
00:02:56

我想把它改成

time
01:24:00
22:44:00
12:32:00
02:56:00

我首先使用以下方法從列中刪除了 00::

df['time'] = df['time'].str.strip('00:)

然后嘗試

df['time'] =pd.to_datetime(df['time'], format="%H:%M").dt.time

但給出錯誤為

ValueError: time data '1' does not match format '%H:%M' (match)

最終在條帶化 00 時:列值變為

1:24
22:44
12:32
2:56

有人可以幫我嗎。謝謝

df['time'] = pd.to_datetime(df.time, format="%S:%H:%M").dt.time
df

Output

    time
0   01:24:00
1   22:44:00
2   12:32:00
3   02:56:00

使用您顯示的示例,請嘗試以下操作。 使用str.replace Pandas 的 function。

df['time'].str.replace(r"^(\d{2}):(\d{2}):(\d{2})",r"\2:\3:\1")

說明:處理 DataFrame 的time列並使用.str.replace function 替換值。 在匹配部分使用 function 的捕獲組功能創建 3 個捕獲組(其中第一個將有第一個 2 位后跟冒號,第二個和第三個也將相同),然后在替換它時交換它們的位置以獲得預期的 output。

datetime進行強制轉換,更改為所需的格式。

import pandas as pd

pd.to_datetime(df['time'], format="%S:%H:%M").dt.strftime("%H:%M:%S")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM