![](/img/trans.png)
[英]How can I update a whole collection in MongoDB and not document by document?
[英]How can I convert a mongodb document collection to a numpy Array in python?
我正在嘗試從我的 MongoDB 中獲取密鑰“Verlauf”上具有相同值的所有文檔。 到目前為止有效。 但后來我想將此 output 轉換為 numpy 數組。 這是如何運作的?
我使用以下命令從 MongoDB 獲取列表中的文檔:
v1 = list(collection.find({"Verlauf": 1}))
Output 看起來像這樣(對於 2 個匹配的文檔):
[{'_id': ObjectId('5f05aca208c3c86edf465953'), 'Verlauf': 1, 'Wie stark haben Sie den Kraftverlauf empfunden?': 2, 'Wie gut wurde dies empfunden?': 3, 'Dritte Frage hier einfügen': 4, 'Vierte Frage hier einfügen': 5, 'Fünfte Frage hier einfügen': 6, 'Sechste Frage hier einfügen': 7}, {'_id': ObjectId('5f05b89d48eb73c488a90efb'), 'Verlauf': 1, 'Wie stark haben Sie den Kraftverlauf empfunden?': 4, 'Wie gut wurde dies empfunden?': 5, 'Dritte Frage hier einfügen': 4, 'Vierte Frage hier einfügen': 5, 'Fünfte Frage hier einfügen': 4, 'Sechste Frage hier einfügen': 5}]
有沒有辦法在 numpy 數組中構造來自該列表的數據,其中第一行包含第一個鍵的所有值,第二行包含第二個鍵的所有值?
所以對於這個例子:
[ [5f05aca208c3c86edf465953, 5f05b89d48eb73c488a90efb],
[1, 1],
[2, 4],
[3, 5],
[4, 4],
[5, 5],
[6, 4],
[7, 5]]
我對所有這些數據處理都很陌生,非常感謝任何建議。
稍后我想分析這些數據以獲取所有文檔中每個鍵的最小值、最大值、下四分位數、上四分位數和中位數。
提前致謝。 問候湯姆
我不經常使用 python 所以我相當有信心有更好的方法來做到這一點。
當我玩它時,通常是小規模的實驗,因此我只使用蠻力方法(你可以用幾種不同的方式來做到這一點)。
columns = ["_id", "field1", "field2"]
data = list(map(lambda item: [item["_id"], item["field1"], item["field2"]], db.collection.find({})))
df = DataFrame(data, columns=columns)
你甚至可以多加一點糖:
columns = ["_id", "field1", "field2"]
data = list(map(lambda item: list(map(lambda col: item[col], columns)), db.collection.find({})))
df = DataFrame(data, columns=columns)
請注意,這不適用於嵌套字段,即"field1.nested"
值,因為 python 希望您使用item["field1"]["nested"]
訪問嵌套字典值。 在這種情況下,我通常只使用 for 循環來實現所需的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.