各位前輩好
我目前已知道針對字串裡某個特定符號可以做切割到不同列
例如
df2 = df_sort['規格'].str.split('*', expand=True)
這個語法可以針對字串裡面有*的時候便可以做切割
但如果針對匯入的資料(如Excel檔案)的某個欄位他有複數條件的話,這可以怎樣處理呢?
例如我這邊分析內容為AAA,BBB/CCC+DDD
由於我是python小白,目前還沒有頭緒可以怎麼處理這樣的內容
還請各位前輩指教,謝謝!
感謝前輩們的指教,最後採取
df2 = df_sort['規格'].str.split(',|/|+', expand=True)
可以讓我的程式碼比較簡單化些
再次感謝Froce大以及星空大的指點
我只給你理念。依照你的要求,其實可以先將要切割的字元統一取代後。
再用取代的字元去做分割。
AAA,BBB/CCC+DDD
先將[,/+]全取代成*
AAA*BBB*CCC*DDD
再用*做分割處理
感謝前輩意見
其實小弟我並不是靠程式吃飯
目前僅是靠一點興趣希望能把日常簡單但要花時間整理的Excel檔案
像是前輩們提到的「正則表示」,我就一臉問號
然後去查了一下維基百科的說法,看的也是一頭霧水
不過再查了一下用法,大概知道什麼樣的意思
像是我這個狀況的話,可以用
df2 = df_sort['規格'].str.split(',|/|+', expand=True)
這樣的方式來達到效果
而星空大的方式,則是採用replace或是map
df2 = df_sort['規格'].str.replace({',': '*', '/': '*', '+': '*'})
df3 = df2['規格'].str.split('*', expand=True)
這樣也會達到同樣效果
最後的終點其實都一樣,並沒有所謂絕對答案
如果split這個沒有所謂的「正則表示」,那麼用這樣的方法一樣也可以做到
只不過程式要多寫一點就是
能一點就通,已經算很強了。
我一開始也想說正則,但是怕新手會卻步。
所以才會告訴你用這個方式。
認真來說,你找到的
split(',|/|+', expand=True)
這個做法,也算是介於簡易正則的方式了。
會比我說的還要更好
感謝星空大
小弟以前是電子科系有過接觸過程式設計
但我自己知道腦筋很容易打結所以後來並沒有走這一途
像是現在這些練習的程式碼
一方面算是為了配合能夠現在工作能夠減少需要整理Excel檔案的時間(一天要花30分鐘整理,我如果可以靠Python可以1分鐘就搞定的話一個月就可以多10小時偷懶時間出來)
但必需要說的是,這些程式碼也幾乎都是網路上扒出來的
要我從頭寫一個我還真的寫不出來
於是就找類似需要功能,然後不斷的演變練習
使這個程式漸漸符合自己的需要
程式的基礎道理還可能明白
但是進入到要什麼什麼功能時,就會腦袋一片空白
所以用比較取巧的方式在練習這些程式就是
像是Pandas這個字串切割功能
真的要講去他的網站翻相關函數功能就一定會找的到
只是
索性乾脆找看看網路上有沒有類似範例來用,找的範圍遍及中文網站(包含百度),日文(我日文比英文還要來的好些)、英文
說來慚愧,其實不少程式碼的部分都是借鏡別人的來用就是