Pandas:用於數據分析和數據科學的最熱門 Python 庫
Pandas 是一個十分流行的 Python 第三方庫。本文介紹了 Pandas 庫中的一些特性和函數,並且我們鼓勵讀者親手使用 Pandas 庫,來解決實際的業務問題。
Pandas 為 Python 中數據分析提供了基礎和高級的構建組件。Pandas 庫是用於數據分析與數據操作的最強大和最靈活的開源分析工具之一,並且它還提供了用於建模和操作表格數據(以行和列組織的數據)的數據結構。
Pandas 庫有兩個主要的數據結構:第一個是 「 系列 」,該數據結構能夠很方便地從 Python 數組或字典中按位置或指定的索引名稱來檢索數據;第二個是「 數據幀 」,該數據結構將數據存儲在行和列中。列可以通過列名訪問,行通過索引訪問。列可以有不同類型的數據,包括列表、字典、序列、數據幀、NumPy 數組等。
Pandas 庫可以處理各種文件格式
有各種各樣的文件格式。用於數據分析的工具必須能夠提供處理各種文件格式的方法。
Pandas 可以讀取各種文件格式,例如 CSV 文件、JSON 文件、XML 文件、Parquet 文件、SQL 文件,詳見下表。
寫入 | 讀取 | |
---|---|---|
CSV 文件 | to_csv 函數 |
read_csv 函數 |
JSON 文件 | to_json 函數 |
read_json 函數 |
Parquet 文件 | to_parquet 函數 |
read_parquet 函數 |
SQL 文件 | to_sql 函數 |
read_sql 函數,read_sql_query 函數,read_sql_table 函數 |
XML 文件 | to_xml 函數 |
read_xml 函數 |
使用 Pandas 進行數據清理
在現實場景中,很多數據集存在數據缺失、數據格式錯誤、錯誤數據或重複數據的情況,如果要對使數據分析更加準確,就需要對這些沒有用的數據進行處理。此外,數據還會有需要 屏蔽 的敏感和機密信息。接下來,Pandas 提供了清理、丟棄、替換、屏蔽等方法,來處理這些壞數據。
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()
方法:
df.drop_duplicates(『<column>』, keep = False)
df.drop_duplicates(『<column>』, keep = 『first』)
df.drop_duplicates(『<column>』, keep = 『last』)
使用 Pandas 進行數據分析
下面的表格列出了 Pandas 中進行數據分析的各種函數,以及其語法。(請注意:df
代表一個 數據幀 數據結構的實例。)
語法 | 描述 |
---|---|
df.head(x) |
head() 函數用於讀取前面的 x 行,如果不填參數 x,默認返回 5 行 |
df.tail(x) |
tail() 函數用於讀取尾部的 x 行,如果不填參數 x ,默認返回最後 5 行,空行各個欄位的值返回 NaN |
loc(x:y) |
Loc 函數返回指定行的數據,也可以對數據進行切片 |
groupby('<column>') |
對指定列的數據進行分組 |
df['column'].sum() |
計算指定列數據的總和 |
df['column']. mean() |
計算指定列數據的算術平均值 |
df['column'].min() |
計算指定列數據的最小值 |
df['column'].max() |
計算指定列數據的最大值 |
df.sort_values(['column']) |
在指定列上根據數值進行排序,默認升序 |
df.size |
返回元素的個數,即為行數 * 列數 |
df.describe |
返回對各列的統計匯總 |
pd.crosstab(df['column1'], df['column2'], margins = True) |
創建 column1 和 column2 的交叉表 |
df.duplicated([column1, 'column2']) |
根據 column1 和 column2 中的重複值,返回 True 或 False |
Pandas 的優點
- 支持多索引(層次索引),方便分析多維數據。
- 支持數據透視表的創建,堆棧和取消堆棧操作。
- 可以使用 Pandas 處理有限值的分類數據。
- 支持分組和聚合運算。
- 可以禁用排序。
- 支持行級過濾(獲取滿足過濾條件的行)和列級過濾(只選擇需要的列)。
- 有助於重塑數據集(數組的維度變換)。還可以轉置數組的值,並轉換為列表。當你使用 Python 處理數據時,可以將 Pandas 數據幀轉換為多維 NumPy 數組。
- 支持面向標籤的數據切片。
Pandas 的不足
Pandas 的代碼和語法與 Python 不同,所以人們需要額外再學習 Pandas。此外,相較於 Pandas,像三維數據這樣的高維數據會在 NumPy 等其他庫有更好的處理。
總結
Pandas 能夠大幅提升數據分析的效率。它與其他庫的兼容性使它在其他 Python 庫中都能有效地使用。
作者:Phani Kiran 選題:lkxed 譯者:chai001125 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive