首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Python将mm:ss字符串转换为hh:mm:ss时间格式

用Python将mm:ss字符串转换为hh:mm:ss时间格式
EN

Stack Overflow用户
提问于 2022-09-29 06:00:09
回答 2查看 60关注 0票数 0

我正在做的数据截图

我想将df‘column’列中的值转换为字符串obj到timedelta64。

已试用this....> df2 2‘芯片时间’=pd.to_timedelta(df2 2‘芯片时间’)

但是获取错误消息...> ValueError:预期的hh:mm:ss格式

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-29 06:42:37

可以对str.replace使用regex对匹配'x:x'的值添加'0:'

代码语言:javascript
运行
复制
df2['Chip Time'] = pd.to_timedelta(df2['Chip Time']
                    .str.replace('^(\d+:\d+)$', r'0:\1', regex=True)
                   )

示例输出:

代码语言:javascript
运行
复制
        Chip Time
0 0 days 00:16:48
1 0 days 01:07:51

已使用的投入:

代码语言:javascript
运行
复制
  Chip Time
0     16:48
1   1:07:51
票数 0
EN

Stack Overflow用户

发布于 2022-09-29 06:01:38

如果string只有一个: by Series.str.countSeries.mask,则可以添加Series.mask

代码语言:javascript
运行
复制
df2 = pd.DataFrame({"Chip Time": ['10:04','1:45:23','23:12']})

s = df2['Chip Time'].mask(df2['Chip Time'].str.count(':').eq(1), '00:' + df2['Chip Time'])
#alternative:
s = np.where(df2['Chip Time'].str.count(':').eq(1), '00:', '') + df2['Chip Time']
print (s)
0    00:10:04
1     1:45:23
2    00:23:12
Name: Chip Time, dtype: object

df2['Chip Time'] = pd.to_timedelta(s)
print (df2)
        Chip Time
0 0 days 00:10:04
1 0 days 01:45:23
2 0 days 00:23:12
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73890892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档