下面生成的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的屏幕截图:
答案 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)