将 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

谁能帮帮我out.Thanks

转换为 datetime,更改为所需格式。

import pandas as pd

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

输出

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

使用您显示的示例,请尝试执行以下操作。使用 Pandas.

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

说明: 处理 DataFrame 的 time 列并使用 .str.replace 函数替换值。在匹配部分使用函数的捕获组功能创建 3 个捕获组(其中第一个将有第一个 2 位数字后跟冒号,第二个和第三个也将相同),然后在替换它的同时交换它们的位置以获得预期的输出。