pandas 分列(二)之不規則字符串及str.extract()

pandas 分列(二)之不規則字符串及str.extract()

轉載地址:https://www.jianshu.com/p/2e9b0a56405a

分列的一種方式:當所有行在需要的分列的地方都是相同的字母、符號、空格等等的時候,我們可以使用str.split()直接將所有行分成兩列。

然而在實際工作中,有可能有並不是所有的行都有用於分列的鍵。今天再總結兩種:

數據源

上面這組數據中的Latitude是我們需要分列的列。每個數據中都有前綴ab,這是我們不需要的。我們要做的是從第三位開始將訂單號切下來,就像對字符串進行的切片操作一樣。

用str函數進行切片

很簡單吧,先使用.str將‘Latitude'這一列轉換爲類似字符串數據類型,然後再用[ ]切片器就行了。跟字符串一樣,切片器可以切前面、後面、中間任一位置。

切片1
切片2

切好的數據可以通過簡單賦值放到原數據裏面:

切片後的數據加入源數據裏

這樣的方法只能對整齊的數值進行切片,圖中的Latitude裏的數字與字母的數量不一樣,這樣進行切片的話就會出錯。

像這種數字和字母混合的字符串在處理的時候會比較麻煩,加入我們只需要數字或者字母要怎麼處理呢?

這時候就要用到str.extract()函數和正則表達式了。

提取數據:

只匹配數字

提取字母:

只匹配字母

由於提取的字母佔用了兩行,因此要進行拼接:

只提取字母並進行拼接

注意書寫格式:要提取的部分正則表達式要用引號引起來。抽取多個數字或者字母的話要在後面加上'+'。

將提取的數據加入到數據源

加入之後的數據並不是數值格式的(屬於字符串格式的),因此不能跟正常的數值一樣進行運算,需要計算的時候要進行格式的轉換。

提取的數據不是數值類型
轉換爲浮點型

推薦:Python基礎知識之pandas的應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章