如何使用Pandas將包含日期和類型的DataFrame轉(zhuǎn)換為每日類型數(shù)量統(tǒng)計(jì)表?

如何使用Pandas將包含日期和類型的DataFrame轉(zhuǎn)換為每日類型數(shù)量統(tǒng)計(jì)表?

數(shù)據(jù)分析中,經(jīng)常需要對數(shù)據(jù)進(jìn)行轉(zhuǎn)換和統(tǒng)計(jì),以便更好地理解和可視化數(shù)據(jù)。本文將演示如何使用pandas將包含日期和類型的DataFrame轉(zhuǎn)換為每日類型數(shù)量統(tǒng)計(jì)表。

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

以下代碼實(shí)現(xiàn)了這一轉(zhuǎn)換:

import pandas as pd  # 示例數(shù)據(jù) 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()進(jìn)行one-hot編碼 df_encoded = pd.get_dummies(df, columns=['type'])  # 按日期分組并求和 df_pivot = df_encoded.groupby('date').sum()  # 顯示結(jié)果 print(df_encoded) print("-" * 60) print(df_pivot)

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

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享