Python:计算一个activity的经过时间

Python: Doing calculations with elapsed time of an activity

我有以下 activity 的 经过时间 的数据:

Sample Data

有什么方法可以将每个活动的经过时间相加,使得 activity A 的总经过时间为 08:15:00 和 B 02:30:00?非常感谢大家的帮助。

注意:到目前为止,我在Whosebug上没有找到任何解决方案。时间测量的格式由第三方提供,原始数据帧很大,这意味着时间测量的转换,例如通过 for 循环需要很长时间。

您可以使用 pd.to_timedelta()groupby

import pandas as pd

d = [['A', '08:00:00'],
    ['B', '02:00:00'],
    ['A', '00:15:00'],
    ['B', '00:30:00']]

df = pd.DataFrame(d, columns=['Activity', 'Time'])

df['Time'] = pd.to_timedelta(df['Time'])
df.groupby(['Activity']).sum()
Activity    Time
A          0 days 08:15:00
B          0 days 02:30:00

如果你不想参加决赛那么

import re

df2 = df.groupby(['Activity']).sum()
df2['Time'] = df2['Time'].apply(lambda x: re.findall(r'days (.*)', str(x))[0])
df2
Activity    Time
A          08:15:00
B          02:30:00