Python访问MongoDB,并且转换成Dataframe的方法


Posted in Python onOctober 15, 2018

如下所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/7/13 11:10
# @Author : baoshan
# @Site : 
# @File : pandans_pymongo.py
# @Software: PyCharm Community Edition

import pymongo
import pandas as pd


def _connect_mongo(host, port, username, password, db):
 """ A util for making a connection to mongo. """
 if username and password:
  mongo_uri = "mongodb://%s:%s@%s:%s/%s" % (username, password, host, port, db)
  conn = pymongo.MongoClient(mongo_uri)
 else:
  conn = pymongo.MongoClient(host, port)

 return conn[db]


def read_mongo(db, collection, query={}, host='test43', port=27017, username=None, password=None, no_id=True):
 """ Read from Mongo and Store into DataFrame. """

 # Connect to MongoDB
 db = _connect_mongo(host=host, port=port, username=username, password=password, db=db)

 # Make a query to the specific DB and Collection
 cursor = db[collection].find(query).limit(10)

 # Expand the cursor and construct the DataFrame
 df = pd.DataFrame(list(cursor))
 df.to_csv("abc.csv", encoding="utf_8_sig") # 处理中文乱码问题

 if no_id:
  del df['_id']

 return df


read_mongo(db='service', collection='trace_log_regular', query={}, host='xxx', port=27017, username="xxx", password="xxx")

小结:

1. 解决了pymongo访问MongoDB的问题

2. 解决了查询的数据转成dataframe的问题

3. 解决了dataframe写入到csv的问题

4. 解决了中文乱码问题。

以上这篇Python访问MongoDB,并且转换成Dataframe的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python支持断点续传的多线程下载示例
Jan 16 Python
简单介绍Python中的RSS处理
Apr 13 Python
使用Python的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
深入讲解Java编程中类的生命周期
Feb 05 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
Python基于WordCloud制作词云图
Nov 29 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 Python
PyTorch的SoftMax交叉熵损失和梯度用法
Jan 15 Python
python属于解释语言吗
Jun 11 Python
python装饰器三种装饰模式的简单分析
Sep 04 Python
Python Sqlalchemy如何实现select for update
Oct 12 Python
十个Python自动化常用操作,即拿即用
May 10 Python
Django框架的中的setting.py文件说明详解
Oct 15 #Python
python得到电脑的开机时间方法
Oct 15 #Python
python得到单词模式的示例
Oct 15 #Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 #Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 #Python
Python 实现异步调用函数的示例讲解
Oct 14 #Python
python 异或加密字符串的实例
Oct 14 #Python
You might like
一个PHP+MSSQL分页的例子
2006/10/09 PHP
php strtotime 函数UNIX时间戳
2009/01/14 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
php图片裁剪函数
2018/10/31 PHP
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
Popup弹出框添加数据实现方法
2017/10/27 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
JS中超越现实的匿名函数用法实例分析
2019/06/21 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
[49:20]2014 DOTA2国际邀请赛中国区预选赛5.21 CIS VS TongFu
2014/05/22 DOTA
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
Python 如何访问外围作用域中的变量
2016/09/11 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
对python中的logger模块全面讲解
2018/04/28 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
如何使用PHP session
2015/04/21 面试题
大学生职业生涯规划范文
2013/12/31 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技