Python访问MongoDB,并且转换成Dataframe

#!/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:%[email protected]%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

原文地址:https://www.cnblogs.com/zhzhang/p/9305920.html

时间: 2024-10-28 20:25:43

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

python将下载地址转换成迅雷和qq旋风的下载地址

迅雷和qq旋风下载,有加速和离线功能,很方面,我是在网上看到的原始地址和迅雷地址,qq旋风地址的转化原理,然后用python+pyqt写了一个客户端 原理: 迅雷: 迅雷下载地址="thunder://"+Base64编码("AA"+"真实地址"+"ZZ") QQ旋风: qqdl="qqdl://"+Base64编码("真实地址") import re import base64 fro

Python访问MongoDB数据库

#encoding: utf-8 __author__ = 'Administrator' #import pymongo from pymongo import MongoClient,GEO2D import sqlite3 import sys import psycopg2 import ppygis import cx_Oracle import datetime reload(sys) #中文错误 sys.setdefaultencoding( "utf-8" ) #mon

Spark中将RDD转换成DataFrame的两种方法

总结下Spark中将RDD转换成DataFrame的两种方法, 代码如下: 方法一: 使用createDataFrame方法 ```java //StructType and convert RDD to DataFrame val schema = StructType( Seq( StructField("name",StringType,true) ,StructField("age",IntegerType,true) ) ) val rowRDD = sp

python如何将字符串转换成json的几种办法

python如何将字符串转换成json的几种办法 最近在工作中遇到了一个小问题,如果要将字符串型的数据转换成dict类型,我第一时间就想到了使用json函数.但是里面出现了一些问题 1.通过json来转换: In [1]: import json In [2]: mes = '{"InsId": 2, "name": "lege-happy", "CreationTime": "2019-04-23T03:18:02

pythonnet模块的使用,把DataTable转换成DataFrame

1.模块的选择 python与c#交互目前有两种方式,一种是使用ironpython模块,另一种是使用pythonnet模块.笔者推荐使用pythonnet,因为ironpython不支持c#中的一些模块,如比较有名的pandas,numpy等. 2.使用pythonnet 使用pip下载pythonnet模块,在安装路径下会有clr.pyd.python.Runtime.dll 两个文件,pyd文件是在python脚本中使用,而python.Runtime则是在c#程序中所调用的动态库.(注意

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

转自:http://blog.csdn.net/hitbeauty/article/details/48465017 最近有个很火的文章,叫 有没有一段代码,让你觉得人类的智慧也可以璀璨无比? 自己试了一下里面的代码,可是图片格式让我犯难了.PPM格式的图片怎么打开呢?难不成还特意为它去装个专业的图形处理软件吗? 关键是笔记本不允许装盗版软件啊! 研究了一下,用Python可以很容易就把PPM转换成jpg格式啊,代码如下: #coding=utf-8 import Image img = Ima

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

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #UTF-8转换成GBK编码 4 #temp(临时雇员,译音:泰坡) 5 #decode(编码,译音:迪口德) 6 #encode(编码,译音:因口德) 7 #原理就是爸UTF-8转换成万国码,再给万国码进行编码转换成GBK,在python 2.x里面这么用 8 """ 9 给变量temp赋值等于'李杰'是UTF-8编码! 10 变量temp_unicode的赋值等于temp

python 将类对象转换成json

如果将字典转换成json,想必都很熟悉了,如果在进阶点,将class类转换成json对象该如何操作了? 1,先定义一个类 #定义一个Student类 class Student(object): def __init__(self,name,age,score): self.name = name self.age = age self.score = score 2,在实例化Student类,传入3个参数 #实例化这个对象 s = Student('hello',20,80) 3,利用json

Spark RDD转换成DataFrame的两种方式

Spark SQL支持两种方式将现有RDD转换为DataFrame.第一种方法使用反射来推断RDD的schema并创建DataSet然后将其转化为DataFrame.这种基于反射方法十分简便,但是前提是在您编写Spark应用程序时就已经知道RDD的schema类型.第二种方法是通过编程接口,使用您构建的StructType,然后将其应用于现有RDD.虽然此方法很麻烦,但它允许您在运行之前并不知道列及其类型的情况下构建DataSet 方法如下 1.将RDD转换成Rows 2.按照第一步Rows的结