如何使用Pandas將包含日期和類型的DataFrame轉換為每日類型數量統計表?

如何使用Pandas將包含日期和類型的DataFrame轉換為每日類型數量統計表?

數據分析中,經常需要對數據進行轉換和統計,以便更好地理解和可視化數據。本文將演示如何使用pandas將包含日期和類型的DataFrame轉換為每日類型數量統計表。

假設我們有一個DataFrame,包含’date’(日期)和’type’(類型)兩列。目標是將其轉換為一個新的DataFrame,其中每行代表一天,每列代表一種類型,單元格值表示該類型在該日期的數量。

以下代碼實現了這一轉換:

import pandas as pd  # 示例數據 data = {     'date': ['2024-01-01', '2024-01-01', '2024-01-01', '2024-01-02', '2024-01-02', '2024-01-02', '2024-01-02', '2024-01-02', '2024-01-03', '2024-01-03', '2024-01-03', '2024-01-03'],     'type': [1, 2, 1, 3, 2, 3, 1, 1, 1, 4, 2, 5] }  df = pd.DataFrame(data)  # 使用pd.get_dummies()進行one-hot編碼 df_encoded = pd.get_dummies(df, columns=['type'])  # 按日期分組并求和 df_pivot = df_encoded.groupby('date').sum()  # 顯示結果 print(df_encoded) print("-" * 60) print(df_pivot)

代碼首先使用pd.get_dummies()函數將’type’列轉換為虛擬變量(one-hot encoding)。 然后,使用groupby()函數按’date’分組,并使用sum()函數對每個日期的虛擬變量進行求和,從而得到每種類型在每一天的數量。 最終結果是一個以日期為索引,類型為列的DataFrame。 aggregate(‘sum’)也可以替代sum()函數實現相同的功能。 這個方法有效地將長格式數據轉換為寬格式數據,方便后續分析和可視化。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享