對比python字符串函數,輕鬆學習pandas的 str 矢量化字符串函數

2021-02-19 凹凸數據
1.概述

python字符串應該是python裡面最重要的數據類型了,因此學會怎麼處理各種各樣的字符串,顯得尤為重要。

我們不僅要學會怎麼處理單個字符串,這個就需要學習「python字符串函數」,我們還要學會怎麼處理二維表格中每一列每一格的字符串,這個就需要學習「pandas的str矢量化字符串函數」。

今天我們採用對比的方式,帶大家總結常用的字符串函數,希望這篇文章能夠對大家起到很好的作用。

在開始享用這篇文章之前,請培養好自己的耐心,本文確實幹貨滿滿,一定要看到最後你才知道收穫有多大,尤其是後面的str屬性,超有用。

2.常用的python字符串函數

字符串中,空白符也算是真實存在的一個字符。

1)python字符串函數大全2)函數講解① find()函數功能 :檢測字符串是否包含指定字符。如果包含指定字符,則返回開始的索引;否則,返回-1。② index()函數功能 :檢測字符串是否包含指定字符。如果包含指定字符,則返回開始的索引;否則,提示ValueError錯誤。③ count()函數功能 : 統計字符串中,某指定字符在指定索引範圍內,出現的次數。注意 :如果不指定索引範圍,表示在整個字符串中,搜索指定字符出現的次數。④ replace()函數語法 :st.replace(str1,str2,count)。注意 : 如果不指定count,則表示整個替換;如果指定count=1,則表示只替換一次,count=2,則表示只替換兩次。⑤ split()語法 :st.split('分隔符', maxSplit)注意 :如果split中什麼都不寫,則默認按照空格進行分割;如果指定了分割符,則按照指定分隔符,進行分割。maxSplit作用:不好敘述,自己看下面的例子就明白。⑥ startswith()函數功能 :檢查字符串st是否以字符串str1開頭,若是,則返回True;否則,返回False。⑦ endswith()函數功能 :檢查字符串st是否以字符串str1結尾,若是,則返回True;否則,返回False。⑧ lower()功能 :將字符串的所有字母轉換為小寫。⑨ upper()⑩ strip()

注1:st.rstrip() : 去掉字符串右邊的空白字符。

注2:st.lstrip() : 去掉字符串左邊的空白字符。

⑪ join()函數功能 :在指定字符串str1中,每相鄰元素中間插入st字符串,形成新的字符串。注意 :是在str1中間插入st,而不是在st中間插入str1。⑫ isalpha()功能 :如果字符串str中只包含字母,則返回True;否則,返回False。注意 :只有字符串中全部是字母,才會返回True,中間有空格都不行。⑬ isdigit()功能 :如果字符串str中只包含數字,則返回True;否則,返回False。3.常用的str矢量化字符串函數

str矢量化操作:指的是循環迭代數組裡面的某個元素,來完成某個操作。

1)str矢量化字符串函數大全2)構造一個DataFrame,用於測試函數
import pandas as pd
df ={'姓名':[' 黃同學','黃至尊','黃老邪 ','陳大美','孫尚香'],
     '英文名':['Huang tong_xue','huang zhi_zun','Huang Lao_xie','Chen Da_mei','sun shang_xiang'],
     '性別':['男','women','men','女','男'],
     '身份證':['463895200003128433','429475199912122345','420934199110102311','431085200005230122','420953199509082345'],
     '身高':['mid:175_good','low:165_bad','low:159_bad','high:180_verygood','low:172_bad'],
     '家庭住址':['湖北廣水','河南信陽','廣西桂林','湖北孝感','廣東廣州'],
     '電話號碼':['13434813546','19748672895','16728613064','14561586431','19384683910'],
     '收入':['1.1萬','8.5千','0.9萬','6.5千','2.0萬']}
df = pd.DataFrame(df)
df

結果如下:

3)函數講解① cat函數:用於字符串的拼接
df["姓名"].str.cat(df["家庭住址"],sep='-'*3)

結果如下:

② contains:判斷某個字符串是否包含給定字符
df["家庭住址"].str.contains("廣")

結果如下:

③ startswith/endswith:判斷某個字符串是否以...開頭/結尾
# 第一個行的「 黃偉」是以空格開頭的
df["姓名"].str.startswith("黃") 
df["英文名"].str.endswith("e")

結果如下:

④ count:計算給定字符在字符串中出現的次數
df["電話號碼"].str.count("3")

結果如下:

⑤ get:獲取指定位置的字符串
df["姓名"].str.get(-1)
df["身高"].str.split(":")
df["身高"].str.split(":").str.get(0)

結果如下:

⑥ len:計算字符串長度
df["性別"].str.len()

結果如下:

⑦ upper/lower:英文大小寫轉換
df["英文名"].str.upper()
df["英文名"].str.lower()

結果如下:

⑧ pad+side參數/center:在字符串的左邊、右邊或左右兩邊添加給定字符
df["家庭住址"].str.pad(10,fillchar="*")      # 相當於ljust()
df["家庭住址"].str.pad(10,side="right",fillchar="*")    # 相當於rjust()
df["家庭住址"].str.center(10,fillchar="*")

結果如下:

⑨ repeat:重複字符串幾次
df["性別"].str.repeat(3)

結果如下:

⑩ slice_replace:使用給定的字符串,替換指定的位置的字符
df["電話號碼"].str.slice_replace(4,8,"*"*4)

結果如下:

⑪ replace:將指定位置的字符,替換為給定的字符串
df["身高"].str.replace(":","-")

結果如下:

⑫ replace:將指定位置的字符,替換為給定的字符串(接受正則表達式)先不要管下面這個案例有沒有用,你只需要知道,使用正則做數據清洗多好用;
df["收入"].str.replace("\d+\.\d+","正則")

結果如下:

⑬ split方法+expand參數:搭配join方法功能很強大
# 普通用法
df["身高"].str.split(":")
# split方法,搭配expand參數
df[["身高描述","final身高"]] = df["身高"].str.split(":",expand=True)
df
# split方法搭配join方法
df["身高"].str.split(":").str.join("?"*5)

結果如下:

⑭ strip/rstrip/lstrip:去除空白符、換行符
df["姓名"].str.len()
df["姓名"] = df["姓名"].str.strip()
df["姓名"].str.len()

結果如下:

⑮ findall:利用正則表達式,去字符串中匹配,返回查找結果的列表findall使用正則表達式,做數據清洗,真的很香!
df["身高"]
df["身高"].str.findall("[a-zA-Z]+")

結果如下:

⑯ extract/extractall:接受正則表達式,抽取匹配的字符串(一定要加上括號)
df["身高"].str.extract("([a-zA-Z]+)")
# extractall提取得到複合索引
df["身高"].str.extractall("([a-zA-Z]+)")
# extract搭配expand參數
df["身高"].str.extract("([a-zA-Z]+).*?([a-zA-Z]+)",expand=True)

結果如下:


如果你覺得這篇文章對你有點用的話,就請為本文點個讚、在看轉發三連吧!!!


後臺回復「字符串」獲取本文練習代碼!


相關焦點

  • 對比python字符串函數,學習pandas的str矢量化字符串函數
    我們不僅要學會怎麼處理單個字符串,這個就需要學習「python字符串函數」,我們還要學會怎麼處理二維表格中每一列每一格的字符串,這個就需要學習「pandas的str矢量化字符串函數」。今天我們採用對比的方式,帶大家總結常用的字符串函數,希望這篇文章能夠對大家起到很好的作用。
  • 【Python基礎】Pandas向量化字符串操作
    假如用內置的字符串函數進行操作,需要進行遍歷,且Python原生的遍歷操作無法處理缺失值。方法說明len()計算字符串長度strip()等價於str.strip,去除字符串開頭和結尾處指定的字符rstrip()等價於str.rstrip ,刪除字符串末尾的指定字符(默認為空格)lstrip()等價於str.lstrip,截掉字符串左邊的空格或指定字符
  • (基礎篇)PHP字符串函數
    PHP字符串函數包括查找字符位置函數;提取子字符函數;替換字符串;字符長度;比較字符函數;分割成數組字符;去除空格等等
  • Python字符串(Python學習筆記02)
    幾種字符串的表示方法:str1 = "hello"str2 = 'world'str3 = 'hello, 'world''str4 = "hello, 'world'"str5 = 'hello, "world"'注意 str4 和 str5 都沒有使用 ,但仍然可以在字符串中使用引號。
  • php字符串函數
    >convert_uuencode — 加密一個字符串count_chars — 返回一個字符串裡面的字符使用信息crc32 — 計算一個字符串的crc32多項式crypt — 單向散列加密函數echo — 用以顯示一些內容explode — 將一個字符串用分割符轉變為一數組形式fprintf — 按照要求對數據進行返回
  • 【Python字符串操作】字符串分割函數
    對於長字符串,我們一般要怎麼處理呢?除了切片,但是切片太麻煩了。python為我們提供了字符串切割函數,它不僅可以通過指定字符切割,也可以去除空格符哦。1.split()語法:str.split(str=' ', num=string.count(str))描述:通過指定分隔符對字符串進行切片,如果參數num有指定值,則僅分隔num個子字符串
  • Pandas向量化字符串操作
    假如用內置的字符串函數進行操作,需要進行遍歷,且Python原生的遍歷操作無法處理缺失值。index()等價於str.index,查找字符串中第一次出現的子字符串的位置rindex()等價於str.rindex,返回子字符串最後一次出現在字符串中的索引位置capitalize()等價於str.capitalize,將字符串的第一個字母變成大寫,其餘字母變為小寫swapcase()
  • MySQL函數基礎——字符串函數詳解
    昨天,咱們對MySQL的數學函數進行了講解,今天,咱們再來解析MySQL字符串函數。字符串函數主要用來處理資料庫中的字符串數據,MySQL中字符串函數有:計算字符串長度函數、字符串合併函數、字符串替換函數、字符串比較函數、查找指定字符串位置函數等。
  • Python中字符串的操作處理
    學習了字符串的基本用法和簡單格式化,我們再來看一下常用字符串類型的操作。對字符串,Python提供了3個基本的操作符,如下表:演示如下:>>> x = '一個'>>> y = '字符串'>>> x+y'一個字符串'>>> x*3'一個一個一個'>>> s = '某個字符串'>>>
  • php字符串常用處理,運算符和幾個常用的字符串函數
    為了讓更多的php學習者了解到php更多的知識,小編結合自己的理解和自學時所做的筆記,整理了一些知識點。藉助百家號這個大平臺分享給大家,希望對大家有所幫助!本期分享的是php字符串的一些常用處理,運算符和幾個常用的字符串函數。
  • PHP部分字符串函數匯總
    我們大家知道無論哪種語言,字符串操作都是一個重要的基礎,往往是簡單而重要。查找字符位置函數strpos($str,search,[int]): 查找search在$str中的第一次位置從int開始stripos($str,search,[int]): 函數返回字符串在另一個字符串中第一次出現的位置strrpos($str,search,[int]): 查找search在$str中的最後一次出現的位置從int 2.
  • [快學Python3]String(字符串)
    下面我們如何用不同的引號來創建字符串:a = u'我是字符串'b = u"我是字符串"c = """我是字符串我是字符串我還是字符串"""由上面看出,三引號括起來的字符串可以有多行。字符串內置函數在python中字符串內置函數提供了各種字符串處理能力,下面我們看幾個常用的函數應用示例:字符連接和切割在python中提供了以下函數完成連接和切割功能:下面我們看看具體的代碼示例:
  • php字符串函數匯總
    php字符串函數有哪些?php字符串函數:addcslashes — 以 C 語言風格使用反斜線轉義字符串中的字符addslashes — 使用反斜線引用字符串bin2hex — 函數把包含數據的二進位字符串轉換為十六進位值chop — rtrim 的別名
  • useful R 字符串函數
    首先經常碰到字符分裂類的問題,一般分為兩種情況:按照固定字符分裂和按照固定長度分裂,前者表示指定一個分裂字符串,當字符串中出現該固定模式時就進行分裂;後者表示每隔多少個字符進行分裂;字符串分裂:按字符分裂mystring <- "前者表示指定一個分裂字符串,當字符串中出現該固定模式時就進行分裂;後者表示每隔多少個字符進行分裂"strsplit(mystring, split
  • VBA字符串函數
    從下午開始一直在學習,重溫之前學過的知識,主要是開始記筆記了,對於之前半懂的知識,有了更新的認識,這樣的感覺真好。
  • Go語言學習筆記之字符串一
    這裡列舉一些 Go 語言的特點: 簡化問題,易於學習 內存管理,簡潔語法,易於使用 快速編譯,高效開發 高效執行 並發支持,輕鬆駕馭, 靜態類型 標準類庫,規範統一 易於部署 文檔全面 免費開源學習go語言有幾天了,今天突然想到把學的寫成筆記,記錄一下。如有不正確的請指教。
  • python格式化字符串研究
    前言與隊友交流時提及python的格式化字符串漏洞,這個漏洞之前接觸不多,所以寫篇文章從基礎部分仔細研究了研究。python環境是python3.7。這些format函數的基本用法並不是導致格式化字符串漏洞的根源,查看下列代碼:"first {0[1]}, second {0}".format(['a','b'])輸出為first b, second ['a', 'b'],可見當format函數的參數是一個列表時,可以通過用方括號添加索引的方式來獲取列表的值。
  • 《Python_1》介紹三個字符串函數:join和split以及strip
    1 join()函數主要是join()和os.path.join()兩個函數:join():連接字符串數組。可以為空seq(sequence):要連接的元素序列、字符串、元組、字典上面的語法即:以sep作為分隔符,將seq所有的元素合併成一個新的字符串,返回一個以分隔符sep連接各個元素後生成的字符串.
  • 「值得收藏」的PHP常用字符串函數
    1.str_word_count 統計單詞個數2. count_chars 得到字符串裡面字符的有關情況3. str_len 得到字符串長度,就是有多少個字符4. substr_count統計有多少個子字符串, 比如 統計is, this is php裡面,就會出現2個is5. strpos 定義字符串出現的首次位置 (
  • MATLAB字符和字符串
    考慮有這兩個字符串:>>str1 = 'hello';>>str2 = 'help';字符串str1和str2並不相等,所以使用strcmp函數來判斷的話,將會返回邏輯0(false)。