久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Pandas 數(shù)據(jù)結(jié)構(gòu)簡介

 ly88 2017-03-18
前段時間我說過我會寫一些關(guān)于 Pandas 的文章,,但是我卻一直沒有跟進(jìn)。然而,,本周兩位同事向我表達(dá)了他們對于Pandas的學(xué)習(xí)興趣,,因此我打算重新討論這個話題。

因為我覺得這是一個龐大的任務(wù),,所以下面我將分成三個部分來全面地介紹Pandas庫:

  • Part 1: Pandas數(shù)據(jù)結(jié)構(gòu)簡介,,該部分主要介紹該庫的兩個基本數(shù)據(jù)結(jié)構(gòu)—— Series 和 DataFrames。

  • Part 2: DataFrames的使用方法,,該部分主要介紹如何使用 DataFrames 的篩選,、過濾、合并,、聯(lián)合以及分組功能,。

  • Part 3: 利用Pandas處理 MovieLens 數(shù)據(jù)集,該部分主要利用前兩部分的內(nèi)容來回答關(guān)于 MovieLens 收視率數(shù)據(jù)的幾個基本分析的問題,。


如果你想跟著文章的內(nèi)容運行相應(yīng)代碼的話,,你可以在這里下載到相關(guān) CSV 數(shù)據(jù)和 MovieLens數(shù)據(jù),。(https://github.com/gjreda//tree/master/content/notebooks/data)

本篇文章的目的在于通過比較 Pandas與 SQL 之間的差異來介紹該庫的基本用法,。由于我的同事都非常熟悉 SQL 的語法,,所以我覺得這是一個易于被讀者所理解的寫作方法,。

如果你想要學(xué)習(xí)更多的 Pandas 知識,,你可以閱讀 Pandas作者撰寫的書籍《Python for Data Analysis》,。

Pandas是 Python中用于分析數(shù)據(jù)的常用開源庫,。Python 可以很好地預(yù)處理和加工數(shù)據(jù),,但是它無法很好地進(jìn)行數(shù)據(jù)分析——通常情況下你會利用 R 或者 SQL 來分析數(shù)據(jù),。有了 Pandas之后,,我們可以利用 Python 快速地進(jìn)行數(shù)據(jù)分析。

數(shù)據(jù)結(jié)構(gòu)
Pandas中引入了兩種新的數(shù)據(jù)結(jié)構(gòu)——SeriesDataFrame,,這兩種數(shù)據(jù)結(jié)構(gòu)都建立在NumPy的基礎(chǔ)之上,。
Series
Series是指一個類似于數(shù)組、列表或列變量的一維對象,,Series中每個條目都會被分配一個標(biāo)簽索引,。默認(rèn)情況下,每個條目都會收到一個從0到N之間的索引標(biāo)簽,,其中N等于Series的長度減一,。
Series可以直接轉(zhuǎn)換詞典格式的數(shù)據(jù),其中詞典的鍵值對應(yīng)Series中的索引值,。
你可以利用索引從Series中提取出特定的條目,。
或者你也可以利用布爾索引值來選取數(shù)據(jù),。
第二種方法可能看起來有點奇怪,所以讓我們更清楚地了解下它的邏輯——cities <>
我們還可以更改Series中的數(shù)值,。
如果你不確定Series中是否存在某個條目,,你可以利用 Python 代碼來檢測。
我們還可以對Series進(jìn)行數(shù)學(xué)運算和函數(shù)運算,。
此外你還可以匯總兩個Series,,這會返回兩個Series的并集,其中沒有共同索引的條目將會返回 NULL/NaN,。
由于兩個Series中沒有同時包含Austin,,Chicago和Portland,因此它們的返回值是 NULL/NaN,。

我們可以利用 isnull 和 notnull 函數(shù)來檢測 NULL 值,。
DataFrame

DataFrame是一種由列向量和行向量組成的數(shù)據(jù)結(jié)構(gòu),它類似于電子數(shù)據(jù)表,、數(shù)據(jù)庫表格和 R 語言中的 data.frame對象,。你也可以理解成DataFrame是由多個共享索引值的Series對象構(gòu)成的。

本文的剩下篇幅中,,我將主要介紹DataFrame的內(nèi)容,。

Reading Data

我們可以將 Python 中常用的數(shù)據(jù)結(jié)構(gòu)(如詞典列表)轉(zhuǎn)換成DataFrame,其中通過控制columns的參數(shù)值可以調(diào)整變量的順序,。默認(rèn)情況下,,DataFrame會按字母順序?qū)ψ兞窟M(jìn)行排序。
更多情況下,,我們需要將數(shù)據(jù)集讀到DataFrame中,,接下來我們將介紹幾種常用的讀取數(shù)據(jù)的方法。

CSV

我們可以利用read.csv函數(shù)來讀取 CSV 文件,,其中read.csv函數(shù)默認(rèn)CSV數(shù)據(jù)集是以逗號分隔的,,你可以通過 sep 參數(shù)來控制分隔符的類別。
該函數(shù)默認(rèn)將文件中的第一行設(shè)定為列變量的標(biāo)題,,我們還可以設(shè)定 header=None 來手動設(shè)定列標(biāo)題,。

Pandas的reader系列函數(shù)中有許多可控參數(shù),用于控制讀取數(shù)據(jù)時的其他設(shè)定,。

大家可以參閱IO文檔來熟悉文件讀取/寫入功能,。(http://pandas./pandas-docs/stable/io.html)


Excel
你們討厭VBA嗎?我非常討厭它,,我相信你也會討厭它的,。幸運的是,pandas允許我們讀寫 Excel 文件,所以我們可以利用Python處理完數(shù)據(jù)后再導(dǎo)出Excel文件,,這樣可以規(guī)避使用煩人的VBA來處理數(shù)據(jù),。
讀取Excel文件需要安裝xlrd庫,我們可以利用pip工具來安裝它(pip install xlrd),。

Database

Pandas還可以直接從數(shù)據(jù)庫中讀寫DataFrame文件,你只需要利用pandas.io模塊中的read_sql或to_sql函數(shù)來創(chuàng)建一個連接數(shù)據(jù)庫的對象即可,。


需要注意的是,,to_sql直接調(diào)用INSERT INTO語句,因此數(shù)據(jù)的傳輸速度比較慢,。如果你想將一個大型DataFrame寫入數(shù)據(jù)庫中,,最好先導(dǎo)出CSV文件然后再導(dǎo)入數(shù)據(jù)庫中。



Clipboard

相比于直接將查詢結(jié)果插入DataFrame中,,我更傾向于從剪貼板中讀取數(shù)據(jù),。Python可以很好地處理剪貼板中的分隔符數(shù)據(jù),你可以控制sep參數(shù)來設(shè)定數(shù)據(jù)分隔符,。



URL

此外,,我們還可以利用read_table函數(shù)直接從 URL 鏈接中讀取數(shù)據(jù)。



Google Analytics

Pandas還整合了 Google Analytics 的API接口,,但是需要進(jìn)行一些設(shè)置,。本文沒有介紹這些內(nèi)容,你可以參閱文章1(http://blog./posts/pandas-google-analytics.html)和文章2(https://quantabee./2012/12/17/google-analytics-pandas/),。


原文鏈接:http:///2013/10/26/intro-to-pandas-data-structures/

原文作者:Greg Reda

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多