pandas 读取mongodb 储存的数据, pandas链接mongodb

在工作中经常用到mongodb 作为数据的存取,但是有时候进行数据的处理,一条条的读取,感觉挺慢,用pandas 进行读取速度杠杠的,那么问题来了怎么读取
mongodb中的数据呢?

# 导入用到的包

Python
# coding:utf-8 import <span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/pandas" title="View all posts in pandas" target="_blank">pandas</a></span> from pymongo import MongoClient
1
2
3
4
# coding:utf-8
 
import pandas
from pymongo import MongoClient

创造一个和Mongondb之间的链接

Python
""" 创造一个和Mongondb之间的链接 """ client = MongoClient('localhost', 27017)
1
2
3
4
5
"""
创造一个和Mongondb之间的链接
"""
 
client = MongoClient ( 'localhost' , 27017 )

# 链接数据库

Python
db = client.taobao
1
db = client . taobao

# 链接 collection

Python
collection = db.products
1
collection = db . products

# list(collection.find()) 查询并转换成 list

Python
df = pandas.DataFrame(list(collection.find()))
1
df = pandas . DataFrame ( list ( collection . find ( ) ) )

Mongodb 数据字段结构 字段结构是这样的

Python
""" { "_id" : ObjectId("598ad92976766c3c4ced600a"), "price" : "¥2448.00", "title" : "【未拆封】Apple/苹果 iPad 9.7英寸WLAN 平板电脑2017版 正品", "shop" : "绿森数码官方旗舰店", "image" : "//g-search1.alicdn.com/img/bao/uploaded/i4/imgextra/i1/1258106069108947116/TB225t7yb4npuFjSZFmXXXl4FXa_!!0-saturn_solar.jpg", "deal" : "161人付款", "location" : "浙江 杭州" } """
1
2
3
4
5
6
7
8
9
10
11
12
"""
{
    "_id" : ObjectId("598ad92976766c3c4ced600a"),
    "price" : "¥2448.00",
    "title" : "【未拆封】Apple/苹果 iPad 9.7英寸WLAN 平板电脑2017版 正品",
    "shop" : "绿森数码官方旗舰店",
    "image" : "//g-search1.alicdn.com/img/bao/uploaded/i4/imgextra/i1/1258106069108947116/TB225t7yb4npuFjSZFmXXXl4FXa_!!0-saturn_solar.jpg",
    "deal" : "161人付款",
    "location" : "浙江 杭州"
}
 
"""

# 删除mongodb自动添的_id字段

Python
del df['_id']
1
del df [ '_id' ]

# 选择需要显示的字段

Python
data = df[['price','shop','price','deal','location']] print(data)
1
2
3
4
data = df [ [ 'price' , 'shop' , 'price' , 'deal' , 'location' ] ]
 
 
print ( data )

打印的结果是:




  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果你已经将从豆瓣读书网爬取的评分和评论人数数据存储到了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`中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值