#!/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. 解决了中文乱码问题。

谢谢

【参考】https://stackoverflow.com/questions/16249736/how-to-import-data-from-mongodb-to-pandas

Python访问MongoDB,并且转换成Dataframe的更多相关文章

  1. python 使用csv.reader和csv.writer读写文件并转换成dataframe格式

    import csv import pandas as pd ###csv.reader用法 ''' f=open(r"C:\Users\admin\pycdtest\wanyue\yuee ...

  2. 用Python将word文件转换成html(转)

    用Python将word文件转换成html   序 最近公司一个客户大大购买了一堆医疗健康方面的科普文章,希望能放到我们正在开发的健康档案管理软件上.客户大大说,要智能推送!要掌握节奏!要深度学习!要 ...

  3. Spark之 RDD转换成DataFrame的Scala实现

    依赖 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2. ...

  4. python入门:UTF-8转换成GBK编码

    #!/usr/bin/env python # -*- coding:utf-8 -*- #UTF-8转换成GBK编码 #temp(临时雇员,译音:泰坡) #decode(编码,译音:迪口德) #en ...

  5. 分别用Excel和python进行日期格式转换成时间戳格式

    最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...

  6. 使用python将ppm格式转换成jpg【转】

    转自:http://blog.csdn.net/hitbeauty/article/details/48465017 最近有个很火的文章,叫 有没有一段代码,让你觉得人类的智慧也可以璀璨无比? 自己试 ...

  7. Python: 把txt文件转换成csv

    最近在项目上需要批量把txt文件转成成csv文件格式,以前是手动打开excel文件,然后导入txt来生产csv文件,由于这已经变成每周需要做的事情,决定用python自动化脚本来实现,思路: 读取文件 ...

  8. 【小工具系列】Python + OpenCV 图片序列转换成视频

    图片序列转换成视频 最近一直在找一个工具,能够将一堆图片转化成视频.网上找了一些小软件,还有 win10 的照片自带的视频制作功能,都不是很满意. 又不想下载那些专业的视频剪辑软件大材小用. 然后找到 ...

  9. python :eval将字符串转换成字典

    #将字符串打印成字典 b=''' {'record': {'weight':20,'server':'100.1.7.9','maxconn':50},'backend': 'www.oldboy.o ...

随机推荐

  1. POJ - 3080 Blue Jeans 【KMP+暴力】(最大公共字串)

    <题目链接> 题目大意: 就是求k个长度为60的字符串的最长连续公共子串,2<=k<=10 限制条件: 1.  最长公共串长度小于3输出   no significant co ...

  2. 001.Open-Falcon简介

    一 Open-Falcon简介 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题.监控系统作为一个成熟的运维产品,相对成熟的解决方案 ...

  3. 算法进阶面试题01——KMP算法详解、输出含两次原子串的最短串、判断T1是否包含T2子树、Manacher算法详解、使字符串成为最短回文串

    1.KMP算法详解与应用 子序列:可以连续可以不连续. 子数组/串:要连续 暴力方法:逐个位置比对. KMP:让前面的,指导后面. 概念建设: d的最长前缀与最长后缀的匹配长度为3.(前缀不能到最后一 ...

  4. BZOJ.3450.(JoyOI1952) Easy(期望)

    题目链接 /* 设f[i]为到i的期望得分,c[i]为到i的期望连续长度 则若s[i]=='x',f[i]=f[i-1], c[i]=0 s[i]=='0',f[i]=f[i-1]+2*c[i-1]+ ...

  5. java中的synchronized : 模拟取款

    1.定义账户类: public class Account { private int balance = 500; public int getBalance() { return balance; ...

  6. AIX中vi编辑器使用

    3.1 vi 简介 vi 是 UNIX 世界里使用非常普遍的全屏幕文本编辑器,几乎任何一种UNIX系统都会提供这套软件.AIX当然也支持这种编辑器.熟悉DOS下的文本处理后,用户在开始接触vi时也许会 ...

  7. Android开发中遇到的问题(一)——Android模拟器端口被占用问题的解决办法

    一.问题描述 今天在Eclipse中运行Android项目时遇到"The connection to adb is down, and a severe error has occured& ...

  8. Selenium2+python自动化73-定位的坑:class属性有空格

    前言 有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message: The given selector u-label f-dn ...

  9. Android HandlerThread 源代码分析

    HandlerThread 简单介绍: 我们知道Thread线程是一次性消费品,当Thread线程运行完一个耗时的任务之后.线程就会被自己主动销毁了.假设此时我又有一 个耗时任务须要运行,我们不得不又 ...

  10. Redis深入之对象

    Redis对象系统 前面介绍了Redis用到的全部主要数据结构,如简单动态字符串(SDS).双端链表.字典.压缩列表.整数集合等 Redis并没有直接使用这些数据结构来实现键值对数据库.而是基于这些数 ...