我正在使用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
发布于 2021-05-14 06:43:33
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发布于 2021-05-14 06:49:27
带着你所展示的样品,请试一试。利用Pandas的str.replace函数。
df['time'].str.replace(r"^(\d{2}):(\d{2}):(\d{2})",r"\2:\3:\1")解释:处理DataFrame的time列并使用.str.replace函数替换值。在匹配部分中,利用捕获组的功能能力创建3个捕获组(其中第1组将有1~2位,后面跟着冒号,第2和第3组也是相同的),然后在替换它们的位置时,得到预期的输出。
发布于 2021-05-14 06:41:08
对datetime进行强制转换,更改为必需的格式。
import pandas as pd
pd.to_datetime(df['time'], format="%S:%H:%M").dt.strftime("%H:%M:%S")https://stackoverflow.com/questions/67529976
复制相似问题