Pandas是為了解決數據分析任務而創建的,納入了大量的庫和標准數據模型,提供了高效地操作大型數據集所需的工具。
對於Pandas包,在Python中常見的導入方法如下:
from pandas import Series,DataFrame import pandas as pd
首先,我們需要對於Series和DataFrame有個基本的了解:
Series:一維數組,類似於Python中的基本數據結構list,區別是Series只允許存儲相同的數據類型,這樣可以更有效的使用內存,提高運算效率。就像數據庫中的列數據。
DataFrame: 二維的表格型數據結構。很多功能與R語言中的data.frame類似。可以將DataFrame理解為Series的容器。
接下來我們通過實例分別了解Series和DataFrame。
1、Series
Pandas的Series對象是一個帶索引數據構成的一維數組。可以用一個數組創建Series對象,如下所示:
In [1] : data = pd.Series([1,2,3,4]) In [2] : data Out[2] :0 1 1 2 2 3 3 4
Series對象將一組數據和一組索引綁定在一起,我們可以通過values屬性和index屬性獲取數據。values屬性返回的結果與Numpy數組類似。index屬性返回的是一個類型為pd.index的類數組對象。和Numpy數組一樣,數據可以通過Python的中括號索引標簽來獲取:
In [3]: data.values Out[3]:array([1,2,3,4]) In [4]: data.index Out[4]:Int64Index([0,1,2,3]) In [5]:data2=Series([4,7,-5,3],index=['d','b','a','c']) In [6]:data2 Out[6]: d 1 b 2 a 3 c 4
如果你有一些數據在一個Python字典中,你可以通過傳遞字典來從這些數據創建一個Series,只傳遞一個字典的時候,結果Series中的索引將是排序后的字典的鍵。
In [7]:sdata={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
In [8]:obj3=Series(sdata)
In [9]:obj3
Out[9]:
Ohio 35000
Texas 71000
Oregon 16000
Utah 5000
實例:
-
創建一個名為
series_a的series數組,當中值為[1,2,5,7],對應的索引為['nu', 'li', 'xue', 'xi']; -
創建一個名為
dict_a的字典,字典中包含如下內容{'ting':1, 'shuo':2, 'du':32, 'xie':44}; -
將
dict_a字典轉化成名為series_b的series數組。
from pandas import Series,DataFrame import pandas as pd def create_series(): ''' 返回值: series_a: 一個Series類型數據 series_b: 一個Series類型數據 dict_a: 一個字典類型數據 ''' a=[1,2,5,7] index=['nu','li','xue','xi'] series_a=Series(a,index) dict_a={'ting':1,'shuo':2,'du':32,'xie':44} series_b=Series(dict_a) return series_a,dict_a,series_b
2、DataFrame
DataFrame是一個表格型的數據結構,是以一個或多個二維塊存放的數據表格(層次化索引),DataFrame既有行索引還有列索引,它有一組有序的列,每列既可以是不同類型(數值、字符串、布爾型)的數據,或者可以看做由Series組成的字典。
創建:
dictionary = {'state':['0hio','0hio','0hio','Nevada','Nevada'],
'year':[2000,2001,2002,2001,2002],
'pop':[1.5,1.7,3.6,2.4,2.9]}
frame = DataFrame(dictionary)
修改行名:
frame=DataFrame(dictionary,index=['one','two','three','four','five'])
添加修改:
frame['add']=[0,0,0,0,0]
添加Series類型:
value = Series([1,3,1,4,6,8],index = [0,1,2,3,4,5]) frame['add1'] = value
實例:
-
創建一個五行三列的名為
df1的DataFrame數組,列名為[states,years,pops],行名['one','two','three','four','five']; -
給
df1添加新列,列名為new_add,值為[7,4,5,8,2]。
from pandas import Series,DataFrame import pandas as pd def create_dataframe(): ''' 返回值: df1: 一個DataFrame類型數據 ''' df1=DataFrame(index=['one','two','three','four','five'],columns=['states','years','pops']) df1['new_add']=[7,4,5,8,2] return df1
對於剛接觸Pandas的同學來說,Series和DataFrame其實也不是很難,但是它們確是基礎中的基礎,是我們以后學習中常用的東西,所以我們必須把它們掌握好,才能更好的學習這門課。
