Series的使用:
1. Series的簡單使用
data = pd.Series([0.25, 0.5, 0.75, 1.0]) print(data) print(data.values) print(data.index) print(data[1]) print(data[1:3])
2. Series對象與Numpy數組的不同之處
# 2.1 索引可以是任意類型 data = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd']) print(data['b']) print(data["a": "c"]) # 2.2 索引可以不是連續的、可以不按順序 data = pd.Series([0.25, 0.5, 0.75, 1.0], index=[2, 3, 5, 7]) print(data) print(data[5]) # 2.3 可以將series看做是特殊的字典 population_dict = { "California": 3833251, "Texas": 26448193, "New York": 19651127, "Florida": 19552860, "Illinois": 12882135 } population = pd.Series(population_dict) print(population) # 像字典一樣獲取數據 print(population['California']) # 也支持像list一樣的切片 print(population["California": "Illinois"])
3. 創建Series對象:
# 3.創建Series對象 # 創建形式: pd.Series(data, index=index) # 3.1 data: 列表或者numpy數組, index默認是整數序列 data = pd.Series([2, 4, 6]) print(data) # 3.2 data是一個標量, 會按照index的數量重復填充 data = pd.Series(5, index=[100, 200, 300]) print(data) # 3.3 data是一個字典,index默認是字典的鍵 data = pd.Series({2: 'a', 1: 'b', 3: 'c'}) print(data) # 可以通過顯示指定索引,來篩選用於創建Series的數據, 創建時只會保留顯示指定索引的鍵值對 data = pd.Series({2: 'a', 1: 'b', 3: 'c'}, index=[3, 2]) print(data)
4. Series對象的數據選擇方法
# 4. Series數據選擇方法 data = pd.Series([0.25, 0.5, 0.75, 1.0], index=list('abcd')) print(data) # 4.1 Series對象提供了鍵值對的映射, 可以像字典一樣使用 print(data['b']) print('a' in data) print(data.keys()) print(list(data.items())) # 使用字典類似的語法調整數據 data['e'] = 1.25 print(data) # 4.2 將Series對象看做是一堆數組 # 顯式索引作為切片: 含頭含尾 print(data['a': 'c']) # 隱式索引作為切片: 含頭不含尾 print(data[0:2]) # 掩碼 位運算的方式 print(data[(data > 0.3) & (data < 0.8)]) # 指定索引列表 print(data[['a', 'e']]) # 4.3 索引器: loc, iloc, ix data = pd.Series(['a', 'b', 'c'], index=[1, 3, 5]) print(data) # 當顯式索引和隱式索引都是整數時 # 取值操作是顯式索引 print(data[1]) # 切片操作時隱式索引 print(data[1:3]) # 上述這兩種操作,很容易會混淆,loc和iloc就可以解決這個問題 # loc和iloc不是Series對象的函數方法,只是暴露了切片接口的屬性 # 4.3.1 loc, 表示取值和切片都是顯式的 print(data.loc[1]) print(data.loc[1:3]) # 4.3.2 iloc, 表示取值和切片都是隱式的 print(data.iloc[1]) print(data.iloc[1:3]) # 4.3.3 ix等價於標准python列表[]式的取值方式 print(data.ix[1]) print(data.ix[1:3]) print(data[1:3])
5. Series對象的一些特性
# 5. Series的一些特性 # 5.1 矢量化操作 s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e']) print(s + s) print(s * 2) print(np.exp(s)) # 5.2 標簽對齊 print(s[:-1] + s[1:])