用pandas处理mongodb中评分和评论人数的数据进行数据预处理
时间: 2024-02-13 07:04:37 浏览: 121
介绍了如何用pandas、numpy和maplotlib进行数据预处理
如果你已经将从豆瓣读书网爬取的评分和评论人数数据存储到了MongoDB中,可以使用pandas库从MongoDB中获取数据并进行数据预处理。下面是一个简单的示例代码,假设你已经安装了pymongo和pandas库:
```python
import pymongo
import pandas as pd
# 连接MongoDB数据库
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['douban_book'] # 数据库名
collection = db['book_info'] # 集合名
# 从MongoDB中获取评分和评论人数数据
data = pd.DataFrame(list(collection.find({}, {'_id':0, 'score':1, 'comment_count':1})))
# 数据清洗
data = data.dropna() # 删除缺失值
# 数据标准化
data['score'] = (data['score'] - data['score'].min()) / (data['score'].max() - data['score'].min())
# 数据归一化
data['comment_count'] = (data['comment_count'] - data['comment_count'].min()) / (data['comment_count'].max() - data['comment_count'].min())
# 数据转换
data['score'] = data['score'].apply(lambda x: np.log10(x+1))
data['comment_count'] = data['comment_count'].apply(lambda x: np.sqrt(x))
# 保存处理后的数据到MongoDB中
collection_processed = db['book_info_processed'] # 新的集合名
collection_processed.insert_many(data.to_dict('records'))
# 打印处理后的数据
print(data.head())
```
上述代码中,通过pymongo连接MongoDB数据库,并从集合`book_info`中获取评分和评论人数数据。然后对数据进行清洗、标准化、归一化和转换等预处理操作,最后将处理后的数据保存到MongoDB中的集合`book_info_processed`中。
阅读全文