我想创建一个包含每种产品的日需求的pandas Dataframe 。我尝试了下面的代码,它只提供了我想要的product_id=1的数据。是否有一种简单的方法可以对所有产品循环此 Dataframe ?
search_body_statistics = {
"size": 0,
"query": {
"bool": {
"must": {
"match": {
"product_id": "1"
}
}
}
},
"aggs": {
"countPerDay": {
"terms": {
"field": "day",
"size": 10000,
"order": {
"_key": "asc"
}
}
}
}
}
result_stat = es.search(index="sales", body=search_body_statistics)
print(result_stat)
dfProductDay = json_normalize(result_stat['aggregations']['countPerDay']['buckets'])
dfProductDay.rename(columns={'key': 'day'}, inplace=True)
print(dfProductDay)
1条答案
按热度按时间js81xvg61#
Tldr;
我认为您正在寻找子聚合。
存储桶聚合支持
bucket
或metric
子聚合。例如,具有avg
子聚合的terms
聚合将计算文档的每个存储桶的平均值。另外,我注意到您正在
day
上使用terms
聚合,也许您愿意考虑使用histogram aggregation?溶液
我相信下面的查询对您有用。