前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MongoDB和pandas的数据分析入门极简教程

MongoDB和pandas的数据分析入门极简教程

作者头像
MongoDB中文社区
修改于 2019-09-27 10:34:56
修改于 2019-09-27 10:34:56
1.8K00
代码可运行
举报
文章被收录于专栏:MongoDB中文社区MongoDB中文社区
运行总次数:0
代码可运行
MongoDB中文社区(微信公众号:mongoing-mongoing)
MongoDB中文社区(微信公众号:mongoing-mongoing)

导读:MongoDB是一个开源文档数据库,旨在实现卓越的性能、易用性和自动扩展。Pandas是受R数据框架概念启发形成的框架。

本文的目的是展示一些示例,以便你在数据分析入门中开始使用MongoDB和Pandas。

01 Python版本MongoDB

MongoDB是一个开源文档数据库,旨在实现卓越的性能、易用性和自动扩展。MongoDB确保不需要对象关系映射(ORM)来促进开发。包含由字段和值对组成的数据结构的文档在MongoDB中称为记录(record)。这些记录类似于JSON对象。字段的值可以包括其他文档、数组和文档数组。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{ "_id":ObjectId("01"),
"address": {
"street":"Siraj Mondal Lane",
"pincode":"743145",
"building":"129",
"coord": [ -24.97, 48.68 ]
  },
"borough":"Manhattan",

1. 将数据导入集合

mongoimport可使用系统脚本或命令提示符将文档放入数据库的集合中。如果集合预先存在于数据库中,操作将首先丢弃原始集合。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mongoimport --DB test --collection restaurants --drop --file ~/ downloads/primer-dataset.json

mongoimport命令连接到端口号为27017的本地运行的MongoDB实例。选项 --file 提供了导入数据的方法,此处为 ~/downloads/primer-dataset.json

要将数据导入到运行在不同主机或端口上的MongoDB实例中,需要在 mongoimport 命令中特别指出主机名或端口,用选项 --host--port

MySQL中有类似的命令load。

2. 使用pymongo创建连接

要创建连接,请执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import MongoClient from pymongo.
Client11 = MongoClient()

如果MongoClient无参数,那么将默认在端口27017上的本地端口上运行MongoDB实例。

可以指定一个完整的MongoDB URL来定义连接,其中包括主机和端口号。例如,下面的代码会连接到一个MongoDB实例,该实例运行在 mongodbo.example.net 的27017端口上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Client11 = MongoClient("mongodb://myhostname:27017")

3. 访问数据库对象

要将名为primer的数据库分配给局部变量DB,可以使用以下任意一行代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Db11 = client11.primer
db11 = client11['primer']

集合对象可以通过字典或数据库对象属性进行访问,如以下两个示例所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Coll11 = db11.dataset
coll = db11['dataset']

4. 插入数据

你可以将文档放入目前不存在的集合中,以下操作将创建集合:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result=db.addrss.insert_one({<<your json >>)

5. 更新数据

以下是更新数据的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result=db.address.update_one(
{"building": "129",
{"$set": {"address.street": "MG Road"}}
)

6. 删除数据

要从集合中删除所有文档,请使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result=db.restaurants.delete_many({})

02 Pandas

下面展示一些示例,以便你开始使用Pandas。这些示例取自现实世界的数据,数据上自然会有一些瑕疵。Pandas是受R数据框架概念启发形成的框架。

要从CSV文件中读取数据,请使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
broken_df=pd.read_csv('data.csv')

要查看前三行,请使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
broken_df[:3]

要选择列,请使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fixed_df['Column Header']

要绘制列,请使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fixed_df['Column Header'].plot()

要获取数据集中的最大值,请使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MaxValue=df['Births'].max() where Births is the column header

假设数据集中有另一列名为Name,Name的命令与最大值相关联。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MaxName=df['Names'][df['Births']==df['Births'].max()].values

在Pandas中还有许多其他方法,例如 sortgroupbyorderby,它们对于结构化数据的使用很有用。此外,Pandas还有一个现成的适配器,适用于MongoDB、Google Big Query等流行数据库。

接下来将展示一个与Pandas相关的复杂示例。在不同列值的X数据框中,查找root列分组的平均值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for col in X.columns:
  if col != 'root':
    avgs = df.groupby([col,'root'], as_index=False)['floor'].aggregate(np.mean)
    for i,row in avgs.iterrows():
    k = row[col]
    v = row['floor']
    r = row['root']
    X.loc[(X[col] == k) & (X['root'] == r), col] = v2.
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Mongoing中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据处理入门干货:MongoDB和pandas极简教程
导读:MongoDB是一个开源文档数据库,旨在实现卓越的性能、易用性和自动扩展。Pandas是受R数据框架概念启发形成的框架。
IT阅读排行榜
2019/04/25
2.7K0
毕业设计:爬虫及数据分析
指导老师跟我说,本科毕业设计不需要创新,但是工作量一定要够,我就知道又要搞事情了。
用户2145057
2018/09/12
4.9K0
毕业设计:爬虫及数据分析
Python操作MongoDB - 极简教程
Python 连接 MongoDB 安装PyMongo模块 1 pip install pymongo 使用MongoClient建立连接 12345 from pymongo import MongoClient# 以下为三种建立连接的方式#client = MongoClient()#client = MongoClient('localhost', 27017)#client = MongoClient('mongodb://localhost:27017/') 获取数据库 123 # 以下是两种
KangVcar
2018/07/06
7650
分布式文件存储的数据库MongoDB教程整理
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoDB 官网地址:https://www.mongodb.com/ MongoDB 官方英文文档:https://docs.mongodb.com/manual/ MongoDB 各平台下载地址:https://www.mongodb.com/download-center#community
SmileNicky
2019/01/17
2.4K0
MongoDB 数据库的学习与使用详解
​ MongoDB 数据库是一种 NOSQL 数据库,NOSQL 数据库不是这几年才有的,从数据库的初期发展就以及存在了 NOSQL 数据库。数据库之中支持的 SQL 语句是由 IBM 开发出来的,并且最早就应用在了 Oracle 数据库,但是 SQL 语句的使用并不麻烦,就是几个简单的单词:SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY,但是在这个时候有人开始反感于编写 SQL 操作。于是有一些人就开始提出一个理论 —— 不要去使用 SQL ,于是最早的 NOSQL 概念产生了。可是后来的发展产生了一点变化,在 90 年代到 2010 年之间,世界上最流行的数据库依然是关系型数据库,并且围绕着关系型数据库开发出了大量的程序应用。后来又随着移动技术(云计算、大数据)的发展,很多公司并不愿意去使用大型的厂商数据库 —— Oracle 、DB2,因为这些人已经习惯于使用 MYSQL 数据库了,这些人发现在大数据以及云计算的环境下,数据存储受到了很大的挑战,那么后来就开始重新进行了 NOSQL 数据库的开发,但是经过长期的开发,发现 NOSQL 数据库依然不可能离开传统的关系型数据库 (NOSQL = Not Only SQL)。
星哥玩云
2022/08/18
2.2K0
MongoDB 数据库的学习与使用详解
【Python全栈100天学习笔记】Day40 MongoDB安装配置及应用
MongoDB是2009年问世的一个面向文档的数据库管理系统,由C++语言编写,旨在为Web应用提供可扩展的高性能数据存储解决方案。虽然在划分类别的时候后,MongoDB被认为是NoSQL的产品,但是它更像一个介于关系数据库和非关系数据库之间的产品,在非关系数据库中它功能最丰富,最像关系数据库。
天道Vax的时间宝藏
2022/04/02
4590
玩转mongodb(三):mongodb项目实战(初战)
插入:对应MongoDB中脚本的db.getCollection('person').insert({"name":"ryan1","age":21})
壮壮熊
2022/08/18
7650
玩转mongodb(三):mongodb项目实战(初战)
MongoDB常用命令大全,概述、备份恢复
还记得MySQL、Redis、PostgreSQL、ClickHouse常用命令及操作吗?如果忘记可以到这里重新温习:MySQL常用命令,Redis常用命令,PostgreSQL常用命令,ClickHouse常用命令,启动、关闭、连接、备份、导入导出。本文重点讲述MongoDB常用命令。
寻求出路的程序媛
2024/07/17
1.6K0
如何在CentOS 7上安装MongoDB
MongoDB是一个面向文档的数据库,是免费的开源软件。它被归类为NoSQL数据库,因为它不依赖于传统的基于表的关系数据库结构。相反,它使用类似JSON的文档和动态模式。与关系数据库不同,MongoDB在向数据库添加数据之前不需要预定义的模式。您可以随时根据需要随时更改架构,而无需使用更新的架构设置新数据库。
彼岸轮回
2018/10/10
3.1K1
Python也能操作MongoDB数据库
作为非关系数据库的代表--Mongo,可以说是让人又爱又恨,让人爱的是它的便捷性,让人恨的是它的配置,实在是坑多。那么今天我们就来深入剖析它吧。
Python进阶者
2021/08/20
7270
快速学习-mongodb安装与入门
MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装。
cwl_java
2020/01/14
9890
快速学习-mongodb安装与入门
pymongo:Python下 MongoDB 的存储操作
pymongo 3.x版本中,insert()方法官方已不推荐使用,推荐使用insert_one()和insert_many()将插入单条和多条记录分开。
luckpunk
2023/09/29
4400
MongoDB数据增删改查
学习数据库简单的就是掌握使用增删改查,MongoDB也不例外,接下来简单学习一下MongoDB的增删改查!
十月梦想
2018/08/29
8610
MongoDB系列1-入门
最近爬虫获取到的数据想存储到MongoDB中,先入门下咯\color{red}{MangoDB}
皮大大
2021/03/01
2.2K0
MongoDB系列1-入门
PHP操作MongoDB数据库
MongoDB (名称来自”humongous”) 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。
阳光岛主
2019/02/18
2.1K0
MongoDB数据导入与导出
导出文档 mongoexport -d Vshuo -c post -o D:/post.json -d 数据库名 -c 集合名词 -o 导出的路径 导入文档 mongoimport --db info --collection student --drop --file /db.json -db test  想往哪个数据库里面导入 --collection restaurants  想往哪个集合中导入 --drop 把集合清空 --file primer-dataset.json  哪个文件
十月梦想
2018/08/29
9240
MongoDB导入Shapefile数据
两种解决方案: 一、将整个shapefile转为GeoJSON然后直接导入mongoDB数据库中 首先,将shapefile数据转为WGS84地理坐标,然后使用GDAL的命令行工具ogr2ogr进行格式的转换,转换命令如下: ogr2ogr -f geoJSON continents.json continents.shp 删除生成JSON文件的前两行{ "type": "FeatureCollection",和最后一行}。 最后,使用mongodb的mongoimport工具进行导入: mongoimport --db world --collection continents < continents.json 这样子整个shapefile文件在mongodb中是以一个document存在的。
卡尔曼和玻尔兹曼谁曼
2019/01/22
2K0
MongoDB简易教程mongo简介及应用场景安装和使用mongodbPHP中操作mongo数据库python中操作mongo数据库
传统数据库中,我们要操作数据库数据都要书写大量的sql语句,而且在进行无规则数据的存储时,传统关系型数据库建表时对不同字段的处理也显得有些乏力,mongo应运而生,而且ajax技术的广泛应用,json格式的广泛接受,也使得mongo更贴近开发人员。 mongo简介及应用场景 MongoDB是一个面向文档的非关系型数据库(NoSQL),使用json格式存储。Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所
若与
2018/04/25
1.7K0
MongoDB简易教程mongo简介及应用场景安装和使用mongodbPHP中操作mongo数据库python中操作mongo数据库
数据分析从零开始实战 (五)
本文偏长(4k+字),实用性高,老表建议先收藏,然后转发朋友圈,然后吃饭、休闲时慢慢看,反复看,反复记,反复练。
龙哥
2020/02/14
2.1K0
数据分析从零开始实战 (五)
Nodejs学习笔记(十)--- 与MongoDB的交互(mongodb/node-mongodb-native)、MongoDB入门
简介   MongoDB   开源,高性能的NoSQL数据库;支持索引、集群、复制和故障转移、各种语言的驱动程序;高伸缩性;   NoSQL毕竟还处于发展阶段,也有说它的各种问题的:http://coolshell.cn/articles/5826.html     官网地址:http://www.mongodb.org/   API Docs:http://docs.mongodb.org/manual/   node-mongodb-native   mongodb的nodejs驱动;   GitHu
Porschev
2018/03/28
1.2K0
Nodejs学习笔记(十)--- 与MongoDB的交互(mongodb/node-mongodb-native)、MongoDB入门
相关推荐
数据处理入门干货:MongoDB和pandas极简教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验