在上一篇文章中,我們總結了分列的一種方式:當所有行在需要的分列的地方都是相同的字母、符號、空格等等的時候,我們可以使用str.split()直接將所有行分成兩列。
然而在實際工作中,有可能有並不是所有的行都有用於分列的鍵。今天再總結兩種:

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

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

切片1

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

切片后的數據加入源數據里
這樣的方法只能對整齊的數值進行切片,圖中的Latitude里的數字與字母的數量不一樣,這樣進行切片的話就會出錯。
像這種數字和字母混合的字符串在處理的時候會比較麻煩,加入我們只需要數字或者字母要怎么處理呢?
這時候就要用到str.extract()函數和正則表達式了。
提取數據:

只匹配數字
提取字母:

只匹配字母
由於提取的字母占用了兩行,因此要進行拼接:

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

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

提取的數據不是數值類型

轉換為浮點型

使用map和lambda匿名函數轉換格式
作者:探索數據之美
鏈接:https://www.jianshu.com/p/2e9b0a56405a
來源:簡書
著作權歸作者所有。