1. 程式人生 > >資料分析(三)

資料分析(三)

Pandas的資料結構

匯入pandas:

資料分析三劍客 numpy pandas matplotlib

# 三劍客
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series,DataFrame

1、Series

Series是一種類似於一維陣列的物件,由下面兩個部分組成:

  • index:相關的資料索引標籤

  • values:一組資料(ndarray型別)

    data資料, index索引

    s1 = Series([1,2,3,4]) s1 s1.index # 索引 s1.values list(‘abcd’) s2 = Series(data=[1,2,3,4],index=list(‘abcd’)) s2

    還可以用字典的方式去建立 數列

    Series({‘a’:1,‘b’:2,‘c’:3}) #a 1 #b 2 #c 3 #dtype: int64

1)Series的建立

兩種建立方式:

(1) 用列表形式建立

(2) 用字典形式建立

2)Series的索引和切片

顯式索引:

  • 使用index中的元素作為索引值
  • 使用.loc[‘索引名’](推薦)

示例:

  • 索引
  • 切片 注意,字元索引是閉區間 [start:end]
  • 取多個值

隱式索引:

  • 使用整數作為索引值
  • 使用.iloc[ 索引號 ](推薦)

示例:

  • 索引
  • 切片 注意,編號索引是左閉右開區間 [start,end)
  • 取多個值

3)Series的常用屬性和方法

可以把Series看成一個定長的有序字典

可以通過shape,size,index,values等得到series的屬性

可以通過head(),tail()快速檢視Series物件的樣式

s.head(2)看頭兩個 s.tail(1)看後一個

Series中如果值是None,會被轉成NaN。並且計算時會被當成0(ndarray不會)

可以使用pd.isnull(),pd.notnull(),或自帶isnull(),notnull() 函式檢測值為None或NaN的資料

另外 series物件有一個name屬性可以用來區分不同的series

4)Series的運算

(1) 適用於numpy的陣列運算也適用於Series

(2) Series之間的運算

  • 在運算中自動對齊不同索引的資料
  • 如果索引不對應,則補NaN(值和NaN相加的結果還是NaN,如果想要讓NaN的值當作0處理,可以用s1.add(s2,fill_value=0)來處理)