Pandas的三個基本數據結構Series,DataFrame,Index
阿新 • • 發佈:2018-08-25
通過 括號 填充 有序集合 列名 基本數據結構 import 並集 and
1.Series
Pandas的Series對象是一個帶索引數據構成的一維數組
1)用一個數組創建Series對象
In [1]: import numpy as np In [2]: import pandas as pd In [3]: data = pd.Series([0.25,0.5,0.75,1.0]) In [4]: data Out[4]: 0 0.25 1 0.50 2 0.75 3 1.00 dtype: float64
2)通過values和index屬性獲取數據
# values屬性返回的結果與Numpy數組類似 In [5]: data.values Out[5]: array([0.25, 0.5 , 0.75, 1. ]) # index屬性返回的結果是一個類型為pd.index的類數組對象 In [6]: data.index Out[6]: RangeIndex(start=0, stop=4, step=1)
3)和Numpy數組一樣,數據可以通過Python中的括號索引標簽獲取
In [7]: data[1] Out[7]: 0.5 In [8]: data[1:3] Out[8]: 1 0.50 2 0.75 dtype: float64
4)對於Series對象的index,默認值為整數序列
In [9]: pd.Series([2,4,6]) Out[9]: 0 2 1 4 2 6 dtype: int64
5)data還可以是一個標量,創建Series對象時會重復填充到每個索引上
In [10]: pd.Series(5, index=[100, 200, 300]) Out[10]: 100 5 200 5 300 5 dtype: int64
2.DataFrame
理解:如果將Series類比為帶靈活索引的一維數組,那麽DataFrame就可以看作是一種既有靈活的行索引,又有靈活列名的二維數組,也可以把DataFrame看成是有序列排列的若幹Series對象,這裏的‘排列‘指的是它們擁有共同的索引
創建DataFrame:
*通過單個Series對象創建
*通過字典列表創建
In [13]: data = [{‘a‘:i,‘b‘:2 * i} for i in range(3)] In [14]: pd.DataFrame(data) Out[14]: a b 0 0 0 1 1 2 2 2 4
*通過Numpy二維數組創建
In [17]: pd.DataFrame(np.random.rand(3,2),columns=[‘foo‘,‘bar‘],index=[‘a‘,‘b‘,‘c‘]) Out[17]: foo bar a 0.849243 0.390653 b 0.411107 0.005731 c 0.517257 0.545708
3.Index
理解:可以將它看作一個不可變數組或有序集合(實際上是一個多集,因為Index對象可能會包含重復值)
Index對象遵循Python標準庫的集合(set)數據結構的許多習慣用法,包括並集,交集,差集
Pandas的三個基本數據結構Series,DataFrame,Index