只會用 Excel 還不夠!七大主題,教你如何用 Python 優化數據分析效能

【為什麼我們要挑選這篇文章】Excel 是簡易好用的數據分析軟體,但如果要分析技術更上一層樓,就必須學習更專業的程式語言,除了老牌的 R 之外,另一個正在挑戰它的程式語言就是 Python 了。

該如何用 Python 處理數據,進行統計運算與樞紐分析?七個主題,手把手教你如何用 Python 取代 Excel 的常用功能。(責任編輯:郭家宏)

十年前,你說你是做數據的,大家的反應就是:用 Excel 做圖表。

現在,想成為一個合格的數據分析師,你說你不會 Python,大概會被恥笑。

Medium 上一位網友就分享了他一步步用 Python 替換掉十年前的「老情人」Excel 的過程,一起來學習一下吧!

原文 傳送門

做數據分析,就要學會用 Python 處理數據

在 Excel 成為我的「初戀」十年之後,是時候找一個更好的「另一半」了,在這個技術日新月異的時代,更好更薄更輕更快處理數據的選擇就在身邊!我希望用 Python 取代幾乎所有的 Excel 功能,無論是簡單的篩選還是相對複雜的建立並分析數據和數組。

我將展示從簡單到複雜的計算任務。強烈建議你跟著我一起做這些步驟,以便更好地理解它們。

擬寫此文的靈感,來自於人人可訪問的免費教程網站,我曾認真閲讀並一直嚴格遵守這篇 Python 文檔,連結如下,相信你也會從該網站中找到很多乾貨。

GitHub 傳送門

一、將 Excel 文件導入 Panda DataFrame

初始步驟是將 Excel 文件導入 DataFrame,以便我們執行所有任務。我將演示支持 xls 和 xlsx 文件擴展名的 Pandas 的 read_excel 方法。read_csv 與 read_excel 相同,就不做深入討論了,但我會分享一個例子。

儘管 read_excel 方法包含數百萬個參數,但我們只討論那些在日常操作中最常見的那些。

我們使用 Iris 樣本數據集,出於教育目的,該數據集可在線免費使用。

請按照 以下連結 下載數據,並將其放在與儲存 Python 文件的同一文件夾中。

1、第一步是在 Python 中導入庫

可以使用以下程式碼將電子表格數據導入 Python:

pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, parse_cols=None, usecols=None, squeeze=False, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, comment=None, skip_footer=0, skipfooter=0, convert_float=True, mangle_dupe_cols=True, **kwds)

有大量可用的參數,我們來看一下最常用的一些參數。

2、一些重要的 Pandas read_excel 選項

如果默認使用本地文件的路徑,用「\」表示,接受用「/」表示,更改斜槓可以將文件添加到 Python 文件所在的文件夾中。如果需要有關上述內容的詳細說明,請參閱 以下文章

用 Python 掃瞄目錄中的文件並選擇想要的:

3、導入表格

默認情況下,文件中的第一個工作表將按原樣導入到數據框中。

使用 sheet_name 參數,可以明確要導入的工作表。文件中的第一個表默認值為 0。可以用工作表的名字,或一個整數值來當作工作表的 index。

4、使用工作表中的列作為索引

除非明確提到,否則索引列會添加到 DataFrame 中,默認情況下從 0 開始。

使用 index_col 參數可以操作數據框中的索引列,如果將值 0 設置為 none,它將使用第一列作為 index。

5、略過行和列

默認的 read_excel 參數假定第一行是列表名稱,會自動合併為 DataFrame 中的列標籤。使用 skiprows 和 header 之類的函數,我們可以操縱導入的 DataFrame 的行為。

6、導入特定列

使用 usecols 參數,可以指定是否在 DataFrame 中導入特定的列。

這只是個開始,並不是所有的功能,但已足夠你「嘗鮮」了。

二、查看的數據的屬性

現在我們有了 DataFrame,可以從多個角度查看數據了。Pandas 有很多我們可以使用的功能,接下來將使用其中一些來看下我們的數據集。

1、從「頭」到「腳」

查看第一行或最後五行。默認值為 5,也可以自定義參數。

2、查看特定列的數據

3、查看所有列的名字

4、查看資訊

查看 DataFrame 的數據屬性總結:

5、返回到 DataFrame

6、查看 DataFrame 中的數據類型

三、分割:即 Excel 過濾器

描述性報告是關於數據子集和聚合的,當需要初步瞭解數據時,通常使用過濾器來查看較小的數據集或特定的列,以便更好的理解數據。

Python 提供了許多不同的方法來對 DataFrame 進行分割,我們將使用它們中的幾個來瞭解它是如何工作的。

1、查看列

包括以下三種主要方法:

使用點符號:例如 data.column_name
使用方括弧和列名稱:數據 [“COLUMN_NAME”]
使用數字索引和 iloc 選擇器:data.loc [:,’column_number’]

2、查看多列

3、查看特定行

這裡使用的方法是 loc 函數,其中我們可以指定以冒號分隔的起始行和結束行。注意,索引從 0 開始而不是 1。

4、同時分割行和列

5、在某一列中篩選

6、篩選多種數值

7、用列表篩選多種數值

8、篩選不在列表或 Excel 中的值

9、用多個條件篩選多列數據

輸入應為列一個表,此方法相當於 Excel 中的高級過濾器功能:

10、根據數字條件過濾

11、在 Excel 中複製自定義的篩選器

12、合併兩個過濾器的計算結果

13、包含 Excel 中的功能

14、從 DataFrame 獲取特定的值

如果想要用特定值查看整個 DataFrame,可以使用 drop_duplicates 函數:

15、排序

對特定列排序,默認升序:

四、統計功能

1、描述性統計

描述性統計,總結數據集分佈的集中趨勢,分散程度和正態分佈程度,不包括 NaN 值:

描述性統計總結:

五、數據計算

1、計算某一特定列的值

輸出結果是一個系列。稱為單列數據透視表:

2、計數

統計每列或每行的非 NA 單元格的數量:

3、求和

按行或列求和數據:

為每行添加總列:

4、將總列添加到已存在的數據集

5、特定列的總和,使用 loc 函數

或者,我們可以用以下方法:

6、用 drop 函數刪除行

7、計算每列的總和

以上,我們使用的方法包括:

Sum_Total:計算列的總和
T_Sum:將系列輸出轉換為 DataFrame 併進行轉置
Re-index:添加缺少的列
Row_Total:將 T_Sum 附加到現有的 DataFrame

8、多條件求和,即 Excel 中的 Sumif 函數

9、多條件求和

10、求算術平均值

11、求最大值

12、求最小值

13、Groupby:即 Excel 中的小計函數

六、DataFrame 中的樞紐分析表功能

誰會不喜歡 Excel 中的樞紐分析表呢?它是分析數據的最佳方式,可以快速瀏覽資訊,使用超級簡單的界面分割數據,繪製圖表,添加計算列等。

現在沒有了工作界面,必須用編寫程式碼的方式來輸出結果,且沒有生成圖表功能,但需要我們充分理解樞紐分析表的精華。

簡單的數據透視表,顯示 SepalWidth 的總和,行列中的 SepalLength 和列標籤中的名稱。

現在讓我們試著複雜化一些:

用 fill_value 參數將空白替換為 0:

可以使用 dictionary 函數進行單獨計算,也可以多次計算值:

七、Vlookup 函數

Excel 中的 vlookup 是一個神奇的功能,是每個人在學習如何求和之前就想要學習的。會用 vlookup 是很迷人的,因為輸出結果時像變魔術一樣。可以非常自信地說它是電子表格上計算的每個數據的支柱。

不幸的是,Pandas 中並沒有 vlookup 功能!

由於 Pandas 中沒有 Vlookup 函數,因此 Merge 用與 SQL 相同的備用函數。有四種合併選項:

left:使用左側 DataFrame 中的共享列並匹配右側 DataFrame,N/A 為 NaN。
right:使用右側 DataFrame 中的共享列並匹配左側 DataFrame,N/A 為 NaN。
inner:僅顯示兩個共享列重疊的數據。默認方法。
outer:當左側或右側 DataFrame 中存在匹配時,返回所有記錄。

以上可能不是解釋這個概念的最好例子,但原理是一樣的。

整個教學到這裡就結束啦,正如大家知道的那樣,「沒有完美的教學存在」,這位夥伴的教學肯定也是不完美的,但是大家可以自己動手試試,如果大家還知道有什麼 Python 可以替代 Excel 的地方,歡迎留言討論!

原文 傳送門

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈手把手教你做一个“渣”数据师,用 Python 代替老情人 Excel〉。首圖來源:Pixnio CC Licensed)

更多 Python 的實用技術

教你如何用 Python 的平行運算,驗證數學界的百年難題「哥德巴赫猜想」
自學 Python、JavaScript 總是卡?破解學習程式語言 3 大「欠矯正」的心態
【Python 的誕生故事】覺得其他程式語言不好用,超狂荷蘭工程師花三個月打造自己的程式語言


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

點關鍵字看更多相關文章: