samwellwang

samwellwang

coder
twitter

Python pandas

Python Pandas 是一個強大的數據處理和分析工具,它提供了一種靈活、高效、可擴展的數據結構,可以幫助我們輕鬆地處理和分析各種數據。在本文中,我們將介紹 Pandas 的基本概念和使用方法,包括常用方法和參數、小技巧以及可能會遇到的坑。

Pandas 的基本概念#

Pandas 的核心數據結構是 Series 和 DataFrame。Series 是一維數組,可以存儲任何類型的數據,包括整數、浮點數、字符串等。DataFrame 是二維表格,可以看作是由多個 Series 組成的。每個 Series 代表一列數據,而每行則代表一個觀測值。

Pandas 還提供了一些其他的數據結構,比如 Panel 和 Panel4D,但在實際應用中,我們主要使用 Series 和 DataFrame。

Pandas 的使用方法#

數據讀取#

首先,我們需要從文件或數據庫中讀取數據。Pandas 支持多種數據格式,包括 CSV、Excel、SQL 等。以下是讀取 CSV 文件的示例代碼:

import pandas as pd

df = pd.read_csv('data.csv')

數據清洗#

在讀取數據後,我們需要對數據進行清洗。數據清洗包括去除重複值、填充缺失值等操作。以下是去除重複值和填充缺失值的示例代碼:

# 去除重複值
df.drop_duplicates(inplace=True)

# 填充缺失值
df.fillna(0, inplace=True)

數據篩選#

在清洗完數據後,我們需要對數據進行篩選。Pandas 提供了多種篩選方法,包括按行、按列、按條件等。以下是按條件篩選的示例代碼:

# 按條件篩選
df = df[df['age'] > 18]

數據分組#

在篩選完數據後,我們可能需要對數據進行分組。Pandas 提供了 groupby 方法來實現數據分組。以下是按照性別進行分組的示例代碼:

# 按照性別進行分組
grouped = df.groupby('gender')

數據統計#

在分組後,我們可以對數據進行統計。Pandas 提供了多種統計方法,包括計數、求和、均值等。以下是計算每個分組中年齡的平均值的示例代碼:

# 計算每個分組中年齡的平均值
grouped['age'].mean()

Pandas 的常用方法和參數#

DataFrame 常用方法#

  • head (n):返回前 n 行數據。
  • tail (n):返回後 n 行數據。
  • info ():返回 DataFrame 的基本信息。
  • describe ():返回 DataFrame 的統計信息。
  • dropna ():刪除缺失值。
  • fillna (value):填充缺失值。
  • drop_duplicates ():去除重複值。
  • groupby ():按照某一列進行分組。

DataFrame 常用參數#

  • index_col:指定某一列為索引列。
  • header:指定某一行為列名。
  • sep:指定分隔符。
  • na_values:指定缺失值。
  • dtype:指定每一列的數據類型。

Series 常用方法#

  • value_counts ():返回每個值出現的次數。
  • unique ():返回不重複的值。
  • nunique ():返回不重複值的數量。
  • isnull ():判斷是否為缺失值。
  • notnull ():判斷是否不為缺失值。

Series 常用參數#

  • name:指定 Series 的名稱。

Pandas 的小技巧#

自動識別格式問題#

在讀取 CSV 文件時,有時會出現自動識別格式錯誤的問題。例如,有些 CSV 文件中的數字可能帶有逗號分隔符(例如 1,000),而 Pandas 默認情況下會將逗號視為千位分隔符,導致讀取出來的數字不正確。

解決這個問題的方法是在讀取 CSV 文件時指定 decimal 參數為逗號,如下所示:

df = pd.read_csv('data.csv', decimal=',')

或者不讓它自動識別,直接指定 dtype 參數為 str,如下所示:

df = pd.read_csv('data.csv', dtype=str)

快速查看數據#

在處理數據時,我們經常需要查看數據的前幾行或後幾行。可以使用 head 和 tail 方法來實現。另外,Pandas 還提供了一個快速查看數據的方法 ——sample。該方法可以隨機抽取指定數量的行,並返回一個新的 DataFrame。

以下是使用 sample 方法隨機抽取 5 行數據的示例代碼:

df.sample(5)

快速統計數據#

在統計數據時,我們經常需要計算某一列或某幾列的總和、平均值等。可以使用 sum、mean 等方法來實現。另外,Pandas 還提供了一個快速統計數據的方法 ——agg。該方法可以對指定列進行多種統計操作,並返回一個新的 DataFrame。

以下是使用 agg 方法對 age 列進行統計操作的示例代碼:

df.agg({'age': ['sum', 'mean', 'max', 'min']})

Pandas 可能會遇到的坑#

編碼問題#

在讀取 CSV 文件時,有時會出現編碼問題。例如,CSV 文件採用了 UTF-8 編碼,而 Pandas 默認情況下採用了 ASCII 編碼,導致讀取出來的中文字符亂碼。

解決這個問題的方法是在讀取 CSV 文件時指定 encoding 參數為 UTF-8,如下所示:

df = pd.read_csv('data.csv', encoding='utf-8')

索引問題#

在處理 DataFrame 時,有時會出現索引問題。例如,在對 DataFrame 進行某些操作時,可能會改變原來的索引列,導致後續操作出現錯誤。

解決這個問題的方法是在對 DataFrame 進行操作時使用 copy 方法複製一份新的 DataFrame,並對新的 DataFrame 進行操作,如下所示:

new_df = df.copy()
new_df.drop_duplicates(inplace=True)

總結#

本文介紹了 Python Pandas 的基本概念和使用方法,包括常用方法和參數、小技巧以及可能會遇到的坑。通過學習本文,相信大家已經掌握了 Pandas 的基本用法,並能夠靈活地應用到實際項目中。

Pandas 的的 Google 課程:#

pandas Google colab 在線課程

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。