正規表示式提供了一種靈活的在文字中搜尋或匹配(通常比前者複雜)字串模式的方式。正規表示式,常稱作regex,是根據正規表示式語言編寫的字串。python內建的re模組負責對字串應用正規表示式。
re模組的函式可以分為三個大類:模式匹配、替換以及拆分。當然,它們之間是相 輔相成的。乙個regex描述了需要在文字中定位的乙個模式,它可以用於許多目 的。拆分乙個字串,分隔符為數量不定 的一組空白符(製表符、空格、換行符等)。描述乙個或多個空白符的regex是 \s+。
***********************************==
呼叫re.split(』\s+』,text)時,正規表示式會先被編譯,然後再在text上呼叫其split方 法。可以用re.compile自己編譯regex以得到乙個可重用的regex物件
得到匹配regex的所有模式,則可以使用findall方法
==如果想避免正規表示式中不需要的轉義(\),則可以使用原始字串字 麵量如r』c:\x』(也可以編寫其等價式』c:\x』)。==
如果打算對許多字串應用同一條正規表示式,強烈建議通過re.compile建立regex 物件。這樣將可以節省大量的cpu時間。match和search跟findall功能類似。findall返回的是字串中所有的匹配項,而 search則只返回第乙個匹配項。match更加嚴格,它只匹配字串的首部。有一段文字以及一條能夠識別大部分電子郵件位址的正規表示式。
對text使用findall將得到一組電子郵件位址
search返回的是文字中第乙個電子郵件位址(以特殊的匹配項物件形式返回)。對 於上面那個regex,匹配項物件只能告訴我們模式在原字串中的起始和結束位置
regex.match則將返回none,因為它只匹配出現在字串開頭的模式
相關的,sub方法可以將匹配到的模式替換為指定字串,並返回所得到的新字串:
層次化索引(hierarchical indexing)是pandas的一項重要功能,它使你能在乙個軸上擁有多個(兩個以上)索引級別。使你能以低維度形式處理高維度資料。建立乙個series,並用乙個由列表或陣列組成 的列表作為索引
看到的結果是經過美化的帶有multiindex索引的series的格式。索引之間的「間隔」表 示「直接使用上面的標籤」
***********************************==
對於乙個層次化索引的物件,可以使用所謂的部分索引,使用它選取資料子集的操作更簡單:
有時甚至還可以在「內層」中進行選取
***********************************==
層次化索引在資料重塑和基於分組的操作(如透視表生成)中扮演著重要的角色。
***********************************==
unstack的逆運算是stack
***********************************==
對於乙個dataframe,每條軸都可以有分層索引
***********************************==
各層都可以有名字(可以是字串,也可以是別的python物件)。如果指定了名 稱,它們就會顯示在控制台輸出中
小心區分索引名state、color與行標籤。
***********************************==
可以單獨建立multiindex然後復用。上面那個dataframe中的(帶有分級名稱)列 可以這樣建立
Pandas 快速入門
pandas其實很簡單,共有三種資料結構。其中一維為series,二維為dataframe,三維為panel.先說series,numpy陣列,python列表等都可以生成series。它的結構分為兩部分,索引和值。獲取索引的方式為 index 方法,獲取值得方式為values 方法。而資料框又多乙...
pandas入門 十一
跟series中的值一樣,軸標籤也可以通過函式或對映進行轉換,從而得到乙個新的不同標籤的物件。軸還可以被就地修改,而無需新建乙個資料結構。跟series一樣,軸索引也有乙個map方法 將其賦值給index,這樣就可以對dataframe進行就地修改 想要建立資料集的轉換版 而不是修改原始資料 比較實...
pandas入門 十三
另一種常用於統計建模或機器學習的轉換方式是 將分類變數轉換為 啞變數 或 指標矩陣 dataframe的某一列中含有k個不同的值,則可以派生出乙個k列矩陣或 dataframe 其值全為1和0 pandas有乙個get dummies函式可以實現該功能。使用之前的乙個dataframe例子 給指標d...