Pandas基本介紹——DataFrame入門學習
前篇文章中,小生初步介紹pandas庫中的Series結構的創建與運算,今天小生繼續“死磕自己”為大家介紹pandas庫的另一種最為常見的數據結構DataFrame。
DataFrame是二維標記的數據結構(三維結構請看Panel,后面為大家介紹),你可以把它看成一張電子表格或者SQL關系庫中的表格。DataFrame是pandas庫中最為常見的一種數據結構,正如Series一樣,它也有很多不同的創建方法:
- Dict of 1D ndarrays, lists, dicts, or Series
- 2-D numpy.ndarray
- Structured or record ndarray
- A Series
- Another DataFrame
1、 from dict of Series or dicts
DataFrame中的index與Series結構中的index是獨立的。如果輸入數據是一個嵌套的dict結構,系統首先會將內部的dict轉化為Series。如果初始化時沒有給列名賦值,列名將會默認問dict keys.
行標和列標都可以通過index和columns屬性獲得。
注:當一個column集合與dict數據同時初始化,此時column集合將取代dict數據中的key值成為DataFrame的列名。
2、 from dict of ndarrays/lists
ndarrays長度必須都是一樣的,如果index手動初始化,index的長度同樣需要與ndarrays一樣長。如果index沒有手動給出,range(n-1)將默認初始化為index。
3、 from structured or record array
這種情況與dict of arrays一樣。
4、 from a list of dicts
5、 from a dict of tuples
可以通過tuples dictionary創建一個multi-index frame。
6、 from a Series
DataFrame的index與Series的index一致,如果沒有其他column名稱給出,DataFrame的column值與Series的一致。
DataFrame數據對齊運算
1、兩個不同的DataFrame進行運算時,DataFrame會根據行標和列標將對應位置的值一一對應運算。
2、DataFrame和Series進行運算時,將會根據Series的index對DataFrame的所有columns進行逐行計算。
3、針對帶有時間序列的數據,DataFrame index也可以是時間序列,the broadcasting will be column-wise。
暫先總結這些,DataFrame的運算和初始化方法還有很多,這里就不加贅述,大家可以參考鏈接:http://pandas.pydata.org/pandas-docs/version/0.18.1/dsintro.html