天天看點

Python3資料分析——(2)Pandas快速入門基礎

Pandas基礎

Pandas的名稱來自于面闆資料(panel data)和Python資料分析(data analysis)。

Pandas是一個強大的分析結構化資料的工具集,基于NumPy建構,提供了進階資料結構和資料操作工具,它是使Python成為強大而高效的資料分析環境的重要因素之一。

Pandas特點:

1.一個強大的分析和操作大型結構化資料集所需的工具集

2.基礎是NumPy,提供了高性能矩陣的運算

3.提供了大量能夠快速便捷地處理資料的函數和方法

4.應用于資料挖掘,資料分析

5.提供資料清洗功能

Pandas的資料結構:

import pandas as pd

Pandas有兩個最主要也是最重要的資料結構: Series 和 DataFrame

Pandas中使用頻率較低的一種資料結構:Panel(Pandas 決定在未來的版本中将 Panel 移除,轉而使用 MultiIndex DataFrame 來表示多元資料結構)

Pandas的對齊運算:

是資料清洗的重要過程,可以按索引對齊進行運算,如果沒對齊的位置則補NaN,最後也可以填充NaN

一、Series資料結構(一維資料)

1、簡要介紹:

(1)Series是一種類似于一維數組的對象,由一組資料(各種NumPy資料類型)以及一組與之對應的索引(資料标簽)組成。

(2)類似一維數組的對象,由資料和索引組成(索引(index)在左,資料(values)在右,索引是自動建立的)

(3)Series 是 Pandas 中最基本的一維資料形式。其可以儲存整數、浮點數、字元串等形式的資料。Series 的建立方法如下:s = pandas.Series(data, index=index);其中,data 可以是字典、numpy 裡的 ndarray 對象等。index 是資料索引,索引是 pandas 資料結構中的一大特性,它主要的功能是幫助我們更快速地定位資料。

2、通過字典(dict)建構Series

資料值是 10, 20, 30,索引為 a, b, c 。

我們也可以直接通過 index= 參數來設定新的索引,如下

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

3、通過ndarray建構Series

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

(1)指定了 index 的值

(2)非人為指定索引值時,Pandas 會預設從 0 開始設定索引值。

(3)從一維資料 Series 中傳回某一個值時,可以直接通過索引完成

(4)對Series 直接進行運算

(5)Series的對齊運算

注意:填充未對齊的資料進行運算

使用add, sub, div, mul的同時,通過fill_value指定填充值,未對齊的資料将和填充值做運算

示例代碼:print(s1)

print(s2)

s1.add(s2, fill_value = -1)

二、DataFrame資料結構(二維資料)

1、簡要介紹

(1)DataFrame是一個表格型的資料結構,它含有一組有序的列,每列可以是不同類型的值。DataFrame既有行索引也有列索引,它可以被看做是由Series組成的字典(共用同一個索引),資料是以二維結構存放的。

(2)特點:類似多元數組/表格資料 (如,excel, R中的data.frame);每列資料可以是不同的類型;索引包括列索引和行索引

(3)DataFrame 可以用于儲存多種類型的輸入:

  • 一維數組、清單、字典或者 Series 字典。
  • 二維 numpy.ndarray。
  • 結構化的 ndarray。
  • 一個 Series。
  • 另一個 DataFrame。

2、通過字典(dict)建構DataFrame

(1)通過Series的字典建構DataFrame

行索引為 a, b, c, d ,而列索引為 one, two

(2)通過ndarray或list的字典建構DataFrame

3、通過帶字典的清單建構DataFrame

4、DataFrame.from_ 方法

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

5、DataFrame中列的選擇、删除和添加

在一維資料結構Series中,我們用 df['标簽']來選擇行。在二維資料DataFrame中,df['标簽']表示選擇列。

6、DataFrame的對齊運算

三、Panel資料結構(三維資料)

(1)Panel是Pandas中使用頻率較低的一種資料結構,但它是三維資料的重要容器。

(2)Panel data又稱面闆資料,它是計量經濟學中派生出來的一個概念。在計量經濟學中,資料大緻可分為三類:截面資料,時間序列資料,面闆資料。而面闆資料即是截面資料與時間序列資料綜合起來的一種資料類型。

簡單來講,截面資料指在某一時間點收集的不同對象的資料。而時間序列資料是指同一對象在不同時間點所對應的資料集合。

這裡引用一個城市和 GDP 關系的示例來解釋上面的三個概念:

截面資料:

  • 例如城市:北京、上海、重慶、天津在某一年的 GDP 分别為10、11、9、8(機關億元)。

時間序列資料:

  • 例如:2000、2001、2002、2003、2004 各年的北京市 GDP 分别為8、9、10、11、12(機關億元)。

面闆資料:

  • 2000、2001、2002、2003、2004 各年中國所有直轄市的 GDP 分别為(機關億元):北京市分别為 8、9、10、11、12;上海市分别為 9、10、11、12、13;天津市分别為 5、6、7、8、9;重慶市分别為 7、8、9、10、11。

(3)Panel 構成

在 Pandas 中,Panel 主要由三個要素構成:

  • items: 每個項目(item)對應于内部包含的 DataFrame。
  • major_axis: 每個 DataFrame 的索引(行)。
  • minor_axis: 每個 DataFrame 的索引列。

簡言之,在 Pandas 中,一個 Panel由多個 DataFrame 組成。

2、生成一個Panel

可以看到,wp 由 2 個項目、5個主要軸和4個次要軸組成。其中,主要軸由2000-01-01 到2000-01-05這5天組成的時間序列,次軸從A到D。

3、由于 Panel 在 Pandas 中的使用頻率遠低于 Series 和 DataFrame,是以 Pandas 決定在未來的版本中将 Panel 移除,轉而使用 MultiIndex DataFrame 來表示多元資料結構。

補充:Pandas統計計算和描述

#描述和彙總的方法

count 非Nan數量

describe 針對個列彙總統計

min和max 最大最小值

argmin、argmax 計算最大值或最小值對應的索引位置

quantile 計算樣本的分位數(0-1)

mean 均值

median 中位數

mad 平均絕對離差

var 樣本方差

std 樣本的标準差

skew 樣本值的偏度

kurt 樣本值的峰度

cumsum樣本值的累計和

注:

Pandas官網:

http://pandas.pydata.org/

Pandas官方文檔:

http://pandas.pydata.org/pandas-docs/stable/api.html

Pandas詳細學習教程:

https://www.yiibai.com/pandas/python_pandas_date_functionality.html