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
我有以下 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