python - 将字符串转回日期时间 timedelta

标签 python pandas datetime timedelta

我的 pandas 数据框中的一列表示我用 datetime 计算的时间增量,然后导出到 csv 并读回 pandas 数据框中。现在该列的 dtype 是对象,而我希望它是一个 timedelta,这样我就可以在数据帧上执行 groupby 函数。下面是字符串的样子。谢谢!

  0 days 00:00:57.416000
  0 days 00:00:12.036000
  0 days 16:46:23.127000  
 49 days 00:09:30.813000  
 50 days 00:39:31.306000  
 55 days 12:39:32.269000
-1 days +22:03:05.256000

更新,我最好的尝试是编写一个 for 循环来迭代我的 pandas 数据框中的特定列:

def delta(i):
    days, timestamp = i.split(" days ")
    timestamp = timestamp[:len(timestamp)-7]
    t = datetime.datetime.strptime(timestamp,"%H:%M:%S") + 
    datetime.timedelta(days=int(days))
    delta = datetime.timedelta(days=t.day, hours=t.hour, 
    minutes=t.minute, seconds=t.second)
    delta.total_seconds()

data['diff'].map(delta)

最佳答案

使用pd.to_timedelta

pd.to_timedelta(df.iloc[:, 0])

0     0 days 00:00:57.416000
1     0 days 00:00:12.036000
2     0 days 16:46:23.127000
3    49 days 00:09:30.813000
4    50 days 00:39:31.306000
5    55 days 12:39:32.269000
6   -1 days +22:03:05.256000
Name: 0, dtype: timedelta64[ns]

关于python - 将字符串转回日期时间 timedelta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44611642/

相关文章:

python - 使用直方图的 Matplotlib/Pandas 错误

c# - 如何在 .NET Micro 中将字符串转换为 DateTime 对象?

python - 在 python 中渲染格式化文本(当前使用 pyglet)

python - pandas 两个工作表内的最小值

python - 每 n 行重复随机数

java - java.util.Date 和 XMLGregorianCalendar 之间的简单转换

c# - 强制执行日期时间类型

python - 使用 Python 创建 Linux 用户列表

python - 如何在 Windows 10 上安装 pyYAML

python - 如何检查列表中是否存在 np.NaN 和/或 None