Pandas初體驗之數據結構——Series和DataFrame


  Pandas是為了解決數據分析任務而創建的,納入了大量的庫和標准數據模型,提供了高效地操作大型數據集所需的工具。

  對於Pandas包,在Python中常見的導入方法如下:

from pandas import Series,DataFrame
import pandas as pd

  首先,我們需要對於SeriesDataFrame有個基本的了解:

  Series:一維數組,類似於Python中的基本數據結構list,區別是Series只允許存儲相同的數據類型,這樣可以更有效的使用內存,提高運算效率。就像數據庫中的列數據。

  DataFrame: 二維的表格型數據結構。很多功能與R語言中的data.frame類似。可以將DataFrame理解為Series的容器。

  接下來我們通過實例分別了解SeriesDataFrame。

  1、Series

  PandasSeries對象是一個帶索引數據構成的一維數組。可以用一個數組創建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_aseries數組,當中值為[1,2,5,7],對應的索引為['nu', 'li', 'xue', 'xi']

  • 創建一個名為dict_a的字典,字典中包含如下內容{'ting':1, 'shuo':2, 'du':32, 'xie':44}

  • dict_a字典轉化成名為series_bseries數組。

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

  實例:

  • 創建一個五行三列的名為df1DataFrame數組,列名為 [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的同學來說,SeriesDataFrame其實也不是很難,但是它們確是基礎中的基礎,是我們以后學習中常用的東西,所以我們必須把它們掌握好,才能更好的學習這門課。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM