У меня проблемы с получением среднего значения столбца timedelta.
Мои данные выглядят так:
user date Flag Value
0 ron 12/23/2016 'flag' 0 days 10:08:00
1 ron 12/21/2016 'n/a' 0 days 08:00:00
2 ron 12/23/2016 'flag' 0 days 10:08:00
3 ron 12/21/2016 'n/a' 0 days 02:00:00
4 andy 12/22/2016 'flag' 0 days 10:00:00
5 andy 12/22/2016 'flag' 0 days 10:00:00
Я хотел бы создать столбец Avg, взяв среднее значение для каждого пользователя на основе флага Flag ==. Таким образом, данные будут выглядеть так:
user date Flag Value Avg
0 ron 12/23/2016 'flag' 0 days 10:08:00 0 days 10:08:00
1 ron 12/21/2016 'n/a' 0 days 08:00:00 0 days 10:08:00
2 ron 12/23/2016 'flag' 0 days 10:08:00 0 days 10:08:00
3 ron 12/21/2016 'n/a' 0 days 02:00:00 0 days 10:08:00
4 andy 12/22/2016 'flag' 0 days 10:00:00 0 days 10:00:00
5 andy 12/22/2016 'flag' 0 days 10:00:00 0 days 10:00:00
У меня есть этот код, который выдает ошибку данных:
sample.loc[:,'Value'] = pd.to_timedelta(sample['Value'])
sample.loc[:,'Avg'] = sample['user'].map(sample[sample['Flag']=='flag'].groupby('user')['Value'].mean())
Но это ошибка, которую я получаю:
DataError: No numeric types to aggregate
Я не уверен, почему так сказано, когда я конвертировал Value в timedelta. Руководство ценится.