關(guān)于Series的index的方法和屬性使用說明
Series的index的方法和屬性
from pandas import Series,DataFrame
obj = Series([1,2,3,5,8,12],index=[1,2,3,4,5,6])
obj2 = Series([2,6,12,15,18,20],index=[0,1,2,3,4,5])
1、append,合并
obj.append(obj2)
2、obj.diff(),每行與上一行的差值,Difference with previous row
與前第2行的差值
與倒數(shù)前一行的差值
3、obj3.unique() 計算唯一值
4、is_unique,判斷是否有重復(fù)值,如果沒有返回True,否則返回False
5、is_monotonic,當(dāng)各元素均大于等于前值時,返回True,否則返回False
6、drop,刪除
7、isin,判斷是否包含在參數(shù)中
8、reindex,創(chuàng)建一個新的索引對象
Series中str屬性的方法+index索引的特點
Pandas字符串處理
前面我們已經(jīng)使用了字符串的處理函數(shù):
df["bWendu"].str.replace("℃", "").astype('int32')
1.Pandas的字符串處理的基本介紹
- 使用方法:先獲取Series的str屬性,然后在屬性上調(diào)用函數(shù);
- 只能在字符串列上使用,不能數(shù)字列上使用;
- Dataframe上沒有str屬性和處理方法
- Series.str并不是Python原生字符串,而是自己的一套方法,不過大部分和原生str很相似;
2.一些常用方法的使用舉例
①切分字符串,split()
# (1)把DataFrame列中字符串以','分隔開,每個元素分開后存入一個列表里 series=data['列名'].str.split(',') ? #(2)參數(shù)expand,這個參數(shù)取True時,會把切割出來的內(nèi)容當(dāng)做一列,產(chǎn)生多列。 series=data['列名'].str.split(',',expand=True) ? #(3)只要第一列 series=data['列名'].str.split(',',expand=True)[0] ?
②替換,replace()
# ?#用‘-'代替‘,' series=data['列名'].str.replace(',','-') ?
③是否包含表達(dá)式,contains()
#返回的是布爾值。 series=data['列名'].str.contains('we') ? ??
④查找所有符合正則表達(dá)式的字符findall()
# 以數(shù)組的形式返回。 series=data['列名'].str.findall("[a-z]") ?
⑤計算字符串的長度,len()
series=data['列名'].str.len() ?
⑥去除前后的空白字符,strip()
series=data['列名'].str.strip() ? series=data['列名'].str.rstrip() ? ?#去除后面的空白字符 series=data['列名'].str.lstrip() ? ?#去除前面的空白字符
⑦其他的一些判斷方法
isalnum() # 是否全部是數(shù)字和字母組成 isalpha() # 是否全部是字母 isdigit() # 是否全部都是數(shù)字 isspace() # 是否空格 islower() # 是否全部小寫 isupper() # 是否全部大寫 istitle() # 是否只有首字母為大寫,其他字母為小寫
3.使用過程中的一些注意
鏈?zhǔn)绞褂茫寒?dāng)執(zhí)行完一次str的方法后,一般不可以繼續(xù)使用str的方法,需要再次使用str的屬性,再使用str的方法
Series.str默認(rèn)就開啟了正則表達(dá)式模式 # 正則表達(dá)式替換,從2015年12月10如中將年月日替換為20151210 df["中文日期"].str.replace("[年月日]", "")
index索引的特點
1.特點
- 更方便的數(shù)據(jù)查詢,使用index查詢的時候可以獲得性能提升;
- 自動的數(shù)據(jù)對齊功能;
- 更多更強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)支持;
2.為什么使用index索引可以提高查詢性能呢?
- 如果index是唯一的,Pandas會使用哈希表優(yōu)化,查詢性能為O(1);
- 如果index不是唯一的,但是有序,Pandas會使用二分查找算法,查詢性能為O(logN);
- 如果index是完全隨機(jī)的,那么每次查詢都要掃描全表,查詢性能為O(N);
所以我們再對于完全隨機(jī)索引的查詢情況,如果提前排序,可以提高查詢速率
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pygame游戲開發(fā)之太空射擊實戰(zhàn)子彈與碰撞處理篇
相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動手實現(xiàn)它,在編寫學(xué)習(xí)中回顧過往展望未來,下面開始講解子彈與碰撞處理,在本課中,我們將添加玩家與敵人之間的碰撞,以及添加供玩家射擊的子彈2022-08-08pyenv虛擬環(huán)境管理python多版本和軟件庫的方法
這篇文章主要介紹了pyenv虛擬環(huán)境管理python多版本和軟件庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12python在CMD界面讀取excel所有數(shù)據(jù)的示例
這篇文章主要介紹了python在CMD界面讀取excel所有數(shù)據(jù),幫助大家更好的利用python辦公,感興趣的朋友可以了解下2020-09-09