數據分析必備利器——《Pandas 使用教程》

2022-01-08 藍橋雲課精選

Pandas 是非常著名的開源數據處理庫,我們可以通過它完成對數據集進行快速讀取、轉換、過濾、分析等一系列操作。除此之外,Pandas 擁有強大的缺失數據處理與數據透視功能,可謂是數據預處理中的必備利器。這是 Pandas 使用教程的第 1 章節,將學會安裝它,並了解 Pandas 的數據結構。

python2.7

Xfce 終端

ipython 終端

本課程難度為一般,屬於初級級別課程,適合具有 Python 基礎,並對使用 Pandas 進行數據處理感興趣的用戶。

學習本課程之前,你可以先自行下載官方文檔(英文)作為輔助學習資料。http://pandas.pydata.org/pandas-docs/stable/pandas.pdf

Pandas 目前支持 Python 2.7, 3.4, 3.5, 和 3.6 版本。最簡單的安裝方式是通過 pip 完成。你可以打開終端,鍵入以下命令。

sudo pip install pandas

安裝過程大約持續 1 分鐘作用,系統會自動下載 numpy 等依賴包。注意,本課程的全部內容基於 Pandas 0.20.3 版本,如果和你當前學習的版本存在不兼容,請通過以下命令安裝 0.20.3 版本。

sudo pip install -v pandas==0.20.3

在正式學習使用 Pandas 進行數據預處理之前,我們先來了解 Pandas 的數據結構。Pandas 大致擁有 3 類數據結構,分別是一維數據 Series、二維數據 DataFrame、以及三維數據 Panel(目前依舊被融入 MultiIndex DataFrame 多維數據)。下面的內容均在 iPython 交互式終端中演示,你可以通過在線環境左下角的應用程式菜單 > 附件打開。如果你在本地進行練習,推薦使用 Jupyter Notebook 環境。

Series 是 Pandas 中最基本的 1 維數據形式。其可以儲存整數、浮點數、字符串等形式的數據。Series 的新建方法如下:

s = pandas.Series(data, index=index)

其中,data 可以是字典、numpy 裡的 ndarray 對象等。index 是數據索引,索引是 pandas 數據結構中的一大特性,它主要的功能是幫助我們更快速地定位數據,這一點後面會談到。

下面,我們將把不同類型的數據轉換為為 Series。首先是字典類型。

import pandas as pd

d = {'a' : 10, 'b' : 20, 'c' : 30}
print pd.Series(d)

這裡,數據值是 10, 20, 30,索引為 a, b, c 。我們可以直接通過 index= 參數來設置新的索引。

import pandas as pd
d = {'a' : 10, 'b' : 20, 'c' : 30}

s = pd.Series(d, index=['b', 'c', 'd', 'a'])
print s

你會發現,pandas 會自動匹配人為設定的索引值和字典轉換過來的索引值。而當索引無對應值時,會顯示為 NaN 缺失值。

ndarray 是著名數值計算包 numpy 中的多維數組。我們也可以將 ndarray 直接轉換為 Series。

import pandas as pd
import numpy as np

data = np.random.randn(5) # 一維隨機數
index = ['a', 'b', 'c', 'd', 'e'] # 指定索引

s = pd.Series(data, index)
print s

上面的兩個例子中,我們都指定了 index 的值。而當我們非人為指定索引值時,Pandas 會默認從 0 開始設置索引值。

s = pd.Series(data)
print s

當我們需要從一維數據 Series 中返回某一個值時,可以直接通過索引完成。

import pandas as pd
import numpy as np

data = np.random.randn(5) # 一維隨機數
index = ['a', 'b', 'c', 'd', 'e'] # 指定索引

s = pd.Series(data, index)
print s
print s['a']

除此之外,Series 是可以直接進行運算的。例如:

import pandas as pd
import numpy as np

data = np.random.randn(5) # 一維隨機數
index = ['a', 'b', 'c', 'd', 'e'] # 指定索引

s = pd.Series(data, index)
print s
print 2*s
print s-s

DataFrame 是 Pandas 中最為常見、最重要且使用頻率最高的數據結構。你可以想到它箱型為電子表格或 SQL 表具有的結構。DataFrame 可以被看成是以 Series 組成的字典。它和 Series 的區別在於,不但具有行索引,且具有列索引。DataFrame 可以用於儲存多種類型的輸入:

一維數組、列表、字典或者 Series 字典。

二維 numpy.ndarray。

結構化的 ndarray。

一個 Series。

另一個 DataFrame。

4.1 Series 字典 -> DataFrame

import pandas as pd

# 帶 Series 的字典
d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d) # 新建 DataFrame
print df

我們可以看到,這裡的行索引為 a, b, c, d ,而列索引為 one, two。

4.2 ndarrays 或 lists 字典 -> DataFrame

import pandas as pd

# 列表構成的字典
d = {'one' : [1, 2, 3, 4], 'two' : [4, 3, 2, 1]}

df1 = pd.DataFrame(d) # 未指定索引
df2 = pd.DataFrame(d, index=['a', 'b', 'c', 'd']) # 指定索引

print df1
print df2

注意觀察它們之間的不同。

import pandas as pd

# 帶字典的列表
d = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]

df = pd.DataFrame(d)

print df

pandas 的 DataFrame 下面還有 4 個以 from_ 開頭的方法,這也可以用來創建 Dataframe。例如:

import pandas as pd

d = [('A', [1, 2, 3]), ('B', [4, 5, 6])]
c = ['one', 'two', 'three']

df = pd.DataFrame.from_items(d, orient='index', columns=c)

print df

接下來,我們延續上面的 4.4 裡面的數據來演示。在一維數據結構 Series 中,我們用 df['標籤'] 來選擇行。而到了二維數據 DataFrame 中,df['標籤'] 表示選擇列了。例如:

刪除列的方法為 df.pop('列索引名'),例如:

添加列的方法未 df.insert(添加列位置索引序號, '添加列名', 數值),例如:

df.insert(3, 'four', [10, 20])
print df

相關焦點

  • 數據分析利器 pandas 系列教程(一):從 Series 說起
    從今天開始連載數據分析利器 pandas 的系列文章,推薦 Pycharm 集成 Python3.6+;無論你是零基礎小白,還是已經上手過 pandas,你都可以在本次系列中學到一些乾貨。摘自百度百科:pandas 是基於 numpy 的一種工具,該工具是為了解決數據分析任務而創建的。
  • 數據分析利器 pandas 系列教程(二):強大的 DataFrame
    在上一篇文章 數據分析利器 pandas 系列教程(一):從 Series 說起  中:詳細介紹了 pandas 基礎數據結構 Series,今天說說另一種數據結構 DataFrame。通過列創建import pandas as pd#沒有設置行索引 index,取默認值df = pd.DataFrame({'name':['Bob','Alice','Joe']*3,               'sex':['male','female','male']*3,               'course':['math','english
  • 數據分析利器 pandas 系列教程(四):對比 sql 學 pandas
    pandas 教程的第四篇,本篇將對比 sql 語言,學習 pandas 中各種類 sql 操作,文章篇幅較長,可以先收藏後食用,但不可以收藏後積灰~為了方便,依然以下面這個 DataFrame 為例,其變量名為 df,設有一同樣結構的 SQL 表,表名為 tb:
  • 國外大神製作的超棒 Pandas 可視化教程
    Pandas 是一個開源、能用於數據操作和分析的 Python 庫。1.加載數據加載數據最方便、最簡單的辦法是我們能一次性把表格(CSV 文件或者 EXCEL 文件)導入。然後我們能用多種方式對它們進行切片和裁剪。Pandas 可以說是我們加載數據的完美選擇。
  • Python 數據分析:Pandas 進階
    概述我們在上一篇文章初識 Pandas中已經對 Pandas 作了一些基本介紹,本文我們進一步來學習 Pandas 的一些使用。2. 缺失項在現實中我們獲取到的數據有時會存在缺失項問題,對於這樣的數據,我們通常需要做一些基本處理,下面我們通過示例來看一下。
  • Python 數據處理庫 pandas 進階教程
    前言本文緊接著前一篇的入門教程,會介紹一些關於pandas的進階知識。建議讀者在閱讀本文之前先看完pandas入門教程。 同樣的,本文的測試數據和源碼可以在這裡獲取: Github:pandas_tutorial 。數據訪問在入門教程中,我們已經使用過訪問數據的方法。這裡我們再集中看一下。
  • Python 數據處理庫 pandas 入門教程
    本文是對它的一個入門教程。pandas提供了快速,靈活和富有表現力的數據結構,目的是使「關係」或「標記」數據的工作既簡單又直觀。它旨在成為在Python中進行實際數據分析的高級構建塊。入門介紹pandas適合於許多不同類型的數據,包括:由於這是一個Python語言的軟體包,因此需要你的機器上首先需要具備Python語言的環境。
  • 大數據分析Python NumPy庫使用教程
    目前,這是我們數據工程專業課程中的關於算法複雜性的課程。 我將在大數據分析Python NumPy庫使用教程中學到什麼? 大數據分析Python NumPy庫使用教程為數據工程師提供有關NumPy的從零開始的培訓。
  • 數據科學 | 從 Pandas 小白到 Pandas 能手
    在本文中,作者從 Pandas 的簡介開始,一步一步講解了 Pandas 的發展現狀、內存優化等問題。這是一篇最佳實踐教程,既適合用過 Pandas 的讀者,也適合沒用過但想要上手的小白。通過本文,你將有望發現一到多種用 pandas 編碼的新方法。Pandas 發展現狀;內存優化;索引;方法鏈;隨機提示。
  • Pandas 數據處理|Datetime 時間模塊在 Pandas 中的使用
    Datatime 作為 Python 中的時間模塊類型,處理時間有關數據是非常方便的, Pandas 作為數據分析程序包同樣也支持 DataTime 數據機制,例如1,函數 to_datetime() 將數據列表中的 Series 列轉化為 datetime 類型,#Convert the type to datetimeapple.Date =
  • 100 個 pandas 數據分析函數總結
    (點擊上方快速關注並設置為星標,一起學Python)來源:數據分析1480
  • 這是 Pandas 最詳細教程了
    有一個用於數據科學的包絕對是必需的,它就是 pandas。pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。
  • Pandas 數據處理 | Datetime 時間模塊在 Pandas 中的使用
    Datatime 作為 Python 中的時間模塊類型,處理時間有關數據是非常方便的, Pandas 作為數據分析程序包同樣也支持 DataTime 數據機制,例如1,函數 to_datetime() 將數據列表中的 Series 列轉化為 datetime 類型,#Convert the type to datetimeapple.Date
  • Pandas 數據結構 - Series
    Pandas Series 類似表格中的一個列(column),類似於一維數組,可以保存任何數據類型。
  • 史上最全Pandas 教程!
    有一個用於數據科學的包絕對是必需的,它就是 pandas。pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。pandas 相當於 python 中 excel:它使用表(也就是 dataframe),能在數據上做各種變換,但還有其他很多功能。如果你早已熟知 python 的使用,可以直接跳到第三段。
  • 5分鐘掌握Pandas GroupBy
    Pandas是非常流行的python數據分析庫,它有一個GroupBy函數,提供了一種高效的方法來執行此類數據分析。在本文中,我將簡要介紹GroupBy函數,並提供這個工具的核心特性的代碼示例。數據在整個教程中,我將使用在openml.org網站上稱為「 credit-g」的數據集。該數據集由提出貸款申請的客戶的許多功能和一個目標變量組成,該目標變量指示信貸是否還清。
  • 用 Pandas 讀寫網頁中的 HTML 表格數據
    我們可以使用HTML的<table>標籤來呈現表格數據。Pandas 數據分析庫提供了read_html()和to_html()之類的功能,因此我們可以將數據導入和導出到DataFrames。在本文中,我們將學習如何從HTML文件讀取表格數據並將其加載到Pandas DataFrame中。我們還將學習如何將數據從Pandas DataFrame寫入HTML文件。
  • 通過 SQL 查詢學習 Pandas 數據處理
    ://shzhangji.com/cnblogs/2017/07/23/learn-pandas-from-a-sql-perspective/Pandas 是一款廣泛使用的數據處理工具。結合 NumPy 和 Matplotlib 類庫,我們可以在內存中進行高性能的數據清洗、轉換、分析及可視化工作。雖然 Python 本身是一門非常容易學習的語言,但要熟練掌握 Pandas 豐富的 API 接口及正確的使用方式,還是需要投入一定時間的。對於數據開發工程師或分析師而言,SQL 語言是標準的數據查詢工具。
  • Pandas 數據類型操作
    本文總結了 Pandas 中進行數據類型轉換的三種基本方法,同時介紹了基於數據類型取數的方法:使用 Pandas 提供的函數如 to_numeric()、to_datetime() 等進行轉化一、Pandas、Python、Numpy 各自支持的數據類型 下表中展示的是 Pandas
  • Pandas 數據分析: 3 種方法實現一個實用小功能
    Pandas 的強大體現在其簡潔,解決一些數據分析問題非常方便。