日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据处理入门干货:MongoDB和pandas极简教程

發(fā)布時間:2025/3/15 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据处理入门干货:MongoDB和pandas极简教程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

導(dǎo)讀:MongoDB是一個開源文檔數(shù)據(jù)庫,旨在實現(xiàn)卓越的性能、易用性和自動擴(kuò)展。Pandas是受R數(shù)據(jù)框架概念啟發(fā)形成的框架。本文的目的是展示一些示例,以便你開始使用MongoDB和Pandas。

作者:薩揚·穆霍帕迪亞(Sayan Mukhopadhyay)

如需轉(zhuǎn)載請聯(lián)系大數(shù)據(jù)(ID:hzdashuju)

01 Python版本MongoDB

MongoDB是一個開源文檔數(shù)據(jù)庫,旨在實現(xiàn)卓越的性能、易用性和自動擴(kuò)展。MongoDB確保不需要對象關(guān)系映射(ORM)來促進(jìn)開發(fā)。包含由字段和值對組成的數(shù)據(jù)結(jié)構(gòu)的文檔在MongoDB中稱為記錄(record)。這些記錄類似于JSON對象。字段的值可以包括其他文檔、數(shù)組和文檔數(shù)組。

{ "_id":ObjectId("01"), "address": { "street":"Siraj Mondal Lane", "pincode":"743145", "building":"129", "coord": [ -24.97, 48.68 ]}, "borough":"Manhattan",

1. 將數(shù)據(jù)導(dǎo)入集合

mongoimport可使用系統(tǒng)腳本或命令提示符將文檔放入數(shù)據(jù)庫的集合中。如果集合預(yù)先存在于數(shù)據(jù)庫中,操作將首先丟棄原始集合。

mongoimport --DB test --collection restaurants --drop --file ~/ downloads/primer-dataset.json

mongoimport命令連接到端口號為27017的本地運行的MongoDB實例。選項?--file?提供了導(dǎo)入數(shù)據(jù)的方法,此處為?~/downloads/primer-dataset.json

要將數(shù)據(jù)導(dǎo)入到運行在不同主機(jī)或端口上的MongoDB實例中,需要在?mongoimport?命令中特別指出主機(jī)名或端口,用選項?--host?或?--port

MySQL中有類似的命令load。

2. 使用pymongo創(chuàng)建連接

要創(chuàng)建連接,請執(zhí)行以下操作:

import MongoClient from pymongo. Client11 = MongoClient()

如果MongoClient無參數(shù),那么將默認(rèn)在端口27017上的本地端口上運行MongoDB實例。

可以指定一個完整的MongoDB URL來定義連接,其中包括主機(jī)和端口號。例如,下面的代碼會連接到一個MongoDB實例,該實例運行在?mongodbo.example.net?的27017端口上:

Client11 = MongoClient("mongodb://myhostname:27017")

3. 訪問數(shù)據(jù)庫對象

要將名為primer的數(shù)據(jù)庫分配給局部變量DB,可以使用以下任意一行代碼:

Db11 = client11.primer db11 = client11['primer']

集合對象可以通過字典或數(shù)據(jù)庫對象屬性進(jìn)行訪問,如以下兩個示例所示:

Coll11 = db11.dataset coll = db11['dataset']

4. 插入數(shù)據(jù)

你可以將文檔放入目前不存在的集合中,以下操作將創(chuàng)建集合:

result=db.addrss.insert_one({<<your json >>)

5. 更新數(shù)據(jù)

以下是更新數(shù)據(jù)的方法:

result=db.address.update_one( {"building": "129", {"$set": {"address.street": "MG Road"}} )

6. 刪除數(shù)據(jù)

要從集合中刪除所有文檔,請使用以下命令:

result=db.restaurants.delete_many({})

02 Pandas

下面展示一些示例,以便你開始使用Pandas。這些示例取自現(xiàn)實世界的數(shù)據(jù),數(shù)據(jù)上自然會有一些瑕疵。Pandas是受R數(shù)據(jù)框架概念啟發(fā)形成的框架。

要從CSV文件中讀取數(shù)據(jù),請使用以下命令:

import pandas as pd broken_df=pd.read_csv('data.csv')

要查看前三行,請使用:

broken_df[:3]

要選擇列,請使用:

fixed_df['Column Header']

要繪制列,請使用:

fixed_df['Column Header'].plot()

要獲取數(shù)據(jù)集中的最大值,請使用以下命令:

MaxValue=df['Births'].max() where Births is the column header

假設(shè)數(shù)據(jù)集中有另一列名為Name,Name的命令與最大值相關(guān)聯(lián)。

MaxName=df['Names'][df['Births']==df['Births'].max()].values

在Pandas中還有許多其他方法,例如?sortgroupby?和?orderby,它們對于結(jié)構(gòu)化數(shù)據(jù)的使用很有用。此外,Pandas還有一個現(xiàn)成的適配器,適用于MongoDB、Google Big Query等流行數(shù)據(jù)庫。

接下來將展示一個與Pandas相關(guān)的復(fù)雜示例。在不同列值的X數(shù)據(jù)框中,查找root列分組的平均值。

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. 關(guān)于作者:Sayan Mukhopadhyay擁有超過13年的行業(yè)經(jīng)驗,并與瑞信、PayPal、CA Technologies、CSC和Mphasis等公司建立了聯(lián)系。他對投資銀行、在線支付、在線廣告、IT架構(gòu)和零售等領(lǐng)域的數(shù)據(jù)分析應(yīng)用有著深刻的理解。他的專業(yè)領(lǐng)域是在分布式和數(shù)據(jù)驅(qū)動的環(huán)境(如實時分析、高頻交易等)中,實現(xiàn)高性能計算。

本文摘編自《Python高級數(shù)據(jù)分析:機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和NLP實例》,經(jīng)出版方授權(quán)發(fā)布。

延伸閱讀《Python高級數(shù)據(jù)分析》

推薦語:本書介紹高級數(shù)據(jù)分析概念的廣泛基礎(chǔ),以及最近的數(shù)據(jù)庫革命,如Neo4j、彈性搜索和MongoDB。本書討論了如何實現(xiàn)包括局部爬取在內(nèi)的ETL技術(shù),并應(yīng)用于高頻算法交易和目標(biāo)導(dǎo)向的對話系統(tǒng)等領(lǐng)域。還有一些機(jī)器學(xué)習(xí)概念的例子,如半監(jiān)督學(xué)習(xí)、深度學(xué)習(xí)和NLP。本書還涵蓋了重要的傳統(tǒng)數(shù)據(jù)分析技術(shù),如時間序列和主成分分析等。

總結(jié)

以上是生活随笔為你收集整理的数据处理入门干货:MongoDB和pandas极简教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。