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

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

作者头像
MongoDB中文社区
修改2019-09-27 18:34:56
1.7K0
修改2019-09-27 18:34:56
举报
文章被收录于专栏:MongoDB中文社区
MongoDB中文社区(微信公众号:mongoing-mongoing)
MongoDB中文社区(微信公众号:mongoing-mongoing)

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

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

01 Python版本MongoDB

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

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

1. 将数据导入集合

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

代码语言:javascript
复制
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
复制
import MongoClient from pymongo.
Client11 = MongoClient()

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

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

代码语言:javascript
复制
Client11 = MongoClient("mongodb://myhostname:27017")

3. 访问数据库对象

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

代码语言:javascript
复制
Db11 = client11.primer
db11 = client11['primer']

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

代码语言:javascript
复制
Coll11 = db11.dataset
coll = db11['dataset']

4. 插入数据

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

代码语言:javascript
复制
result=db.addrss.insert_one({<<your json >>)

5. 更新数据

以下是更新数据的方法:

代码语言:javascript
复制
result=db.address.update_one(
{"building": "129",
{"$set": {"address.street": "MG Road"}}
)

6. 删除数据

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

代码语言:javascript
复制
result=db.restaurants.delete_many({})

02 Pandas

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

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

代码语言:javascript
复制
import pandas as pd
broken_df=pd.read_csv('data.csv')

要查看前三行,请使用:

代码语言:javascript
复制
broken_df[:3]

要选择列,请使用:

代码语言:javascript
复制
fixed_df['Column Header']

要绘制列,请使用:

代码语言:javascript
复制
fixed_df['Column Header'].plot()

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

代码语言:javascript
复制
MaxValue=df['Births'].max() where Births is the column header

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

代码语言:javascript
复制
MaxName=df['Names'][df['Births']==df['Births'].max()].values

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

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

代码语言:javascript
复制
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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档