用python求出mongodb中数据的最高值,最低值,平均数,中位数,四分位数
时间: 2023-10-26 18:07:16 浏览: 180
计算MongoDB中数据的最高值、最低值、平均数、中位数、四分位数可以使用Python中的pymongo和numpy/scipy/stats库结合使用。具体步骤如下:
1. 连接MongoDB数据库,选择要进行计算的集合,可以使用以下代码:
```python
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]
```
其中,`mydatabase`是MongoDB数据库的名称,`mycollection`是要进行计算的集合名称,可以根据实际情况进行修改。
2. 查询数据,将数据存储到列表中,可以使用以下代码:
```python
data = []
for item in collection.find({}, {"_id": 0, "rating": 1}):
data.append(item["rating"])
```
其中,`"rating"`是要计算统计量的字段名,可以根据实际情况进行修改。
3. 使用numpy/scipy/stats库计算最高值、最低值、平均数、中位数、四分位数,可以使用以下代码:
```python
import numpy as np
from scipy import stats
# 最高值、最低值、平均数、中位数
max_val = np.max(data)
min_val = np.min(data)
mean_val = np.mean(data)
median_val = np.median(data)
# 四分位数
q1, q2, q3 = np.percentile(data, [25, 50, 75])
# 输出计算结果
print("最高值:", max_val)
print("最低值:", min_val)
print("平均数:", mean_val)
print("中位数:", median_val)
print("四分位数:Q1=", q1, "Q2=", q2, "Q3=", q3)
```
其中,`np.max()`、`np.min()`、`np.mean()`、`np.median()`、`np.percentile()`分别是numpy库中的计算最高值、最低值、平均数、中位数、四分位数的函数。需要注意的是,numpy库的计算结果可能会与pandas库的计算结果略有不同。
完整的代码如下所示:
```python
import pymongo
import numpy as np
from scipy import stats
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]
data = []
for item in collection.find({}, {"_id": 0, "rating": 1}):
data.append(item["rating"])
max_val = np.max(data)
min_val = np.min(data)
mean_val = np.mean(data)
median_val = np.median(data)
q1, q2, q3 = np.percentile(data, [25, 50, 75])
print("最高值:", max_val)
print("最低值:", min_val)
print("平均数:", mean_val)
print("中位数:", median_val)
print("四分位数:Q1=", q1, "Q2=", q2, "Q3=", q3)
```
其中,`"rating"`是要计算统计量的字段名,可以根据实际情况进行修改。
阅读全文