Если MultiIndex Series
использовать только mean
с параметром level=0
:
print (s.index)
MultiIndex(levels=[['23-08-2018', '24-08-2018', '27-08-2018'], ['000a7843-432f-4c67-9d7c-5d3e2ffac439', '000cd8c7-94c7-4cb7-ad70-a60aec275f31', '000dd787-ab81-40a7-a036-a05e4d11fea9', '00115f12-4a50-4412-bc90-940a21a1af65', '0012467d-53c1-4b5e-be8b-fc285d130968', '06803fe4-a504-4520-8304-a76a3adcd488', '10f049cb-c165-424a-b2db-99637cc2668c', '11a7ec38-a535-4f1c-acc4-c93471401dbd', '1292f360-41e5-463e-8547-002858ac0226', '145d17c0-9711-4445-8eed-7e7d35f0f896', '188d7578-8a3b-4fe5-807a-d098bce1d227', '1e806edd-1c96-4bdb-87b8-b01cb09cdb02', '88f7ff3f-ede7-4dd0-bce9-0d25b598004d', '89efbfda-6edc-45a9-a0dd-e520fd8a3e2a', '89tfbfda-6edc-45a9-a0dd-e520fd8a3e2a', 'd2c45e73-d5ca-4e28-ba54-4e24b4ee9be3']],
labels=[[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2], [5, 13, 12, 6, 7, 8, 9, 10, 14, 0, 1, 2, 3, 4, 11, 15]],
names=['Date', 'Val'])
df = s.mean(level=0).reset_index(name='AverageInteractionTime')
#alternative solution
#df = s.groupby(level=0).mean().reset_index(name='AverageInteractionTime')
print (df)
Date AverageInteractionTime
0 23-08-2018 608.666667
1 24-08-2018 15333.000000
2 27-08-2018 22.500000
При необходимости разделить индекс на MultiIndex
:
print (s.index[:3])
Index(['23-08-2018 06803fe4-a504-4520-8304-a76a3adcd488',
'23-08-2018 89efbfda-6edc-45a9-a0dd-e520fd8a3e2a',
'23-08-2018 88f7ff3f-ede7-4dd0-bce9-0d25b598004d'],
dtype='object', name='Date')
s.index = s.index.str.split(expand=True)
df = s.mean(level=0).reset_index(name='AverageInteractionTime')
#alternative solution
#df = s.groupby(level=0).mean().reset_index(name='AverageInteractionTime')