python_判斷部份文字是否在某個欄位中及自動向上填滿、向下填滿

<Line廢文分析> Part2: isin, bfill,ffill

--

在上一篇文章中,我們學會了如何讀取欄位數不一致的raw data,請參考以下文章。

這章我們要來解決一個待解決的格式問題:

我們想要把圖中灰色位置的值,移動到獨立的欄位之中,這樣後續比較好分析。簡單的兩步驟邏輯:

步驟一

先判斷A欄位中,文字如果包含"上午"或"下午",則我們就在D欄位中填入NaN值,反之,則填入欄位A的值。

代碼如下:

這邊用到之前有提到的好用zip迴圈,忘記的朋友可以參考:

df0[‘D’] = df0[‘A’] > 這步驟是先複製一份欄位D出來。

for i, k in zip(df0[‘A’],range(0,len(df0))): > 這邊使用zip的迴圈來搭配判斷式。i代表df0[‘A’]內的值:可能是下午OO, 上午OO, 2019/XX/XX(X)…等。 k代表目前執行到的列數: 0,1,2,3….。

if '下午' in i or '上午' in i : > 這邊意思是如果"上午"或是"下午"被包含在文字中。

df0.iloc[k,3]=np.nan >如果前一個是文字被包含在其中,則我們就讓欄位D顯示為nan。

步驟二

欄位D剩下的欄位就是各種日期"2019/XX/XX(X)",因此再來用簡單的向下填滿就完成囉!

代碼如下:

完成囉!

--

--

Tsai Kam
事業規劃單位的數據分析師 (grow with python)

好奇、愛觀察、喜歡自己動手做,是一個位在事業規劃單位(BU端)的數據分析師。從0程式基礎到能逐步將python應用於工作之中的小魯蛇。