如何将字符串时间戳值转换为datetime64 dtype

时间:2016-09-04 02:04:13

标签: python dataframe

下面生成的DataFrame将时间戳值列为字符串:

import pandas as pd
df = pd.DataFrame({'Time':['00:00:00:19','02:11:00:07','02:00:40:23']})

使用什么方法将这些字符串值转换为datetime64,以便sum()和mean()函数可以应用于列?

以下是在Notebook中显示的DataFrame的屏幕截图:

1 个答案:

答案 0 :(得分:1)

它可能不是最好的方式,但它的功能性:

durations = (df.Time.str.split(':', expand=True).applymap(int) * [24*60*60, 60*60, 60, 1]).sum(axis=1).apply(pd.Timedelta, unit='s')

给你:

0   0 days 00:00:19
1   3 days 08:00:07
2   2 days 00:40:23
dtype: timedelta64[ns]

durations.sum()会给你Timedelta('5 days 08:40:49')

好的 - 稍微容易一些:

df.Time.str.replace('(\d+):(.*)', r'\1 days \2').apply(pd.Timedelta)