數(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)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END