我有一个pandas数据帧,其中包含以下示例数据:
Group Time
1 01:40:00
1 01:32:00
2 00:56:31
我希望我的输出是:
Group Time
1 01:36:00
2 00:56:31
运行数据类型时,"组"one_answers"时间"都存储为对象。
我已经做了一些阅读,据说你只能通过将数据转换为hh:mm:ss:ms来做到这一点。我试过使用timedelta函数,但没有成功。
def rreplace(s, old, new, occurrence):
li = s.rsplit(old, occurrence)
return new.join(li)
df['New Time']=pd.to_timedelta(df['Time'].apply(lambda x: rreplace('00:{}'.format(x), ':', '.', 1)))
df.groupby(['Group'])['New Time'].mean()
现在我知道这段代码把它往下推了一层。即秒现在是毫秒。但我想做相反的事情,并以hh:mm:ss:ms格式向我显示正确的hh:mm:ss时间,这样我就可以对其进行数学运算。
如有任何帮助,我们将不胜感激。谢谢
对于我来说,用GroupBy.agg
和sum
处理骨料,用size
计数,然后划分列,在Panda 0.25.1:中测试
df['New Time'] = pd.to_timedelta(df['Time'])
df = df.groupby(['Group'])['New Time'].agg(['sum','size'])
df = df['sum'].div(df['size']).reset_index(name='Time')
print (df)
Group Time
0 1 01:36:00
1 2 00:56:31