s3.sort_index()
文章最前: 我是Octopus,這個名字來源于我的中文名--章魚;我熱愛編程、熱愛算法、熱愛開源。所有源碼在我的個人github?;這博客是記錄我學習的點點滴滴,如果您對 Python、Java、AI、算法有興趣,可以關注我的動態,一起學習,共同進步。?
1.創建Series
(1)通過列表list創建Series
s = pd.Series([10,30,20,40])
s
?(2)通過字典dict創建Series
dict_1 = {"a":10,"c":5,"b":40}
s1 = pd.Series(dict_1)
s1
(3)通過數組array創建Series
array_1 = np.arange(10,16)
s2 = pd.Series(array_1,index=list("abcdef"))
s2
2.Series的屬性
(1)獲得索引index
s2.index
(2)通過賦值整體地修改索引值
s2.index = ["aa","bb","cc","dd","eee","fff"]
s2
(3)修改index的名稱
s2.index.name = "banana"
s2
(4)修改Series的名稱
s2.name = "length"
s2
(5)獲取Series的值values
s2.values
3.Series的索引 index
(1)位置索引
#得到第一行的數
s2[0]
#得到最后一行的數
s2[-1]
#得到特定一些行的數(如第1行,第4行,第6行)
s2[[0,3,5]]
(2)名稱索引
#得到索引為aa所對應的數
s2["aa"]
#得到特定一些索引所對應的數
s2[["aa","cc","fff"]]
(3)點索引法
對象不重名的情況
s2.aa
對象重名的情況
s2.index = ["aa","bb","cc","dd","eee","def"]
s2.def
print(s2[5])
print(s2["def"])
4.Series的切片slice
(1)索引位置切片
不包含末端
s2[1:4]
(2)索引名稱切片
包含末端
s2["aa":"eee"]
5.修改Series的值
s2["aa"] = 100
s2[2] = 120
s2
6.添加Series的值
(1)通過append來添加
s2.append(pd.Series([50,60],index=["a1","a2"]))
(2)通過方括號[ ]來添加值
s2["y"] = 99
s2
7.刪除Series的值
del刪除法
#刪除y索引對應的99這個值
del s2["y"]
s2
8.過濾Series的值
單條件篩選
s2[s2 > 90]
s2[s2 == 13]
多條件篩選
s2[(s2 > 50) | (s2 < 14)]
9.Series的缺失值處理
#創建一個帶有缺失值的Series
s = pd.Series([10,np.nan,15,19,None])
s
(1)判斷是否有缺失值
s.isnull()
#如果需要取出這些缺失值,則通過布爾選擇器來篩選出來
s[s.isnull()]
(2)刪除缺失值
#dropna()會刪除掉所有缺失值NaN,并返回一個新的Series
s.dropna()
#如果希望原有的Series發生改變,可以將s.dropna()返回的新Series直接賦值給原來的Series
s = s.dropna()
s
通過過濾的方式來達到一樣的刪除效果
s = pd.Series([10,np.nan,15,19,None]) #初始化一下s
s[~s.isnull()] #依然是返回一個新的Series,波浪號~表示否定、非的意思
#通過notnull()也能實現,同樣也是返回一個新的Series
s[s.notnull()]
(3)填充缺失值
用指定值填充缺失值
#用0填充缺失值,依然返回的是一個新的Series
s.fillna(value=0)
#如果希望直接修改原Series,一種方法是之前說的直接賦值,另一種是添加參數inplace=True
s.fillna(value=0,inplace=True)
通過插值填充缺失值
#初始化一下s
s = pd.Series([10,np.nan,15,19,None])
s
向前填充(ffill,全稱是front fill)
s.fillna(method="ffill")
向后填充(bfill,全稱是back fill)
s.fillna(method="bfill")
10.排序
#創建一個Series
s3 = pd.Series([10,15,8,4,20],index=list("gadkb"))
s3
(1)根據索引排序 sort_index()
默認升序排列
s3.sort_index()
s3.sort_index(ascending=False)
(2)根據值排序 sort_values()
默認升序排列
s3.sort_values()
降序排列
s3.sort_values(ascending=False)
11.排名
s4 = pd.Series([2,5,15,7,1,2])
s4
中國式排名
s4.rank(ascending=False,method="dense")
12.Series的描述性統計
#創建一個Series
s5 = pd.Series([100,50,100,75,24,100])
s5
s5.value_counts()
最小值
s5.min()
最大值
s5.max()
中位數
s5.median()
均值
s5.mean()
求和
s5.sum()
標準差
s5.std()
描述性統計
s5.describe().round(1)
13.Series的向量化運算
s5 + 1000
s5 - 2000
s5 * 2
s5 / 10
自動對齊相同索引的數據,不同索引的數據對不上,則顯示NaN
s6 = pd.Series([35000,40000,71000,5500],index=list("abcd"))
s7 = pd.Series([222,35000,4000,2222],index=list("aqtb"))
s6 + s7