使用pandas在python中通过hh:mm:ss时间数据获得平均分组



我有一个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.aggsum处理骨料,用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

最新更新