Pandas:用于數據分析和數據科學的最熱門 Python 庫
Pandas 為 Python 中數據分析提供了基礎和高級的構建組件。Pandas 庫是用于數據分析與數據操作的最強大和最靈活的開源分析工具之一,并且它還提供了用于建模和操作表格數據(以行和列組織的數據)的數據結構。
Pandas 庫有兩個主要的數據結構:第一個是 “系列Series”,該數據結構能夠很方便地從 Python 數組或字典中按位置或指定的索引名稱來檢索數據;第二個是“數據幀DataFrames”,該數據結構將數據存儲在行和列中。列可以通過列名訪問,行通過索引訪問。列可以有不同類型的數據,包括列表、字典、序列、數據幀、NumPy 數組等。
Pandas 庫可以處理各種文件格式
有各種各樣的文件格式。用于數據分析的工具必須能夠提供處理各種文件格式的方法。
Pandas 可以讀取各種文件格式,例如 CSV 文件、JSON 文件、XML 文件、Parquet 文件、SQL 文件,詳見下表。
| 寫入 | 讀取 |
CSV 文件 | ? | ? |
JSON 文件 | ? | ? |
Parquet 文件 | ? | ? |
SQL 文件 | ? | ? |
XML 文件 | ? | ? |
使用 Pandas 進行數據清理
在現實場景中,很多數據集存在數據缺失、數據格式錯誤、錯誤數據或重復數據的情況,如果要對使數據分析更加準確,就需要對這些沒有用的數據進行處理。此外,數據還會有需要 屏蔽mask
Pandas 清洗空值:
a. 空行可以使用 ??df.dropna(inplace=True)?
? 方法來刪除。
b. 空值可以使用 ??df.fillna(<value>, inplace=True)?
? 方法來替換。還可以指定某一個列來替換該列的空數據。
Pandas 屏蔽數據:
c. 要屏蔽所有不滿足條件 ??my_list.where(my_list < 5)?
? 的敏感數據的值,可以使用 ??my_list.mask(my_list < 5)?
?。
Pandas 清洗重復數據:
d. 要刪除重復數據,可以使用 ??drop_duplicates()?
? 方法:
使用 Pandas 進行數據分析
下面的表格列出了 Pandas 中進行數據分析的各種函數,以及其語法。(請注意:??df?
? 代表一個 數據幀DataFrame
< 如顯示不全,請左右滑動 >
語法 | 描述 |
? | ? |
? | ? |
? | Loc 函數返回指定行的數據,也可以對數據進行切片 |
? | 對指定列的數據進行分組 |
? | 計算指定列數據的總和 |
? | 計算指定列數據的算術平均值 |
? | 計算指定列數據的最小值 |
? | 計算指定列數據的最大值 |
? | 在指定列上根據數值進行排序,默認升序 |
? | 返回元素的個數,即為行數 * 列數 |
? | 返回對各列的統(tǒng)計匯總 |
? | 創(chuàng)建 ? |
? | 根據 ? |
Pandas 的優(yōu)點
- 支持多索引(層次索引),方便分析多維數據。
- 支持數據透視表的創(chuàng)建,堆棧和取消堆棧操作。
- 可以使用 Pandas 處理有限值的分類數據。
- 支持分組和聚合運算。
- 可以禁用排序。
- 支持行級過濾(獲取滿足過濾條件的行)和列級過濾(只選擇需要的列)。
- 有助于重塑數據集(數組的維度變換)。還可以轉置數組的值,并轉換為列表。當你使用 Python 處理數據時,可以將 Pandas 數據幀轉換為多維 NumPy 數組。
- 支持面向標簽的數據切片。
Pandas 的不足
Pandas 的代碼和語法與 Python 不同,所以人們需要額外再學習 Pandas。此外,相較于 Pandas,像三維數據這樣的高維數據會在 NumPy 等其他庫有更好的處理。
總結
Pandas 能夠大幅提升數據分析的效率。它與其他庫的兼容性使它在其他 Python 庫中都能有效地使用。