python內建一系列強大的字串處理方法,但這些方法只能處理單個字串,處理乙個序列的字串時,需要用到迴圈。
那麼,有沒有辦法,不用迴圈就能同時處理多個字串呢,pandas的向量化操作就提供了這樣的方法。
向量化的操作使我們不必擔心陣列的長度和維度,只需要關係操作功能,尤為強大的是,除了支援常用的字串操作方法,還整合了正規表示式的大部分功能,這使得pandas在處理字串列時,具有非常大的魔力。
例如,要計算每個單詞中『a』的個數,下面一行**就可以搞定,非常高效。
假如用內建的字串函式進行操作,需要進行遍歷,且python原生的遍歷操作無法處理缺失值。
#用迴圈進行處理
#存在缺失值時,列印報錯
pandas的向量化操作,能夠正確的處理缺失值,無報錯資訊,如下:
通過上面的例子,對向量化進行簡單總結,向量化是一種同時操作整個陣列而不是一次操作乙個元素的方法,下面從看看具體怎麼應用。
向量化的字元方法
pandas的字串屬的方法幾乎包括了大部分python的內建字串方法(內建共有45個方法),下面將列舉一些常見的方法的用法,例如上面的count()方法將會返回某個字元的個數,而len方法將會返回整個字元的長度。
右對齊,前面用0填充到指定字串長度。
向量化的正規表示式
pandas的字串方法根據python標準庫的re模組實現了正規表示式,下面將介紹pandas的str屬性內建的正規表示式相關方法。
split()
split,按指定字元分割字串,類似split的方法返回乙個列表型別的序列
#按數字分割
切分後的列表中的元素可以通過get方法或者 方法進行讀取
使用expand方法可以輕易地將這種返回展開為乙個資料表。
同樣,我們也可以限制切分的次數:
rsplit()
rsplit與split相似,不同的是,這個切分的方向是反的。即,從字串的尾端向首段切分。
replace ()
replace方法預設使用正規表示式
findall()
提取聊天記錄中的qq號
其他向量化的方法
除了上面介紹的pandas字串的正常操作和正規表示式外,pandas的str屬性還提供了其他的一些方法,這些方法非常的有用,在進行特徵提取或者資料清洗時,非常高效,具體如下:
wrap()
pad()
slice()
get()
slice_replace()
切片替換
get_dummies()
另乙個需要好好解釋的是get_dummies()方法,舉個例子:假如我們用a,b,c,d來表示乙個人的某個特徵:
repeat()
cat()
作用:連線字串
用法:series.str.cat(others=none, sep=none, na_rep=none)
引數:
返回值: concat : 序列(series)/索引(index)/字串(str)
使用pandas批量處理向量化字串
進行已經向量化後的字串資料,可以使用 pandas 的series 資料物件的 map方法。這樣,對於未經向量化的資料也可以先進行資料的向量化轉換然後再進行相應的處理。舉例實現字串資料的操作,編寫 如下 1 usr bin python 2 3 import numpy asnp 4 import ...
使用pandas對向量化資料進行替換處理
使用pandas 處理向量化的資料,進行資料的替換時不僅僅能夠進行字串的替換也能夠處理數字。做簡單的示例如下 in 4 data series range 5 in 5 data out 5 0 0 1 1 2 2 3 3 4 4 dtype int64 in 6 data.replace 3,33...
兩矩陣各向量余弦相似度計算操作向量化 md
余弦相似度計算 cos bf,bf frac cos bf,bf frac 矩陣向量化操作 按行計算余弦相似度 兩矩陣計算相似度向量應為同維度 返回值res為a矩陣每行對b矩陣每行向量余弦值 res i,j 表示a矩陣第i行向量與b矩陣第j行向量余弦相似度 def cosine matrix mat...