存储到mongodb中豆瓣读书网中的评分和评论人数用python进行数据预处理
时间: 2024-02-13 21:04:32 浏览: 110
好的,以下是使用Python对存储在MongoDB中的豆瓣读书网中的评分和评论人数进行数据预处理的示例代码:
```python
import pymongo
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
# 连接MongoDB数据库
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["douban"]
collection = db["books"]
# 从MongoDB中读取评分和评论人数数据
data = pd.DataFrame(list(collection.find({}, {"_id": 0, "rating": 1, "num_ratings": 1})))
# 数据清洗
data = data[(data["rating"] >= 0) & (data["rating"] <= 5) & (data["num_ratings"] >= 0)]
# 数据转换
data["rating"] = data["rating"] * 20
# 数据归一化
scaler = MinMaxScaler()
data[["rating", "num_ratings"]] = scaler.fit_transform(data[["rating", "num_ratings"]])
# 特征选择
selected_features = ["category", "year", "author"] # 选择与预测目标相关的特征
data = data[selected_features + ["rating", "num_ratings"]]
# 数据集划分
train_data = data.sample(frac=0.7, random_state=2021)
val_data = data.drop(train_data.index).sample(frac=0.5, random_state=2021)
test_data = data.drop(train_data.index).drop(val_data.index)
# 数据可视化
data.hist()
```
以上代码中,我们首先连接MongoDB数据库,从中读取评分和评论人数数据,并进行数据清洗、转换、归一化、特征选择、数据集划分和可视化处理。需要注意的是,特征选择和数据集划分的实现方式需要根据实际情况进行调整,这里仅供参考。
阅读全文