pandas向量化字符串操作方法!

2021-01-10 CDA數據分析師

作者:小伍哥

來源:AI入門學習

python內置一系列強大的字符串處理方法,但這些方法只能處理單個字符串,處理一個序列的字符串時,需要用到循環。

那麼,有沒有辦法,不用循環就能同時處理多個字符串呢,pandas的向量化操作就提供了這樣的方法。

向量化的操作使我們不必擔心數組的長度和維度,只需要關係操作功能,尤為強大的是,除了支持常用的字符串操作方法,還集成了正則表達式的大部分功能,這使得pandas在處理字符串列時,具有非常大的魔力。

例如,要計算每個單詞中『a』的個數,下面一行代碼就可以搞定,非常高效。

假如用內置的字符串函數進行操作,需要進行遍歷,且Python原生的遍歷操作無法處理缺失值。

#用循環進行處理

#存在缺失值時,列印報錯

Pandas的向量化操作,能夠正確處理缺失值,無報錯信息,如下:

通過上面的例子,對向量化進行簡單總結,向量化是一種同時操作整個數組而不是一次操作一個元素的方法,下面從看看具體怎麼應用。

向量化的字符方法

Pandas的字符串屬的方法幾乎包括了大部分Python的內置字符串方法(內置共有45個方法),下面將列舉一些常見的方法的用法,例如上面的count()方法將會返回某個字符的個數,而len方法將會返回整個字符的長度。

下面選取部分函數舉例,其他函數參考字符串模塊:Python字符串的45個方法詳解

len()

lower()

zfill()

右對齊,前面用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)

參數:

others : 列表或複合列表,默認為None,如果為None則連接本身的元素 sep : 字符串 或者None,默認為None na_rep : 字符串或者 None, 默認 None。如果為None缺失值將被忽略。 返回值: concat : 序列(Series)/索引(Index)/字符串(str)

相關焦點

  • 【跟著stackoverflow學Pandas】- Pandas修改列的類型
    ,一般需要進行數據類型的轉化,這篇文章就介紹pandas裡面的數據類型及轉換。,col2、col3是數值型數據,但是因為數據在導入時加了引號,按照字符串數據來處理,如果我們想對他們進行數值操作,就需要進行轉換。
  • JavaScript字符串 - 查找方法
    字符串查找的方法子字符串代表的就是要查找的字符串1.indexOf();格式:字符串.indexOf( 子字符串串,開始查找的位置 );返回值:如果在字符串中查找到了子字符串第一次出現的位置,返回子字符串出現的位置,否則沒有查找到返回 -
  • 在JavaScript字符串的search()方法中,如何匹配正則表達式?
    在各個程式語言中,也會推出一些與正則表達式相關的輔助操作,如替找操作等。第三節:正則表達式語法在JavaScript中,對於正則表達式的定義,使用字面量表示法的基本語法如下:/模式/修飾符基本語法說明如下:使用兩個/來表示一個正則表達式匹配模式。第一個/後面跟匹配模式。
  • 10個很棒的 JavaScript 字符串技巧
    我們稱一個字符序列為字符串。這幾乎是所有程式語言中都有的基本類型之一。這裡跟大家展示關於 JS 字符串的10個很棒的技巧,你可能還不知道哦?1.如何多次複製一個字符串JS 字符串允許簡單的重複,與純手工複製字符串不同,我們可以使用字符串的repeat方法。2. 如何填充一個字符串到指定的長度有時,我們希望字符串具有特定長度。
  • 用Python拼接字符串的常用方法及性能分析
    前幾篇文章,我們對Python常用的操作技能進行了匯總。今天,我們來梳理一下Python拼接字符串的幾種常用方法,並對方法進行比較。本篇不會全部進行匯總,旨在通過幾種常用的方法在不同條件下性能進行對比,為大家提供一種字符串使用的指導意見。大家選擇自己熟悉的掌握並使用即可,不需要全部進行記憶(留下大腦空間記點別的東西……)。常見的字符串拼接方式「+」操作符拼接「+」操作符連接字符串是Python中比較經典的字符串拼接方式。可以使用「+」將兩個字符串直接進行拼接。
  • Python中去除字符串首尾空格、特殊字符和指定子字符串的方法
    ;使用print()函數輸出字符串時,其中的特殊字符「\n、\r、\t」則被默認為命令執行了;使用strip()方法,只能去除字符串首尾的空格和特殊字符,存在於字符串中間的空格和特殊字符是無法去除的。>去除字符串首尾指定的子字符串從strip()方法中,又延伸出了去除字符串開頭和結尾位置空格、特殊字符和指定子字符串的方法。
  • Java字符串地查找操作
    在一個字符串中查找字符或子串是經常使用的操作。String類提供了兩種查找字符串的方法,分別是indexOf()和lastIndexOf(),這兩種方法都返回待查找字符或子串在字符串的起始索引位置。int indexOf(String s)該方法用於在字符串中查找與s字符串匹配的子串,若發現匹配的子串,則返回子串的起始位置索引,如果沒有找到與s匹配的子串,返回-1。調用語法如下:str.indexOf(s)其中,str是已創建的字符串對象,s待查找的字符串。
  • 教程| pandas輕鬆入門 之 數據結構介紹 1
    訪問flyai.club,一鍵創建你的人工智慧項目Pandas含有使數據清洗和分析工作變得更快更簡單的數據結構和操作工具。pandas經常和其它工具一同使用,如數值計算工具NumPy和SciPy,分析庫statsmodels和scikit-learn,和數據可視化庫matplotlib。
  • Pandas的介紹與基本使用
    如果說沒有pandas的出現,目前的金融數據分析領域還應該是R語言的天下。2、Pandas能幹什麼Pandas的主要功能:具備對應其功能的數據結構DataFrame,Series集成時間序列功能提供豐富的數學運算和操作靈活處理缺失數據.....以上就是pandas能完成的一些基礎操作,當然並不完全,下面就來看看pandas到底是怎麼用的。
  • JavaScript字符串-概念
    字符串的概念 概念: 在JavaScript中將所有單引號或雙引號括起來的都叫做字符串 以上兩種方法用的是比較少的,下面介紹通常使用的 3.通過常量創建字符串 輸出結果為
  • Excel小技巧|三種方法計算算式字符串
    Excel中針對一列算式字符串的問題,如果才能計算得出正確結果?如下圖所示,A列是一列算式字符串,如何計算其正確的結果,即如何在算式字符串前面加個"="並使之正常計算,這裡我們用三種方法處理,總有一種適合你哦!
  • Python基礎教程(一) - 序列:字符串、列表和元組
    序列類型操作符成員關係操作符(in、not in):成員關係操作符是用來判斷一個元素是否屬於一個序列的。對於字符串來說就是判斷一個字符是否屬於一個字符串;對於列表和元組,就代表一個對象是否屬於該對象。字符串字符串類型是Python裡面最常見的類型。可以簡單的通過在引號間包含字符的方式創建它,單引號和雙引號是相同的。下面來寫一些例子來展示下如何訪問字符串的值、如何改變和刪除字符串。
  • 6個提升效率的pandas小技巧
    pandas是python中常用的數據分析庫,出現頻率非常高,而且pandas功能之多讓人咋舌,即使pandas老手也沒法保證能高效使用pandas做數據分析。這篇文章目的梳理幾個高效實用的pandas小技巧,供大家參考。1.
  • 按任意符號間隔拆分字符串的函數
    大家好,我們今日講解「VBA信息獲取與處理」教程中第十四個專題「Split函數提取數據信息的深入講解」的第二節「按任意符號間隔拆分字符串的函數」,這個專題是非常實用的知識點,希望大家能掌握利用。在整個字符串的所有字符間建立一個循環,同時再在間隔符號字符串間建立一個循環,同時每次截取1個字符,當兩個字符相同時,我們將獲取一段段的字符,這些字符就是我們要取得的結果。我們可以把上述的思路放在一個函數中實現,我們命名為SplitA函數。
  • Python中字符串編碼在二進位之間相互轉換的方法
    第八十節:字符串編碼轉換在學習「計算字符串的長度」(詳見第72節內容Python中如何計算字符串的長度),對編碼的概念、分類和作用,做過一個簡單的介紹,今天的內容,還是從「編碼」開始談。最早的字符串編碼是ASCII碼,是由美國國家標準學會(American National Standard Institute , ANSI )制定的,所以叫做「美國信息交換標準代碼」,它的內容是這樣的:
  • MySQL字符串截取 和 截取字符進行查詢
    通過mysql自帶的一些字符串截取函數,對數據進行處理,下面是我整理的字符串截取 和 截取字符進行查詢。一、MySQL中字符串的截取MySQL中有專門的字符串截取函數:其中常用的有兩種:substring_index(str,delim,count) 和concat 1.substring_index(str,delim,count) 函數的使用較為普遍。
  • 漫畫:什麼是字符串匹配算法?
    讓我們來舉一個例子:在上圖中,字符串B是A的子串,B第一次在A中出現的位置下標是2(字符串的首位下標是0),所以返回 2。我們再看另一個例子:在上圖中,字符串B在A中並不存在,所以返回 -1。為了統一概念,在後文中,我們把字符串A稱為主串,把字符串B稱為模式串。
  • LABVIEW編程之時間標識轉換為字符串
    在定時函數選板中,LABVIEW提供了許多的時間類相關函數,包括時間、日期轉換為字符串函數,實際上格式化寫入字符串函數完全支持時間標識,其轉換功能更多、更全面。與數值轉換為字符串類似,時間標識轉換為字符串的關鍵也是格式化字符串,LABVIEW提供了許多專門的時間相關的時間格式代碼,這些格式符不僅僅可以用來轉化為字符串,同時也可以時間標識控制項進行特色顯示,以下的例程中將同時利用字符串和時間標識顯示控制項顯示我們需要的時間日期。
  • 在C語言中如何高效地複製和連接字符串?
    儘管這些函數可以同樣很容易地定義為返回一個指針來指向最後一個複製的字符(或它的後一位),而且事實證明這種做法也非常有用。兩個或多個字符串的連接操作的最佳複雜度和字符數量成線性關係。但是,如上所述,讓函數返回指向目標字符串的指針會導致操作的效率明顯低於最佳效率。該函數遍歷源字符串序列和目標字符串序列,並獲取指向這兩個序列末尾的指針。
  • 第四篇:C語言中指針與字符串核心知識點梳理
    C語言的基本數據類型中有一個char的關鍵詞,可以存儲單個的字符。那麼,像漢字以及由多個字符組成的內容,又該如何存儲呢?這點將涉及到本文第二個核心知識點:字符串及其常規操作。重點包括:字符串處理函數、指針與字符串的關係等。