運算函式 pandas字串向量級運算函式表

2021-10-14 16:15:17 字數 3637 閱讀 3023

series含有乙個str屬性,通過str能夠進行字串的向量級運算。

使用series的str屬性時,需要series元素的值是str(字串)型別s.astype("str")。

函式表向量化字串方法

no方法

re說明

0使用方式:s.str.cat()

返回序列索引或其他

1capitalize()

no字串轉大寫

2cat([others, sep, na_rep, join])

no用分隔符連線字串;返回str或原物件構架

3center(width[, fillchar])

no用附加字元填充字串的左側和右側

4contains(『'is')

yes判斷字串中是否包含子串true; pat str或正規表示式

5count(pat[, flags])

yes子串出現次數

6decode(encoding[, errors])

no位元組解碼

7encode(encoding[, errors])

no字串編碼

8endswith(pat[, na])

yes字串結尾是否是特定子串 true

9extract(pat[, flags, expand])

yes從正規表示式pat中提取第乙個匹配字元;結果為1個字元

10extractall(pat[, flags])

yes從正規表示式pat提取所有匹配的,返回組

11find(sub[, start, end])

no查子串首索引,子串包含在[start:end];無返回-1

12findall(pat[, flags])

yes查詢所有符合正規表示式的字元,以陣列形式返回

13get(i)

no從指定位置提取字元

14get_dummies([sep])

no用sep拆分每個字串,返回乙個虛擬/指示dataframe

15index(sub[, start, end])

no子串最低索引,子串範圍[start:end];無拋異常valueerror

16isalnum()

no檢查所有字元是否為字母數字

17isalpha()

no檢查是否都是字母

18isdecimal()

no檢查是否都是十進位制

19isdigit()

no檢查是否都是數字

20islower()

no檢查是否都是小寫

21isnumeric()

no檢查是否都是數字

22isspace()

no檢查是否都是空格

23istitle()

no檢查是否都是標題

24isupper()

no檢查是否都是大寫

25join(sep)

no用分隔符連線所有字元;同一級有非str返回na

26len()

no計算每個字串的長度

27ljust(width[, fillchar])

no使用附加字元填充字串的右側

28lower()

no字串轉小寫

29lstrip([to_strip])

no左側刪除空格(包括換行符)或其他str

30match(pat[, case, flags, na, …])

yes確定每個字串是否與正規表示式匹配。

31normalize(form)

no返回字串的unicode普通表單

32pad(width[, side, fillchar])

no指定左或右填充字元補齊字串

33partition([pat, expand])

no分隔符拆分為3部分,分隔符左,分隔符,分隔符右

34repeat(repeats)

no重複每個元素指定的次數

35replace(pat,b)

yes將值pat替換為值b。

36rfind(sub[, start, end])

no右邊查詢子串索引,子串包含在[start:end];無返回-1

37rindex(sub[, start, end])

no返回子串的最高索引,子串範圍[start:end];無丟擲異常

38rjust(width[, fillchar])

no使用附加字元填充字串的左側

39rpartition([pat, expand])

no右拆分成3部分含分隔符

40rsplit([pat, n, expand])

yes分隔符字串右邊拆分字串

41rstrip([to_strip])

no右側刪除空格(包括換行符)

42slice([start, stop, step])

no切片擷取字串

43slice_replace([start, stop, repl])

no用另乙個值替換字串的位置切片;比較複雜看例項

44split([pat=none, n, expand])

yes按分隔符或子串拆分字串

45startswith('st')

yes字串開頭是否匹配子串true

46strip('')

no刪除字串左右空白(包括換行符)或刪除其他左右字串

47swapcase()

no變換字母大小寫

48title()

no字串轉標題

49translate(table[, deletechars])

no通過對映表對映字串中的所有字元

50upper()

no字串轉大寫

51wrap(width, **kwargs)

no長字串換行,#結果插入換行符\n

52zfill(width)

no用0填充字串的左側

說明:類似python中str忽略na;適用於series / index

列舉幾個常用案例:

s = pd.series(["10 1 ",1001,10001])

s = s.astype("str")   #先轉換為字串型別

len_s = s.str.len()   #計算每個元素的長度

isdigit_s = s.str.isdigit() #檢視每個元素是否只包含數字,返回true/false

cut_s = s.str[0:2]   #切片擷取字串

split_s = s.str.split(" ") #指定字元進行切割,返回列表

strip_s = s.str.strip(' ') #刪除左右兩端的空格,中間部分依然保留

replace_s = s.str.replace(" ","") #將指定的字元替換為其他字元,這裡將空格替換刪除

使用pandas批量處理向量化字串

進行已經向量化後的字串資料,可以使用 pandas 的series 資料物件的 map方法。這樣,對於未經向量化的資料也可以先進行資料的向量化轉換然後再進行相應的處理。舉例實現字串資料的操作,編寫 如下 1 usr bin python 2 3 import numpy asnp 4 import ...

pandas向量化字串操作方法!

python內建一系列強大的字串處理方法,但這些方法只能處理單個字串,處理乙個序列的字串時,需要用到迴圈。那麼,有沒有辦法,不用迴圈就能同時處理多個字串呢,pandas的向量化操作就提供了這樣的方法。向量化的操作使我們不必擔心陣列的長度和維度,只需要關係操作功能,尤為強大的是,除了支援常用的字串操作...

pandas處理字串

1 dataframe的列 df.columns.str.strip df.columns.str.lower 處理列 清理開頭和結尾的白空格,將所有的名稱都換為小寫,並且將其餘的空格都替換為下劃線 df.columns df.columns.str.strip str.lower str.repl...