首頁 >後端開發 >Python教學 >如何在 Pandas 中將寬資料轉換為長格式?

如何在 Pandas 中將寬資料轉換為長格式?

Barbara Streisand
Barbara Streisand原創
2024-11-14 21:36:02878瀏覽

How to Transform Wide Data to Long Format in Pandas?

在Pandas 中將寬資料重塑為長格式

在資料操作領域,將資料從寬格式重塑為長格式通常會出現為必要性。考慮以下pandas 資料框:

AA BB CC
05/03 1 2 3
06/03 4 5 6
07/03 7 8 9
08/03 5 7 1

將其轉換為所需的長格式:

| 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 |
|抄送| 05/03 | 3 |
|抄送| 06/03 | 6 |
|副本| 07/03 | 9 |
|副本| 08/03 | 1 |

我們使用pandas.melt 或pandas.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]
}).set_index('date')

df = df.reset_index()
pd.melt(df, id_vars='date', value_vars=['AA', 'BB', 'CC'])

或者,可以透過呼叫省略reset_index 步驟與ignore_index = False融合:

dfm = df.melt(ignore_index=False).reset_index()

產生所需的長格式:

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 中將寬資料轉換為長格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn