結束上次提及的加權平均數,這次的目的是展示一些常見的 Excel 任務,以及你如何在 pandas 中執行類似的任務。雖然說其中一些例子有些簡單且微不足道,但我認為展示簡單的和更複雜的函數很重要,你可以在其他地方找到。作為額外的內容,我將做一些 Vlookup 來做模糊字符串匹配,以顯示這個過程的一個小轉折,並展示 pandas 如何利用完整的python系統做一些 Python 簡單的,在Excel中會很複雜的事情。
在開始之前我們先引入新的資料集, 並且導入接下來會用上的 Pandas 和 Numpy Library。
import pandas as pd
import numpy as np
df = pd.read_excel("data.xlsx")
df.head()
小試身手一下,我們先利用基本的加法來簡單做統計,我想添加一個總列來顯示 1月、2月和3月的總銷售額。這在 Excel 和 Pandas 中都是很簡單的。在 Excel 中,能在列中添加了公式 sum(G2:I2),我們也可以在 Pandas 做到新增欄目,這個方法非常的簡單。
df["total"] = df["Jan"] + df["Feb"] + df["Mar"]
df.head()
此外,現在我們想增加一個按月計算的總數和總計。這就是 Pandas 和 Excel 的分歧之處。在Excel中為每個月的單元格添加總數是非常簡單的。但因為 Pandas 需要維護整個 DataFrame 的完整性,所以還需要增加幾個步驟。
sum_row = df[["Jan","Feb","Mar","total"]].sum()
df_sum = pd.DataFrame(data=sum_row).T #transpose
df_sum
同樣的功能我們應用在 Excel 上反而顯得容易的多,我們只需要利用 Sum(x:y) 的方式,就能夠快速拉出我們想要加總的內容,甚至說我們並不需要記住多種不同的公式。
Vlookup 是我們很常使用的 Excel 功能,他幫我們達成快速匹配數值,當我們需要找到 A 所對應的 B 值時,這項功能就會非常好用。舉例來說我們有一雙鞋,我們可以利用 Vlookup 匹配他所擁有的價格,根據官方中 Vlookup 的解釋如下。
根據例子中,我希望可以查詢每個美國州的縮寫,我會利用 =VLOOKUP(E2,$B$19:$C$31,2,FALSE) 方式來寫,我們仔細分解結構來說,E2(Lookup_value)指的就是我想要查的目標,而 B19:C31(Table)則是我要尋找的對應表,位於本圖片中的左下角,而其中的 2(col_index_num) 表示我要找第二個值,Texas 對應的就是縮寫 TX,最後簡單設定邏輯值 False(Range_lookup)
根據例子中,Vlookup 可以快速的幫我完成 Table 搜尋目標,非常快速的對應上缺值。
FuzzyWuzzy 的篇幅不少,我打算放到下個章節來描述,但是回應這個主題,一些在 Python 簡單的,在 Excel 會很複雜的事情就是這個樣子,有許多內容在兩邊都能夠達成,但是其中一種工具會更有效率地達成。
今年沒組團,每一筆一字矢志不渝的獻身精神都是為歷史書寫下新頁,有空的話可以走走逛逛我們去年寫的文章。
Jerry 據說是個僅佔人口的 4% 人口的 INFP 理想主義者,總是從最壞的生活中尋找最好的一面,想方設法讓世界更好,內心的火焰和熱情可以光芒四射,畢業後把人生暫停了半年,緩下腳步的同時找了份跨領域工作。偶而散步、愛跟小動物玩耍。曾立過很多志,最近是希望當一個有夢想的人。
謝謝你的時間「訂閱,追蹤和留言」都是陪伴我走過 30 天鐵人賽的精神糧食。