Pandas的使用2(DataFrame)

    Series實現了一維數據的儲存和操作,而DataFrame則完成了二維數據儲存,有人將其翻譯爲“數據框”。實際上,DataFrame可以認爲是Series的Series。下面的代碼依然默認已經導入了Pandas庫。


1、DataFrame是Series的Series

    雖然代碼編輯器將s1豎排顯示,但我們也可以看做是橫排顯示的,這樣有利於認識DataFrame,將s1定義中的"xx"、“yy”、“zz”用List來替換,並增加了內容,就可以得到d1。

    更顯然地,使用字典套字典的形式來定義DataFrame對象,能夠更加清楚地看到DataFrame是Series的Series這一特性:


    d1聲明時沒有指定index,因此默認是0開始的數字

2、DataFrame的下標

    d2對象中,a、b、c構成了它的列標籤(columns),i、ii、iii構成了它的行標籤(index),這就是爲什麼要將Series橫排來看的原因。DataFrame中使用Series儲存一個個的Series,一列就是一個子Series。


    使用字典套字典的方式定義DataFrame,index要多次出現,十分不方便,Pandas提供了修改index的方法


    值得注意的是,columns的標籤並不能修改,但可以拓展,未知數據用NaN表示。但此時index不能拓展,如果需要拓展,dic1需要使用字典套字典的形式來定義。


    此時columns和index都可以拓展

3、DataFrame的值拷貝

    上面的代碼都是用字典來定義一個DataFrame對象。DataFrame可以通過columns和index來抽取另外一個DataFrame的數據:


    正如上面所說,DataFrame是Series的Series,因此可以通過columns標籤獲取子Series:


    s1就是一個Series,可以通過d2直接訪問Series的元素:


    同樣,DataFrame也可以做像Series那樣的運算:



    DataFrame也可以以Series爲單位來賦值:


    這爲d2增加了一列d,並且ii行沒有值,因此用NaN填充

    當然,也可以精確賦值(可以被賦值爲None):


    也可以執行del來刪除一列

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章