我正在学习Python - 所以这对你来说可能是一个非常简单的问题。 但是,我在浏览时没有找到解决方案,所以我希望在这里找到帮助;)
我想获得条件> = 5的行数百分比。
我真的很感激任何帮助。 谢谢!
def get_percentage(collection):
coll = collection.aggregate([
#get No of rows with Condition>=5
{"$match": { "Condition": {"$gte":5} }},
{"$group": {"_id": 0, "count": {"$sum":1}}}
,
#get total No of rows
{"$group": {"_id": 0, "total": {"$sum":1}}}
,
#get percentage: count/total
{"$project" : {"percentage" : {"$divide" : ["$count","$total"]}}}
])
for dot in coll:
print(dot['percentage'])
percentage = dot['percentage']
return percentage
答案 0 :(得分:0)
使用$cond计算Condition >= 5
的行数。下面的语句是用javascript编写的。你需要在python中引用键。
collection.aggregate([{
$project: {count: {$cond: {if: {$gte: ['$Condition', 5]}, then: 1, else: 0}}}
}, {
$group: {_id: 0, count: {$sum: '$count'}, total: {$sum: 1}}
}, {
$project: {"percentage" : {"$divide" : ["$count","$total"]}}
}])