首页 > 解决方案 > Python:用活动的经过时间进行计算

问题描述

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

样本数据

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

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

标签: pythondataframetimemeasurement

解决方案


您可以使用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

推荐阅读