文章目錄
二、Pandas對象簡介
1.Pandas的Series對象
Pandas 的 Series 對象是一個帶索引數據構成的一維數組。
(注意Series中S大寫)
Series 對象將一組數據和一組索引綁定在一起
和 NumPy 數組一樣,數據可以通過 Python 的中括號索引標籤獲取
Pandas 的 Series 對象比它模仿的一維 NumPy 數組更加通用、靈活。
1).Serise是通用的NumPy數組
NumPy 數組通過隱式定義的整數索引獲取數值,而 Pandas 的Series 對象用一種顯式定義的索引與數值關聯。顯式索引的定義讓 Series 對象擁有了更強的能力。
pd.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
- 自定義索引
2). Series是特殊的字典
Series 對象其實是一種將類型鍵映射到一組類型值的數據結構。類型至關重要,使得它在某些操作上比Python 的字典更高效。
索引默認按照順序排列。典型的字典數值獲取方式仍然有效。
3). 創建Series對象
pd.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
data : array-like, dict, or scalar value
Contains data stored in Series
index 是一個可選參數, data 參數支持多種數據類型。
上述可知,data可以是列表、numpy數組、字典來創建Series對象。data本身是一個Series對象也沒問題。
另外,data還可以是標量,創建 Series 對象時會重複填充到每個索引上
每一種形式都可以通過顯式指定索引篩選需要的結果。
2.Pandas的DataFrame對象
和Series 對象一樣, DataFrame既可以作爲一個通用型 NumPy 數組,也可以看作特殊的 Python 字典。
(注意DataFrame中D和F大寫)
1). DataFrame是通用的NumPy數組
DataFrame 可以看作是一種既有靈活的行索引,又有靈活列名的二維數組。可以把 DataFrame 看成是有序排列的若干 Series 對象。
pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
取索引名和列名
2). DataFrame是特殊的字典
字典是一個鍵映射一個值,而 DataFrame 是一列映射一個 Series 的數據。
切片取值見下一節。
3).創建DataFrame對象
pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
data : numpy ndarray (structured or homogeneous), dict, or DataFrame
Dict can contain Series, arrays, constants, or list-like objects
可見創建DataFrame的方法有很多種
-
單個Series
-
字典列表
-
Series對象字典
上文中的DataFrame對象states就是用Series 對象字典un_dict構造的 -
NumPy 二維數組
-
NumPy 結構化數組
-
其他列表樣式對象
3. Pandas的Index對象
Series 和 DataFrame 對象都使用便於引用和調整的顯式索引。可以將Index 對象看作是一個不可變數組或有序集合(實際上是一個多集,因爲 Index 對象可能會包含重複值)。
(注意Index中I大寫)
1).將Index看作不可變數組
可以通過標準 Python 的取值方法獲取數值,也可以通過切片獲取數值
與 NumPy 數組相似的屬性,但 Index 對象的索引是不可變的,Index 對象的不可變特徵使得多個 DataFrame 和數組之間進行索引共享時更加安全
2).將Index看作有序集合
Index 對象遵循 Python 標準庫的集合(set)數據結構的許多習慣用法,包括並集、交集、差集等