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