從寬資料重塑:
在資料操作領域,將寬資料集重塑為長資料集是資料的一項關鍵操作整合和分析。考慮以下場景:
您在 pandas 中有一個資料框,其中包含變數 AA、BB 和 CC 的每日值,並按日期索引。
+---------+----+----+----+ | date | AA | BB | CC | +---------+----+----+----+ | 05/03 | 1 | 2 | 3 | | 06/03 | 4 | 5 | 6 | | 07/03 | 7 | 8 | 9 | | 08/03 | 5 | 7 | 1 | +---------+----+----+----+
您希望將此資料轉換為格式,其中每行代表一個變數和日期,如下所示:
+------+---------+--------+ | var | date | value | +------+---------+--------+ | AA | 05/03 | 1 | | AA | 06/03 | 4 | | AA | 07/03 | 7 | | AA | 08/03 | 5 | | BB | 05/03 | 2 | | BB | 06/03 | 5 | | BB | 07/03 | 8 | | BB | 08/03 | 7 | | CC | 05/03 | 3 | | CC | 06/03 | 6 | | CC | 07/03 | 9 | | CC | 08/03 | 1 | +------+---------+--------+
這種重組是資料整合中的典型任務,將使您能夠合併此資料框與另一個具有匹配日期和初始列名稱(AA、BB、CC)的資料框。
方法:Pandas 的 Melt 函數
幸運的是,pandas 提供了一種簡單的方法執行此轉換:pandas.melt 或 DataFrame.melt。這是一個範例:
import pandas as pd df = pd.DataFrame({ 'date' : ['05/03', '06/03', '07/03', '08/03'], 'AA' : [1, 4, 7, 5], 'BB' : [2, 5, 8, 7], 'CC' : [3, 6, 9, 1] }) df.set_index('date', inplace=True) dfm = df.reset_index().melt(id_vars='date')
這會將您的資料框轉換為所需的長格式:
date variable value 0 05/03 AA 1 1 06/03 AA 4 2 07/03 AA 7 3 08/03 AA 5 4 05/03 BB 2 5 06/03 BB 5 6 07/03 BB 8 7 08/03 BB 7 8 05/03 CC 3 9 06/03 CC 6 10 07/03 CC 9 11 08/03 CC 1
以上是如何將寬 Pandas DataFrame 轉換為長格式,其中值代表變數和日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!