gpt4 book ai didi

python - 如何将以天、小时、分钟和秒为单位的时间转换为仅以秒为单位

转载 作者:行者123 更新时间:2023-12-05 02:05:11 37 4
gpt4 key购买 nike

我有以下数据框列:

Columm of Dataset

我需要将 csv 列中的对象字符串数据转换为总秒数。

示例:10m -> 600s


我试过这段代码:

df.duration = str(datetime.timedelta(df['duration']))

但是显示如下错误

TypeError: unsupported type for timedelta days component: Series

最佳答案

  • 'duration' 转换为秒数的正确且矢量化的方法是:
    1. 'duration' 转换为时间增量
    2. 除以 pd.Timedelta(seconds=1)
  • 仅获取小时、分钟和秒组件的秒数的正确方法是使用 .dt.seconds
  • 查看此 answer详细讨论 timedelta 以及为什么 .total_seconds 方法完全是个意外。
import pandas as pd

# test data
df = pd.DataFrame({'duration': ['10d 15h 23m', '10d 18h 13m']})

# convert duration to a timedelta
df.duration = pd.to_timedelta(df.duration)

# calculate total_seconds
df['total_sec'] = df.duration / pd.Timedelta(seconds=1)

# get seconds for just hours, minutes, seconds
df['sec_without_days'] = df.duration.dt.seconds

# display(df)
duration total_sec sec_without_days
0 10 days 15:23:00 919380.0 55380
1 10 days 18:13:00 929580.0 65580

关于python - 如何将以天、小时、分钟和秒为单位的时间转换为仅以秒为单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63770159/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com