python神器pandas_Python数据处理神器,pandas入门必需理解的核心内容
在 Python 中做處理數(shù)據(jù),那么必須要使用 pandas ,否則你根本做不到'人生苦短,我學(xué)Python'。
最近發(fā)生了一件小事情,讓我意識到許多人沒有系統(tǒng)掌握 pandas 。我的一位同事在使用 pandas 處理一份數(shù)據(jù)時,總是忘記應(yīng)該用 pandas 中的哪些方法做處理,每次都要到網(wǎng)上搜索一遍,而稍微復(fù)雜點的處理完全做不出來。
因此,本文介紹 pandas 的核心概念,每個概念配上形象的圖表,讓你深刻理解他們。日后你會發(fā)現(xiàn)這些概念會幫助你更快學(xué)會其他知識。
本文概要:
pandas 3大結(jié)構(gòu):DataFrame、Series、Index(MultiIndex)
在交互式環(huán)境下處理數(shù)據(jù)
就是一個表格
pandas 是以數(shù)據(jù)表格作為概念而做成的數(shù)據(jù)處理分析包,因此,通過表格形象去理解 pandas 是最適合不過的。
DataFrame
DataFrame 中文叫'數(shù)據(jù)幀',他以表格的形式來裝載數(shù)據(jù)。DataFrame 是處理數(shù)據(jù)的起點。 比如,有如下一份 csv 文件,內(nèi)容如下:
我們通過 pandas 把 csv 文件的數(shù)據(jù)加載為 DataFrame 。
import pandas as pd ,為了方便使用,一般習(xí)慣導(dǎo)入的時候,把 pandas 命名為 pd
pd.read_csv('data.csv') , 從 csv 加載數(shù)據(jù)到 DataFrame。其中有許多 pd.read_xxx 的方法,用于其他方式讀取數(shù)據(jù)。
我們來看看 DataFrame 是什么樣子的。
中間的區(qū)域叫 values ,因此我們可以通過 df.values 獲取這個值區(qū)域的數(shù)組。
平常處理數(shù)據(jù)的過程中,一般不需要把這個值區(qū)域讀取出來使用。下面會看到如何批量獲取一列或一行數(shù)據(jù)。
Series
Series 叫'系列',上圖從 DataFrame 輸出可以看到其就是一個表格形式。以此類推,那么 Series 就是表格中的一列。
如圖,這個 DataFrame 有3列,也就是有3個 Series 。
每個 Series 都有一些信息,比如,名字、值。
那怎么獲取一列的數(shù)據(jù)?
通過 DataFrame['列名字'] 即可訪問指定列 。本文重點是說明 pandas 的結(jié)構(gòu),而非代碼實現(xiàn)。下一章會詳細(xì)說明怎樣高效靈活選擇數(shù)據(jù)。
Index
Index 中文叫'索引',許多人都對 DataFrame 和 Series 很熟悉,但卻忽視了 Index。這是許多復(fù)雜處理的基礎(chǔ)。
細(xì)心的讀者可能會注意到,在之前我們看到的 DataFrame 輸出時,最左邊竟然多出一列,csv 數(shù)據(jù)中根本沒有這一列數(shù)據(jù)。 如下:
這多出來的一列就是 Index 。
由于我們是直接從 csv 中加載數(shù)據(jù)進(jìn)來,而沒有指定任何的列作為 Index ,因此 pandas 會默認(rèn)生成從0開始的一段數(shù)值作為 Index 。
那么 Index 有啥作用? 之前在說道 Series 的時候,我們已經(jīng)知道通過列名,可以讓你方便獲取一列數(shù)據(jù)。 同樣地,Index 是為了讓你方便獲取一行數(shù)據(jù)。 如下:
df.loc[1,:] , 表示從 DataFrame 中獲取行索引值是1的那一行數(shù)據(jù)。
不要以為只有行索引噢,其實我們之前通過列名字獲取一列數(shù)據(jù),同樣是通過 Index 得到的。
看一下怎么通過行列索引定位一個數(shù)據(jù):
通過 loc[行索引 , 列索引] ,即可定位一個數(shù)據(jù)重點:由于行和列索引都是 Index,因此我們只需要學(xué)會行索引的操作方式,那么同時就學(xué)會了列索引的操作方式。
可以設(shè)置指定的列作為索引:
通過 .set_index('名稱') ,讓'名稱'列作為 Index 。
df.loc['西瓜',:] 現(xiàn)在可以通過正常的索引訪問行數(shù)據(jù)
交互式環(huán)境
如果你用過 jupyter notebook ,那么相信你已經(jīng)非常熟悉交互式環(huán)境。下面我演示如何在 vs code 中使用 jupyter 那種單元格式的交互環(huán)境。這功能需要啟動 jupyter server,因此強烈建議你直接安裝 Anaconda 環(huán)境。直接去官方網(wǎng)站下載 exe ,安裝完成馬上就有完整的 Python 環(huán)境。
使用 #%% ,用于劃分每個單元格(cell)
我們可以單獨運行任何一個 cell 里面的代碼。
期間產(chǎn)生的變量都會一直保留。
在此環(huán)境下,你可以快速試驗各種代碼,因為 python 進(jìn)程一直運行著,你會發(fā)現(xiàn)這種方式比起一次次啟動 python 要快得多。如果你喜歡用 PyCharm ,那么這功能目前必需在專業(yè)版才可以使用。
總結(jié)
以上是生活随笔為你收集整理的python神器pandas_Python数据处理神器,pandas入门必需理解的核心内容的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘点击右键无删除怎么办 如何解决U盘右
- 下一篇: spss数据_spss数据分析软件