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