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

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

很簡(jiǎn)單吧,先使用.str將‘Latitude'這一列轉(zhuǎn)換為類似字符串?dāng)?shù)據(jù)類型,然后再用[ ]切片器就行了。跟字符串一樣,切片器可以切前面、后面、中間任一位置。


切好的數(shù)據(jù)可以通過簡(jiǎn)單賦值放到原數(shù)據(jù)里面:

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

提取字母:

由于提取的字母占用了兩行,因此要進(jìn)行拼接:

注意書寫格式:要提取的部分正則表達(dá)式要用引號(hào)引起來。抽取多個(gè)數(shù)字或者字母的話要在后面加上'+'。

加入之后的數(shù)據(jù)并不是數(shù)值格式的(屬于字符串格式的),因此不能跟正常的數(shù)值一樣進(jìn)行運(yùn)算,需要計(jì)算的時(shí)候要進(jìn)行格式的轉(zhuǎn)換。


