我正在尝试将以下查询存储到数据框中。
db = conn["daune_leasing"]
collection = db["clienti_daune"]
pipeline=[{'$group':{
"_id": {'MARCA': '$MARCA', "MODEL": "$MODEL"},
"VENIT_ANUAL": {'$sum': '$VENIT_ANUAL'},
"DAUNA": {'$COUNT': '$DAUNA'},
"VALOARE_DAUNA": {'$sum': '$VALOARE_DAUNA'},
}},
{"$sort": {"_id": 1}}]
cursor = collection.find({"AN_FABRICATIE": {'$lt': 2010,'$gt': 2012},
"VALOARE_DAUNA": {'$gt': 30000}}, pipeline=pipeline)
df = pd.DataFrame.from_dict(list(cursor))
cursor.close()
pprint(df)
df_plot=df.loc[(df['DAUNA']>100)]
df_plot.bar(x='_id', y='DAUNA',rot=0)
plt.xlabel("MODEL")
plt.ylabel("DAUNA")
plt.show();
我收到以下错误
cursor = collection.find({"AN_FABRICATIE": {'$lt': 2010,'$gt': 2012},
File "C:\Users\andre\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pymongo\collection.py", line 1523, in find
return Cursor(self, *args, **kwargs)
TypeError: __init__()
got an unexpected keyword argument 'pipeline'
这样做:
pipeline = [
{
"$match" : {
"AN_FABRICATIE" : {
"$lt" : 2010,
"$gt" : 2012
},
"VALOARE_DAUNA" : {
"$gt" : 30000
}
}
},
{
"$group" : {
"_id" : {
"MARCA" : "$MARCA",
"MODEL" : "$MODEL"
},
"VENIT_ANUAL" : {
"$sum" : "$VENIT_ANUAL"
},
"DAUNA" : {
"$COUNT" : "$DAUNA"
},
"VALOARE_DAUNA" : {
"$sum" : "$VALOARE_DAUNA"
}
}
},
{
"$sort" : {
"_id" : 1
}
}
]
cursor = collection.aggregate(pipeline)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句