首頁 > 後端開發 > Python教學 > 如何將寬 Pandas DataFrame 轉換為長格式,其中值代表變數和日期?

如何將寬 Pandas DataFrame 轉換為長格式,其中值代表變數和日期?

Susan Sarandon
發布: 2024-11-14 11:17:02
原創
225 人瀏覽過

How do you transform a wide Pandas DataFrame into a long format with values representing variables and dates?

從寬資料重塑:

在資料操作領域,將寬資料集重塑為長資料集是資料的一項關鍵操作整合和分析。考慮以下場景:

您在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板