python_pandas學習

原文鏈接

pandas的數(shù)據(jù)結構介紹


簡介

Pandas [1] 是python的一個數(shù)據(jù)分析包,最初由AQR Capital Management于2008年4月開發(fā),并于2009年底開源出來,目前由專注于Python數(shù)據(jù)包開發(fā)的PyData開發(fā)team繼續(xù)開發(fā)和維護,屬于PyData項目的一部分。Pandas最初被作為金融數(shù)據(jù)分析工具而開發(fā)出來,因此,pandas為時間序列分析提供了很好的支持。 Pandas的名稱來自于面板數(shù)據(jù)(panel data)和python數(shù)據(jù)分析(data analysis)。panel data是經濟學中關于多維數(shù)據(jù)集的一個術語,在Pandas中也提供了panel的數(shù)據(jù)類型。

數(shù)據(jù)結構

  • Series:一維數(shù)組,與Numpy中的一維array類似。二者與Python基本的數(shù)據(jù)結構List也很相近,其區(qū)別是:List中的元素可以是不同的數(shù)據(jù)類型,而Array和Series中則只允許存儲相同的數(shù)據(jù)類型,這樣可以更有效的使用內存,提高運算效率。

  • Time- Series:以時間為索引的Series。

  • DataFrame:二維的表格型數(shù)據(jù)結構。很多功能與R中的data.frame類似??梢詫ataFrame理解為Series的容器。以下的內容主要以DataFrame為主。

  • Panel :三維的數(shù)組,可以理解為DataFrame的容器。

終端輸入

Jupyter Notebook

導入相關模塊

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

Series

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

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

實質上是創(chuàng)建了一個 Series 對象,這也就說明了為什么會有index和values.


2018-04-12 18-15-00屏幕截圖.png

Series自定義索引


2018-04-12 18-21-57屏幕截圖.png

Series自定義索引的另一種方法


2018-04-12 18-29-25屏幕截圖.png

在這里就引入另一個概念“自動對齊”。自定義的索引會自動去尋找原來的索引,如果一樣的,就取出原來索引對應的值。


2018-04-12 18-36-22屏幕截圖.png

在 Pandas 中,如果沒有值,都對齊賦給 NaN。

當然上面的代碼也可以寫成這樣


2018-04-12 19-16-32屏幕截圖.png

Series判斷值是否為空


2018-04-12 19-22-12屏幕截圖.png

DataFrame

一個Datarame表示一個表格,類似電子表格的數(shù)據(jù)結構,包含一個經過排序的列表集,它們沒一個都可以有不同的類型值(數(shù)字,字符串,布爾等等)。Datarame有行和列的索引;它可以被看作是一個Series的字典(每個Series共享一個索引)。

構建DataFrame最常用的方法——直接傳入一個由等長列表或NumPy數(shù)組組成的字典


2018-04-12 20-29-28屏幕截圖.png

如果指定了列序列,則DataFrame的列就會按照指定的順序進行排列


2018-04-12 20-37-14屏幕截圖.png

如果傳入的列在數(shù)據(jù)中找不到,就會產生NAN值


2018-04-12 20-40-57屏幕截圖.png

通過行、列進行獲取

  • 通過類似字典標記的方式或屬性的方式,可以將DataFream的列獲取為一個Series:

  • 同理行也可以通過位置或名稱的方式進行獲取

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

基本功能


重新索引

Series的reindex將會根據(jù)新索引進行,如果某個索引值當前不存在,就引入缺失值


2018-04-12 21-48-18屏幕截圖.png
  • reindex的method選項
    • ffill或pad 向前填充值
    • bfill或backfill 向后填充值

對于DataFrame,reindex可以修改行、列或者兩個都可以修改。如果僅傳入一個序列,則會重新索引行


2018-04-12 21-56-53屏幕截圖.png
  • reindex函數(shù)的參數(shù)
參數(shù) 說明
index 用作索引的新序列。既可以是index實例,也可以是其他序列型python數(shù)據(jù)結構
method 插值方式
fill_value 在重新索引過程中,需要引入缺失值時使用的代替值
limit 前向或后向填充時的最大填充量
level 在Multilndex的指定級別上匹配簡單索引,否則選取其子集
copy 默認為true,無論如何都復制;如果為false,則新舊相等就不復制

索引、選取和過濾

類型 說明
obj[val] 選取DataFrame的單個列或一組列。在一些特殊的情況下會比較便利:布爾型數(shù)組(過濾行)
obj.ix[val] 選取DataFrame的單個行或一組行
obj.ix[:,val] 選取單個列或列子集
obj.ix[val1,val2] 同時選取行和列
reindex方法 將一個或多個軸匹配到新索引
xs方法 根據(jù)標簽選取單行或單列,并返回一個Series
icol、irow方法 根據(jù)整數(shù)位置選取單行或單列,并返回一個Series
get_value、set_value方法 根據(jù)行標簽或列標簽選取單個值
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容