У меня есть таблица в DynamoDB в следующем формате:
Я извлекаю данные из этой таблицы с помощью boto3 и хочу создать новый пользовательский ввод таблицы (DeviceId, Date Range). Эта таблица будет содержать данные по сенсорному типу — макс., Мин. И сред., Сгруппированные по минутам.
Я делаю базовую ошибку, из-за которой агрегация разваливается … не могу понять. Это приводит к сбою всего агрегирования .. Я хочу сгруппировать по DeviceId, затем по SensorType, а затем агрегировать по минутам.
items_by_minute = sorted(col, key=lambda x: (x["SensorDataType"],x["CurrentTime"][:16]) )
items_by_minute = itertools.groupby(col, key=lambda x: (x["SensorDataType"],x["CurrentTime"][:16]))
for minute, items in items_by_minute:
values_per_minute = [item["SensorValue"] for item in items]
avg = statistics.mean(values_per_minute)
avg = round (avg,2)
min_value = min(values_per_minute)
max_value = max(values_per_minute)
print(f" Stype: {minute[0]}/ Minute: {minute[1]}/ Average {avg} / Min {min_value} / Max {max_value}")