python_pandas學習

原文連接python

numPy

pandas的數據結構介紹


簡介

Pandas [1] 是python的一個數據分析包,最初由AQR Capital Management於2008年4月開發,並於2009年末開源出來,目前由專一於Python數據包開發的PyData開發team繼續開發和維護,屬於PyData項目的一部分。Pandas最初被做爲金融數據分析工具而開發出來,所以,pandas爲時間序列分析提供了很好的支持。 Pandas的名稱來自於面板數據(panel data)和python數據分析(data analysis)。panel data是經濟學中關於多維數據集的一個術語,在Pandas中也提供了panel的數據類型。api

數據結構

  • Series:一維數組,與Numpy中的一維array相似。兩者與Python基本的數據結構List也很相近,其區別是:List中的元素能夠是不一樣的數據類型,而Array和Series中則只容許存儲相同的數據類型,這樣能夠更有效的使用內存,提升運算效率。
  • Time- Series:以時間爲索引的Series。
  • DataFrame:二維的表格型數據結構。不少功能與R中的data.frame相似。能夠將DataFrame理解爲Series的容器。如下的內容主要以DataFrame爲主。
  • Panel :三維的數組,能夠理解爲DataFrame的容器。

終端輸入數組

Jupyter Notebook

導入相關模塊數據結構

import numpy as np
import pandas as pd 
from pandas import Series, DataFrame

Series

Series是一種相似於一維數組的對象,它由一組數據(各類NumPy數據類型)以及一組與之相關的數據標籤(即索引)組成。函數

2018-04-12 18-13-41屏幕截圖.png

實質上是建立了一個 Series 對象,這也就說明了爲何會有index和values.
2018-04-12 18-15-00屏幕截圖.png工具

Series自定義索引
2018-04-12 18-21-57屏幕截圖.pngspa

Series自定義索引的另外一種方法
2018-04-12 18-29-25屏幕截圖.png3d

在這裏就引入另外一個概念「自動對齊」。自定義的索引會自動去尋找原來的索引,若是同樣的,就取出原來索引對應的值。
2018-04-12 18-36-22屏幕截圖.png
在 Pandas 中,若是沒有值,都對齊賦給 NaN。code

固然上面的代碼也能夠寫成這樣
2018-04-12 19-16-32屏幕截圖.png對象

Series判斷值是否爲空
2018-04-12 19-22-12屏幕截圖.png

DataFrame

一個Datarame表示一個表格,相似電子表格的數據結構,包含一個通過排序的列表集,它們沒一個均可以有不一樣的類型值(數字,字符串,布爾等等)。Datarame有行和列的索引;它能夠被看做是一個Series的字典(每一個Series共享一個索引)。

構建DataFrame最經常使用的方法——直接傳入一個由等長列表或NumPy數組組成的字典
2018-04-12 20-29-28屏幕截圖.png

若是指定了列序列,則DataFrame的列就會按照指定的順序進行排列
2018-04-12 20-37-14屏幕截圖.png

若是傳入的列在數據中找不到,就會產生NAN值
2018-04-12 20-40-57屏幕截圖.png

經過行、列進行獲取

  • 經過相似字典標記的方式或屬性的方式,能夠將DataFream的列獲取爲一個Series:
  • 同理行也能夠經過位置或名稱的方式進行獲取

2018-04-12 20-52-41屏幕截圖.png

基本功能


從新索引

Series的reindex將會根據新索引進行,若是某個索引值當前不存在,就引入缺失值
2018-04-12 21-48-18屏幕截圖.png

  • reindex的method選項

    • ffill或pad 向前填充值
    • bfill或backfill 向後填充值

對於DataFrame,reindex能夠修改行、列或者兩個均可以修改。若是僅傳入一個序列,則會從新索引行
2018-04-12 21-56-53屏幕截圖.png

  • reindex函數的參數
參數 說明
index 用做索引的新序列。既能夠是index實例,也能夠是其餘序列型python數據結構
method 插值方式
fill_value 在從新索引過程當中,須要引入缺失值時使用的代替值
limit 前向或後向填充時的最大填充量
level 在Multilndex的指定級別上匹配簡單索引,不然選取其子集
copy 默認爲true,不管如何都複製;若是爲false,則新舊相等就不復制

索引、選取和過濾

類型 說明
obj[val] 選取DataFrame的單個列或一組列。在一些特殊的狀況下會比較便利:布爾型數組(過濾行)
obj.ix[val] 選取DataFrame的單個行或一組行
obj.ix[:,val] 選取單個列或列子集
obj.ix[val1,val2] 同時選取行和列
reindex方法 將一個或多個軸匹配到新索引
xs方法 根據標籤選取單行或單列,並返回一個Series
icol、irow方法 根據整數位置選取單行或單列,並返回一個Series
get_value、set_value方法 根據行標籤或列標籤選取單個值
相關文章
相關標籤/搜索